public static bool RSa(ulong uInstr, zSeriesDisassembler dasm) { var r1 = Registers.GpRegisters[(uInstr >> 20) & 0xF]; var b2 = Registers.GpRegisters[(uInstr >> 12) & 0xF]; var d2 = (int)Bits.SignExtend(uInstr, 12); dasm.state.ops.Add(new RegisterOperand(r1)); dasm.state.ops.Add(dasm.CreateAccess(b2, d2)); return(true); }
public static bool FXa(ulong uInstr, zSeriesDisassembler dasm) { var f1 = new RegisterOperand(Registers.FpRegisters[(uInstr >> 20) & 0xF]); var x2 = Registers.GpRegisters[(uInstr >> 16) & 0xF]; var b2 = Registers.GpRegisters[(uInstr >> 12) & 0xF]; var d2 = (int)Bits.SignExtend(uInstr, 12); dasm.ops.Add(f1); dasm.ops.Add(dasm.CreateAccess(b2, x2, d2)); return true; }
private static bool RXYa(ulong uInstr, zSeriesDisassembler dasm) { var r1 = new RegisterOperand(Registers.GpRegisters[(uInstr >> 36) & 0xF]); var x2 = Registers.GpRegisters[(uInstr >> 32) & 0xF]; var b2 = Registers.GpRegisters[(uInstr >> 28) & 0xF]; var d2 = Bitfield.ReadSignedFields(rxya_offset, (uint)uInstr); dasm.ops.Add(r1); dasm.ops.Add(dasm.CreateAccess(b2, x2, d2)); return true; }
private static bool SI(ulong uInstr, zSeriesDisassembler dasm) { var i2 = ImmediateOperand.Byte((byte)(uInstr >> 16)); var b1 = Registers.GpRegisters[(uInstr >> 12) & 0xF]; var d1 = (int)Bits.SignExtend(uInstr, 12); dasm.ops.Add(dasm.CreateAccess(b1, d1)); dasm.ops.Add(i2); return(true); }
private static bool RSYb(ulong uInstr, zSeriesDisassembler dasm) { var r1 = Registers.GpRegisters[(uInstr >> 36) & 0xF]; var m3 = (byte)((uInstr >> 32) & 0xF); var b2 = Registers.GpRegisters[(uInstr >> 28) & 0xF]; var d2 = Bitfield.ReadSignedFields(rsya_offset, (uint)uInstr); dasm.ops.Add(new RegisterOperand(r1)); dasm.ops.Add(ImmediateOperand.Byte(m3)); dasm.ops.Add(dasm.CreateAccess(b2, d2)); return true; }
public static bool RSb(ulong uInstr, zSeriesDisassembler dasm) { var r1 = Registers.GpRegisters[(uInstr >> 20) & 0xF]; var m3 = ImmediateOperand.Byte((byte)((uInstr >> 16) & 0xF)); var b2 = Registers.GpRegisters[(uInstr >> 12) & 0xF]; var d2 = (int)Bits.SignExtend(uInstr, 12); dasm.ops.Add(new RegisterOperand(r1)); dasm.ops.Add(dasm.CreateAccess(b2, d2)); dasm.ops.Add(m3); return true; }
public static bool SSf(ulong uInstr, zSeriesDisassembler dasm) { var l2 = (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.ops.Add(dasm.CreateAccess(b1, d1)); dasm.ops.Add(dasm.CreateAccessLength(b2, d2, l2 + 1)); return true; }
private static bool RSYa(ulong uInstr, zSeriesDisassembler dasm) { var r1 = Registers.GpRegisters[(uInstr >> 36) & 0xF]; var r3 = Registers.GpRegisters[(uInstr >> 32) & 0xF]; var b2 = Registers.GpRegisters[(uInstr >> 28) & 0xF]; var d2 = Bitfield.ReadSignedFields(rsya_offset, (uint)uInstr); dasm.state.ops.Add(new RegisterOperand(r1)); dasm.state.ops.Add(new RegisterOperand(r3)); 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; }