Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 629e11fd70f279b6e6160c29fb5ace2912b68ac0..4f8f10e962eeba3df7e2c045412c8364a4d5014e 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -1210,6 +1210,9 @@ void LCodeGen::DoShiftI(LShiftI* instr) { |
ASSERT(ToRegister(right).is(rcx)); |
switch (instr->op()) { |
+ case Token::ROR: |
+ __ rorl_cl(ToRegister(left)); |
+ break; |
case Token::SAR: |
__ sarl_cl(ToRegister(left)); |
break; |
@@ -1231,6 +1234,11 @@ void LCodeGen::DoShiftI(LShiftI* instr) { |
int value = ToInteger32(LConstantOperand::cast(right)); |
uint8_t shift_count = static_cast<uint8_t>(value & 0x1F); |
switch (instr->op()) { |
+ case Token::ROR: |
+ if (shift_count != 0) { |
+ __ rorl(ToRegister(left), Immediate(shift_count)); |
+ } |
+ break; |
case Token::SAR: |
if (shift_count != 0) { |
__ sarl(ToRegister(left), Immediate(shift_count)); |