Messages in this thread | | | From | Linus Torvalds <> | Date | Wed, 1 Apr 2020 15:45:25 -0700 | Subject | Re: [GIT PULL] x86 cleanups for v5.7 |
| |
On Tue, Mar 31, 2020 at 11:09 AM Linus Torvalds <torvalds@linux-foundation.org> wrote: > > Lovely. This now makes my local boot-test tree be much closer to my > upstream tree, since I've had my clang asm-goto stuff in my boot tree > (and it had that series from Al).
Side note: I've extended on the x86 uaccess cleanups a bit with a couple of commits:
x86: start using named parameters for low-level uaccess asms x86: get rid of 'rtype' argument to __get_user_asm() macro x86: get rid of 'rtype' argument to __put_user_goto() macro x86: get rid of 'errret' argument to __get_user_xyz() macross x86: remove __put_user_asm() infrastructure
which I _tried_ to make complete no-ops (comparing code generation before and after). Sadly, one of them (the "get rid of 'rtype' argument to __get_user_asm" one) causes gcc to pick different registers for me because now the temporary variables have different sizes.
(The others cause line number data changes, of course, but I didn't see any _code_ changes).
So that one commit results in a lot of small noise changes to the generated code for me, but the few I looked at closer all looked the same (mostly just different register, sometimes odd improvements where it avoided doing a stupid "andq $0xffffffff", and in one or two cases it seemed to randomly just change the stack frame size, sometimes to the better, sometimes to worse).
The others should be purely semantically identical.
It was all just small prep to make the patch I have for "asm goto with outputs" have a smaller footprint - particularly when I try to then make it work with compilers that don't have the capability, and I need to have different output registers for that case.
I'm not planning on actually doing that patch this merge window, it's just not ready enough. But just in case somebody (Al?) is still working on the uaccess.h file, letting you know about my preparatory cleanups.
Linus
| |