Messages in this thread | | | Date | Tue, 25 Feb 2014 19:00:29 -0800 | From | Andy Lutomirski <> | Subject | Re: [PATCH] x86: LLVMLinux: Reimplement current_stack_pointer without register usage. |
| |
On 02/20/2014 08:55 PM, H. Peter Anvin wrote: > This seems like really deep magic when looking at it... at the very > least, this needs to be very carefully commented, including why it works > on the various platforms. > > How much does this actually affect the output? I only see three uses of > current_stack_pointer: > > /* how to get the thread information struct from C */ > static inline struct thread_info *current_thread_info(void) > { > return (struct thread_info *) > (current_stack_pointer & ~(THREAD_SIZE - 1)); > } > > ... here we need the mov anyway, because we have to then AND it with a > mask, which we obviously can't do inside the stack pointer.
No clue what code is actually generated, but the new code could generate:
mov $MASK, %rax; and %esp, %rax;
Admittedly, I can't see any reason why this would be an improvement.
--Andy
| |