Chromium Code Reviews| Index: src/arm/simulator-arm.cc |
| diff --git a/src/arm/simulator-arm.cc b/src/arm/simulator-arm.cc |
| index a057de58ccf843da9f38ae581673063b71ed3af4..2089f8af220410597414f55ddfdbcfe4f1e522b8 100644 |
| --- a/src/arm/simulator-arm.cc |
| +++ b/src/arm/simulator-arm.cc |
| @@ -1498,7 +1498,14 @@ int32_t Simulator::GetShiftRm(Instruction* instr, bool* carry_out) { |
| } |
| case ROR: { |
| - UNIMPLEMENTED(); |
| + if (shift_amount == 0) { |
| + *carry_out = c_flag_; |
| + } else { |
|
Jay Conrod
2012/10/01 19:41:17
Erik Corry expressed some suspicion in my first re
ulan
2012/10/02 12:20:26
Yes, you're right. I am taking the updated impleme
|
| + int32_t left = result >> shift_amount; |
| + int32_t right = result << (32 - shift_amount); |
| + result = right | left; |
| + *carry_out = (result >> (shift_amount - 1)) & 1; |
| + } |
| break; |
| } |