public static bool SSb(ulong uInstr, zSeriesDisassembler dasm) { var l1 = (byte)((uInstr >> 36) & 0xF); var l2 = (byte)((uInstr >> 32) & 0xF); var b1 = Registers.GpRegisters[(uInstr >> 28) & 0xF]; var d1 = (int)Bits.SignExtend(uInstr >> 16, 12); var b2 = Registers.GpRegisters[(uInstr >> 12) & 0xF]; var d2 = (int)Bits.SignExtend(uInstr, 12); dasm.ops.Add(dasm.CreateAccessLength(b1, d1, l1+ 1)); dasm.ops.Add(dasm.CreateAccessLength(b2, d2, l2+1)); return true; }
public static bool SSa(ulong uInstr, zSeriesDisassembler dasm) { var l = (byte)(uInstr >> 32); var b1 = Registers.GpRegisters[(uInstr >> 28) & 0xF]; var d1 = (int)Bits.SignExtend(uInstr >> 16, 12); var b2 = Registers.GpRegisters[(uInstr >> 12) & 0xF]; var d2 = (int)Bits.SignExtend(uInstr, 12); dasm.state.ops.Add(dasm.CreateAccessLength(b1, d1, l + 1)); dasm.state.ops.Add(dasm.CreateAccess(b2, d2)); return(true); }
public static bool SSc(ulong uInstr, zSeriesDisassembler dasm) { var l = (byte)((uInstr >> 36) & 0xF); var i3 = (byte)((uInstr >> 32) & 0xF); var b1 = Registers.GpRegisters[(uInstr >> 28) & 0xF]; var d1 = (int)Bits.SignExtend(uInstr >> 16, 12); var b2 = Registers.GpRegisters[(uInstr >> 12) & 0xF]; var d2 = (int)Bits.SignExtend(uInstr, 12); dasm.ops.Add(dasm.CreateAccessLength(b1, d1, l + 1)); dasm.ops.Add(dasm.CreateAccess(b2, d2)); dasm.ops.Add(ImmediateOperand.Byte(i3)); return true; }