|
@@ -6057,7 +6057,8 @@ L_stm_s_takeabort:
|
|
|
|
|
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
- case 0x6b: {
|
|
|
|
|
|
|
+ case 0x6b:
|
|
|
|
|
+ {
|
|
|
ARMword Rm;
|
|
ARMword Rm;
|
|
|
int ror = -1;
|
|
int ror = -1;
|
|
|
|
|
|
|
@@ -6088,7 +6089,7 @@ L_stm_s_takeabort:
|
|
|
if (ror == -1)
|
|
if (ror == -1)
|
|
|
break;
|
|
break;
|
|
|
|
|
|
|
|
- Rm = ((state->Reg[BITS(0, 3)] >> ror) & 0xFFFF);
|
|
|
|
|
|
|
+ Rm = ((state->Reg[BITS(0, 3)] >> ror) & 0xFFFF) | ((state->Reg[BITS(0, 3)] << (32 - ror)) & 0xFFFF) & 0xFFFF;
|
|
|
if (Rm & 0x8000)
|
|
if (Rm & 0x8000)
|
|
|
Rm |= 0xffff0000;
|
|
Rm |= 0xffff0000;
|
|
|
|
|
|