#238 MOVS <Rd>, <Rm>, ROR <Rs> misbehaves

open
nobody
None
5
2008-06-02
2008-06-02
Hongzhi Song
No

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.

Discussion

  • Logged In: YES
    user_id=1894791
    Originator: NO

    VBA development is practically dead, if you want to test, test VBA-M

     
  • Spacy
    Spacy
    2010-03-07

    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.