lkml.org 
[lkml]   [2014]   [Feb]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] x86: LLVMLinux: Reimplement current_stack_pointer without register usage.
On 02/25/2014 07:00 PM, Andy Lutomirski wrote:
>>
>> 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.
>

You have to generate one of the code sequences:

mov $MASK, %eax
and %esp, %eax

... or ...

mov %esp, %eax
and $MASK, %eax

No real difference either way.

-hpa




\
 
 \ /
  Last update: 2014-02-26 05:01    [W:0.030 / U:0.912 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site