[PATCH 1/2] x86-64/setcontext: Pop the pointer into %rdx after syscall

Carlos O'Donell carlos@redhat.com
Wed May 2 05:03:00 GMT 2018


On 04/29/2018 05:03 PM, Florian Weimer wrote:
> On 04/26/2018 02:17 PM, H.J. Lu wrote:
>> +    /* Pop the pointer into RDX which is preserved by the syscall.
>> */ +    popq    %rdx
> 
> Sorry, the comment is a bit unclear.  Why do you need to restore %rdx
> if it is preserved by the system call?  Maybe it becomes clearer with
> a future change?

I agree with Florian, there is no reason to mention RDX is preserved.
It doesn't matter here.

The reason you use RDX is because later on you want to call arch_prctl
and need to use RDI + RSI to pass arguments, and so it's simple to
already be using RDX for the register offset loads.

If anything a better comment is:

/* Pop the pointer into RDX. The choice is arbitrary, but leaving
   RDI and RSI available for use later can avoid shuffling values.  */

Otherwise OK with that comment change.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>

-- 
Cheers,
Carlos.



More information about the Libc-alpha mailing list