| 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 {
|
| + int32_t left = result >> shift_amount;
|
| + int32_t right = result << (32 - shift_amount);
|
| + result = right | left;
|
| + *carry_out = (result >> (shift_amount - 1)) & 1;
|
| + }
|
| break;
|
| }
|
|
|
|
|