Generate more compact XOR on 64-bit architecture when using xor to zero out registers.
authorfschneider@chromium.org <fschneider@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 26 Oct 2009 14:38:22 +0000 (14:38 +0000)
committerfschneider@chromium.org <fschneider@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Mon, 26 Oct 2009 14:38:22 +0000 (14:38 +0000)
commitdcee14979f54acf61d73a1a98823a274cbd9fdd4
tree927c52af654ea2076778575e78b76516c5a50bfa
parentd59f47a2d5f2dc97ddce16ac83133c736c79fc42
Generate more compact XOR on 64-bit architecture when using xor to zero out registers.

When using xor to zero a 64-bit register, generate 32-bit instruction instead.
(according to Intel 64-bit mode coding guidelines)

previous code for zeroing RAX:
  xor rax, rax

==>

new code for zeroing RAX:
  xor eax, eax

The 32-bit operand form has the same semantics: It also zeroes the upper
32-bit of rax and its encoding uses 1 byte less.

Review URL: http://codereview.chromium.org/330018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/x64/assembler-x64.h