-
epertoso authored
Currently, if the size of two cmp or test operands is a byte or a word, we sign-extend or zero-extend each of them into a 32-bit register before doing the comparison, even when the conditions for the use of a memory operand are met. This CL makes it possible to load only one of them into a register and address the other as a memory operand. Meanwhile, comparisons between Uint8 values in the string relational comparison stubs are done with Uint32LessThan (previously we were always zero-extending the byte to a 32-bit value, so signed comparison was alright). Found that Assembler::arithmetic_op_8(byte, Register, const Operand&) wasn't taking the Operand's rex_ field into account, so I fixed that too. BUG= Review URL: https://codereview.chromium.org/1780193003 Cr-Commit-Position: refs/heads/master@{#34862}
165b68e2
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
code-generator-x64.cc | ||
instruction-codes-x64.h | ||
instruction-scheduler-x64.cc | ||
instruction-selector-x64.cc |