http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21150



Denis Vlasenko <vda.linux at googlemail dot com> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

                 CC|                            |vda.linux at googlemail dot

                   |                            |com



--- Comment #6 from Denis Vlasenko <vda.linux at googlemail dot com> 2013-01-18 
11:12:18 UTC ---

Guess this can be closed now. All four cases look good:



$ cat helper-4.6.3-O2.asm 

helper-4.6.3-O2.o:     file format elf32-i386

...

00000000 <a>:

   0:    0f b6 05 2d 00 00 00     movzbl 0x2d,%eax

   7:    32 05 24 00 00 00        xor    0x24,%al

   d:    32 05 00 00 00 00        xor    0x0,%al

  13:    32 05 36 00 00 00        xor    0x36,%al

  19:    32 05 3f 00 00 00        xor    0x3f,%al

  1f:    32 05 09 00 00 00        xor    0x9,%al

  25:    32 05 12 00 00 00        xor    0x12,%al

  2b:    32 05 1b 00 00 00        xor    0x1b,%al

  31:    c3                       ret    

Disassembly of section .text.b:

00000000 <b>:

   0:    0f b6 05 12 00 00 00     movzbl 0x12,%eax

   7:    32 05 09 00 00 00        xor    0x9,%al

   d:    32 05 00 00 00 00        xor    0x0,%al

  13:    32 05 1b 00 00 00        xor    0x1b,%al

  19:    32 05 24 00 00 00        xor    0x24,%al

  1f:    32 05 2d 00 00 00        xor    0x2d,%al

  25:    32 05 36 00 00 00        xor    0x36,%al

  2b:    32 05 3f 00 00 00        xor    0x3f,%al

  31:    c3                       ret    

Disassembly of section .text.c:

00000000 <c>:

   0:    0f b6 05 09 00 00 00     movzbl 0x9,%eax

   7:    32 05 00 00 00 00        xor    0x0,%al

   d:    32 05 12 00 00 00        xor    0x12,%al

  13:    32 05 1b 00 00 00        xor    0x1b,%al

  19:    32 05 24 00 00 00        xor    0x24,%al

  1f:    32 05 2d 00 00 00        xor    0x2d,%al

  25:    32 05 36 00 00 00        xor    0x36,%al

  2b:    32 05 3f 00 00 00        xor    0x3f,%al

  31:    c3                       ret    

Disassembly of section .text.d:

00000000 <d>:

   0:    0f b6 05 12 00 00 00     movzbl 0x12,%eax

   7:    32 05 09 00 00 00        xor    0x9,%al

   d:    32 05 00 00 00 00        xor    0x0,%al

  13:    32 05 1b 00 00 00        xor    0x1b,%al

  19:    32 05 24 00 00 00        xor    0x24,%al

  1f:    32 05 2d 00 00 00        xor    0x2d,%al

  25:    32 05 36 00 00 00        xor    0x36,%al

  2b:    32 05 3f 00 00 00        xor    0x3f,%al

  31:    c3                       ret    



Curiously, -Os manages to squeeze two more bytes out of it.



helper-4.6.3-Os.o:     file format elf32-i386

00000000 <a>:

   0:   a0 2d 00 00 00          mov    0x2d,%al

        ^^^^^^^^^^^^^^          ^^^^^^^^^^^^^^^ better than movzbl

   5:   33 05 24 00 00 00       xor    0x24,%eax  << why %eax? oh well...

   b:   33 05 00 00 00 00       xor    0x0,%eax

  11:   32 05 36 00 00 00       xor    0x36,%al

  17:   32 05 3f 00 00 00       xor    0x3f,%al

  1d:   32 05 09 00 00 00       xor    0x9,%al

  23:   32 05 12 00 00 00       xor    0x12,%al

  29:   32 05 1b 00 00 00       xor    0x1b,%al

  2f:   c3                      ret

Reply via email to