visualboyadvance 1.7.2
MOVS <Rd>, <Rm>, ROR <Rs> misbehaves.
If Rs[7:0] equals zero, C flag should be left unchanged. But indeed, C flag is always touched, after executing the instruction.
After executing the following code:
@ <Rm>, ROR <Rs>
MOVS R3, #0xF000000F
MOVS R4, #0x100
MOVS R1, R3, ROR R4
C flag should be 0, but it is set to 1.
Logged In: YES
user_id=1894791
Originator: NO
VBA development is practically dead, if you want to test, test VBA-M
Looking at VBA-M's ARM emulation code, this instructions and shifter operand looks good (I only checked the C code, not the assembler code!). C flag is preserved in case Rs[7:0] is zero.