What is 'mov (%r11,%rax,1),%dl'?

Jeffrey Walton noloader@gmail.com
Sat Jan 2 23:28:00 GMT 2016


On Sat, Jan 2, 2016 at 11:01 AM, Segher Boessenkool
<segher@kernel.crashing.org> wrote:
> On Sat, Jan 02, 2016 at 10:01:26AM -0500, Jeffrey Walton wrote:
>>    0x000000010048d87b <+174>:   xor    %eax,%eax
>> => 0x000000010048d87d <+176>:   mov    (%r11,%rax,1),%dl
>>
>> (gdb) info registers
>> rax            0x9b7a   0x9b7a
>
> Why is AX not 0 here?  That seems wrong.
>
It looks like a small issue with GCC 5.2 and -Os. The function that's
being called has the signature
(http://www.cryptopp.com/docs/ref/misc_8cpp_source.html#l00060):

    xorbuf(byte* out, const byte* in, const byte* mask, size_t len);

When I examine frame 0 at the crash site, it looks like 'in' and 'len'
are the same value (but 'len' is only 120 bytes in the frame above).

I did not spot it sooner because GDB seems to ignore 'set output-radix 16'.

Jeff



More information about the Gcc-help mailing list