Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 8547b09be29686c301e6ad10f4d38b6c75175de8..bb1c9f97082d0e1964e1bbeffb3b4679d63a19bd 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)); |