Esempio n. 1
0
 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;
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 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;
 }