private void Emit_msk_a(RegisterSetOperand mask, AddressRegister aReg, int size, Action <RegisterSetOperand, AddressRegister> b, Action <RegisterSetOperand, AddressRegister> w, Action <RegisterSetOperand, AddressRegister> l) { switch (size) { case 0: b(mask, aReg); break; case 1: w(mask, aReg); break; case 2: l(mask, aReg); break; default: throw new InvalidOperationException(); } }
private void ProcessMovem() { int width = ExpectDataWidth(); RegisterSetOperand mask = ExpectRegisterSet(); Expect(TokenType.COMMA); var ea = ExpectEffectiveAddress(); var pre = ea as PredecrementMemoryOperand; if (pre != null) { Emit(mask, pre, width, ByteWidthIllegal, asm.Movem_w, asm.Movem_l); } else { Error("Unpexected operand {0}.", ea); } }
public void Movem_l(RegisterSetOperand src, PredecrementMemoryOperand dst) { constants.Add((ushort) src.BitSet); Emit(0x48E0 | dst.Register.Number & 7); }
public void Movem_l(RegisterSetOperand src, PredecrementMemoryOperand dst) { constants.Add((ushort)src.BitSet); Emit(0x48E0 | dst.Register.Number & 7); }