AOpCodeCcmp.cs 749 B

12345678910111213141516171819202122232425262728293031
  1. using ChocolArm64.Instruction;
  2. using ChocolArm64.State;
  3. namespace ChocolArm64.Decoder
  4. {
  5. class AOpCodeCcmp : AOpCodeAlu, IAOpCodeCond
  6. {
  7. public int NZCV { get; private set; }
  8. protected int RmImm;
  9. public ACond Cond { get; private set; }
  10. public AOpCodeCcmp(AInst Inst, long Position, int OpCode) : base(Inst, Position, OpCode)
  11. {
  12. int O3 = (OpCode >> 4) & 1;
  13. if (O3 != 0)
  14. {
  15. Emitter = AInstEmit.Und;
  16. return;
  17. }
  18. NZCV = (OpCode >> 0) & 0xf;
  19. Cond = (ACond)((OpCode >> 12) & 0xf);
  20. RmImm = (OpCode >> 16) & 0x1f;
  21. Rd = AThreadState.ZRIndex;
  22. }
  23. }
  24. }