Index: lib/Target/SystemZ/SystemZInstrFormats.td =================================================================== --- lib/Target/SystemZ/SystemZInstrFormats.td +++ lib/Target/SystemZ/SystemZInstrFormats.td @@ -260,6 +260,24 @@ let Inst{31-0} = I2; } +class InstRIS op, dag outs, dag ins, string asmstr, list pattern> + : InstSystemZ<6, outs, ins, asmstr, pattern> { + field bits<48> Inst; + field bits<48> SoftFail = 0; + + bits<4> R1; + bits<8> I2; + bits<4> M3; + bits<16> BD4; + + let Inst{47-40} = op{15-8}; + let Inst{39-36} = R1; + let Inst{35-32} = M3; + let Inst{31-16} = BD4; + let Inst{15-8} = I2; + let Inst{7-0} = op{7-0}; +} + class InstRR op, dag outs, dag ins, string asmstr, list pattern> : InstSystemZ<2, outs, ins, asmstr, pattern> { field bits<16> Inst; @@ -320,6 +338,25 @@ let Inst{3-0} = R2; } +class InstRRS op, dag outs, dag ins, string asmstr, list pattern> + : InstSystemZ<6, outs, ins, asmstr, pattern> { + field bits<48> Inst; + field bits<48> SoftFail = 0; + + bits<4> R1; + bits<4> R2; + bits<4> M3; + bits<16> BD4; + + let Inst{47-40} = op{15-8}; + let Inst{39-36} = R1; + let Inst{35-32} = R2; + let Inst{31-16} = BD4; + let Inst{15-12} = M3; + let Inst{11-8} = 0; + let Inst{7-0} = op{7-0}; +} + class InstRX op, dag outs, dag ins, string asmstr, list pattern> : InstSystemZ<4, outs, ins, asmstr, pattern> { field bits<32> Inst; Index: lib/Target/SystemZ/SystemZInstrInfo.td =================================================================== --- lib/Target/SystemZ/SystemZInstrInfo.td +++ lib/Target/SystemZ/SystemZInstrInfo.td @@ -105,6 +105,30 @@ def LGIJ : InstRIEc<0xEC7D, (outs), (ins GR64:$R1, imm64zx8:$I2, ccmask:$M3, brtarget16:$RI4), "clgij"##pos1##"\t$R1, $I2, "##pos2##"$RI4", []>; + def RB : InstRRS<0xECF6, (outs), (ins GR32:$R1, GR32:$R2, ccmask:$M3, + bdaddr12only:$BD4), + "crb"##pos1##"\t$R1, $R2, "##pos2##"$BD4", []>; + def GRB : InstRRS<0xECE4, (outs), (ins GR64:$R1, GR64:$R2, ccmask:$M3, + bdaddr12only:$BD4), + "cgrb"##pos1##"\t$R1, $R2, "##pos2##"$BD4", []>; + def IB : InstRIS<0xECFE, (outs), (ins GR32:$R1, imm32sx8:$I2, ccmask:$M3, + bdaddr12only:$BD4), + "cib"##pos1##"\t$R1, $I2, "##pos2##"$BD4", []>; + def GIB : InstRIS<0xECFC, (outs), (ins GR64:$R1, imm64sx8:$I2, ccmask:$M3, + bdaddr12only:$BD4), + "cgib"##pos1##"\t$R1, $I2, "##pos2##"$BD4", []>; + def LRB : InstRRS<0xECF7, (outs), (ins GR32:$R1, GR32:$R2, ccmask:$M3, + bdaddr12only:$BD4), + "clrb"##pos1##"\t$R1, $R2, "##pos2##"$BD4", []>; + def LGRB : InstRRS<0xECE5, (outs), (ins GR64:$R1, GR64:$R2, ccmask:$M3, + bdaddr12only:$BD4), + "clgrb"##pos1##"\t$R1, $R2, "##pos2##"$BD4", []>; + def LIB : InstRIS<0xECFF, (outs), (ins GR32:$R1, imm32zx8:$I2, ccmask:$M3, + bdaddr12only:$BD4), + "clib"##pos1##"\t$R1, $I2, "##pos2##"$BD4", []>; + def LGIB : InstRIS<0xECFD, (outs), (ins GR64:$R1, imm64zx8:$I2, ccmask:$M3, + bdaddr12only:$BD4), + "clgib"##pos1##"\t$R1, $I2, "##pos2##"$BD4", []>; } } let isCodeGenOnly = 1 in @@ -152,30 +176,54 @@ // we need the custom parsing routines to select the correct register class. multiclass IntCondExtendedMnemonicA ccmask, string name> { let isBranch = 1, isTerminator = 1, M3 = ccmask in { - def CR : InstRIEb<0xEC76, (outs), (ins GR32:$R1, GR32:$R2, - brtarget16:$RI4), - "crj"##name##"\t$R1, $R2, $RI4", []>; - def CGR : InstRIEb<0xEC64, (outs), (ins GR64:$R1, GR64:$R2, - brtarget16:$RI4), - "cgrj"##name##"\t$R1, $R2, $RI4", []>; - def CI : InstRIEc<0xEC7E, (outs), (ins GR32:$R1, imm32sx8:$I2, - brtarget16:$RI4), - "cij"##name##"\t$R1, $I2, $RI4", []>; - def CGI : InstRIEc<0xEC7C, (outs), (ins GR64:$R1, imm64sx8:$I2, - brtarget16:$RI4), - "cgij"##name##"\t$R1, $I2, $RI4", []>; - def CLR : InstRIEb<0xEC77, (outs), (ins GR32:$R1, GR32:$R2, - brtarget16:$RI4), - "clrj"##name##"\t$R1, $R2, $RI4", []>; - def CLGR : InstRIEb<0xEC65, (outs), (ins GR64:$R1, GR64:$R2, + def CRJ : InstRIEb<0xEC76, (outs), (ins GR32:$R1, GR32:$R2, + brtarget16:$RI4), + "crj"##name##"\t$R1, $R2, $RI4", []>; + def CGRJ : InstRIEb<0xEC64, (outs), (ins GR64:$R1, GR64:$R2, + brtarget16:$RI4), + "cgrj"##name##"\t$R1, $R2, $RI4", []>; + def CIJ : InstRIEc<0xEC7E, (outs), (ins GR32:$R1, imm32sx8:$I2, brtarget16:$RI4), - "clgrj"##name##"\t$R1, $R2, $RI4", []>; - def CLI : InstRIEc<0xEC7F, (outs), (ins GR32:$R1, imm32zx8:$I2, + "cij"##name##"\t$R1, $I2, $RI4", []>; + def CGIJ : InstRIEc<0xEC7C, (outs), (ins GR64:$R1, imm64sx8:$I2, brtarget16:$RI4), - "clij"##name##"\t$R1, $I2, $RI4", []>; - def CLGI : InstRIEc<0xEC7D, (outs), (ins GR64:$R1, imm64zx8:$I2, + "cgij"##name##"\t$R1, $I2, $RI4", []>; + def CLRJ : InstRIEb<0xEC77, (outs), (ins GR32:$R1, GR32:$R2, brtarget16:$RI4), - "clgij"##name##"\t$R1, $I2, $RI4", []>; + "clrj"##name##"\t$R1, $R2, $RI4", []>; + def CLGRJ : InstRIEb<0xEC65, (outs), (ins GR64:$R1, GR64:$R2, + brtarget16:$RI4), + "clgrj"##name##"\t$R1, $R2, $RI4", []>; + def CLIJ : InstRIEc<0xEC7F, (outs), (ins GR32:$R1, imm32zx8:$I2, + brtarget16:$RI4), + "clij"##name##"\t$R1, $I2, $RI4", []>; + def CLGIJ : InstRIEc<0xEC7D, (outs), (ins GR64:$R1, imm64zx8:$I2, + brtarget16:$RI4), + "clgij"##name##"\t$R1, $I2, $RI4", []>; + def CRB : InstRRS<0xECF6, (outs), (ins GR32:$R1, GR32:$R2, + bdaddr12only:$BD4), + "crb"##name##"\t$R1, $R2, $BD4", []>; + def CGRB : InstRRS<0xECE4, (outs), (ins GR64:$R1, GR64:$R2, + bdaddr12only:$BD4), + "cgrb"##name##"\t$R1, $R2, $BD4", []>; + def CIB : InstRIS<0xECFE, (outs), (ins GR32:$R1, imm32sx8:$I2, + bdaddr12only:$BD4), + "cib"##name##"\t$R1, $I2, $BD4", []>; + def CGIB : InstRIS<0xECFC, (outs), (ins GR64:$R1, imm64sx8:$I2, + bdaddr12only:$BD4), + "cgib"##name##"\t$R1, $I2, $BD4", []>; + def CLRB : InstRRS<0xECF7, (outs), (ins GR32:$R1, GR32:$R2, + bdaddr12only:$BD4), + "clrb"##name##"\t$R1, $R2, $BD4", []>; + def CLGRB : InstRRS<0xECE5, (outs), (ins GR64:$R1, GR64:$R2, + bdaddr12only:$BD4), + "clgrb"##name##"\t$R1, $R2, $BD4", []>; + def CLIB : InstRIS<0xECFF, (outs), (ins GR32:$R1, imm32zx8:$I2, + bdaddr12only:$BD4), + "clib"##name##"\t$R1, $I2, $BD4", []>; + def CLGIB : InstRIS<0xECFD, (outs), (ins GR64:$R1, imm64zx8:$I2, + bdaddr12only:$BD4), + "clgib"##name##"\t$R1, $I2, $BD4", []>; } } multiclass IntCondExtendedMnemonic ccmask, string name1, string name2> Index: test/MC/SystemZ/insn-good.s =================================================================== --- test/MC/SystemZ/insn-good.s +++ test/MC/SystemZ/insn-good.s @@ -1637,6 +1637,86 @@ cghsi 4095(%r1), 42 cghsi 4095(%r15), 42 +#CHECK: cgib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xfc] +#CHECK: cgib %r0, -128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xfc] +#CHECK: cgib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xfc] +#CHECK: cgib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xfc] +#CHECK: cgib %r7, -1, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xfc] +#CHECK: cgib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xfc] +#CHECK: cgib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xfc] +#CHECK: cgib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xfc] +#CHECK: cgib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xfc] +#CHECK: cgib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xfc] + cgib %r0, 0, 0, 0 + cgib %r0, -128, 0, 0 + cgib %r0, 127, 0, 0 + cgib %r15, 0, 0, 0 + cgib %r7, -1, 0, 0 + cgib %r0, 0, 1, 0 + cgib %r0, 0, 15, 0 + cgib %r0, 0, 0, 0(%r13) + cgib %r0, 0, 0, 4095 + cgib %r0, 0, 0, 4095(%r7) + +#CHECK: cgibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xfc] +#CHECK: cgibe %r0, -128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xfc] +#CHECK: cgibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xfc] +#CHECK: cgibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xfc] +#CHECK: cgibe %r7, -1, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xfc] +#CHECK: cgibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xfc] +#CHECK: cgibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xfc] +#CHECK: cgibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xfc] + cgibe %r0, 0, 0 + cgibe %r0, -128, 0 + cgibe %r0, 127, 0 + cgibe %r15, 0, 0 + cgibe %r7, -1, 0 + cgibe %r0, 0, 0(%r13) + cgibe %r0, 0, 4095 + cgibe %r0, 0, 4095(%r7) + +#CHECK: cgib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfc] +#CHECK: cgibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfc] +#CHECK: cgibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfc] + cgib %r1, 2, 2, 3(%r4) + cgibh %r1, 2, 3(%r4) + cgibnle %r1, 2, 3(%r4) + +#CHECK: cgib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfc] +#CHECK: cgibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfc] +#CHECK: cgibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfc] + cgib %r1, 2, 4, 3(%r4) + cgibl %r1, 2, 3(%r4) + cgibnhe %r1, 2, 3(%r4) + +#CHECK: cgib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfc] +#CHECK: cgiblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfc] +#CHECK: cgibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfc] + cgib %r1, 2, 6, 3(%r4) + cgiblh %r1, 2, 3(%r4) + cgibne %r1, 2, 3(%r4) + +#CHECK: cgib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfc] +#CHECK: cgibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfc] +#CHECK: cgibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfc] + cgib %r1, 2, 8, 3(%r4) + cgibe %r1, 2, 3(%r4) + cgibnlh %r1, 2, 3(%r4) + +#CHECK: cgib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfc] +#CHECK: cgibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfc] +#CHECK: cgibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfc] + cgib %r1, 2, 10, 3(%r4) + cgibhe %r1, 2, 3(%r4) + cgibnl %r1, 2, 3(%r4) + +#CHECK: cgib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfc] +#CHECK: cgible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfc] +#CHECK: cgibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfc] + cgib %r1, 2, 12, 3(%r4) + cgible %r1, 2, 3(%r4) + cgibnh %r1, 2, 3(%r4) + #CHECK: cgij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7c] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: cgij %r0, -128, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x80,0x7c] @@ -1880,6 +1960,82 @@ cgr %r15,%r0 cgr %r7,%r8 +#CHECK: cgrb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xe4] +#CHECK: cgrb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xe4] +#CHECK: cgrb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xe4] +#CHECK: cgrb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xe4] +#CHECK: cgrb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xe4] +#CHECK: cgrb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xe4] +#CHECK: cgrb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xe4] +#CHECK: cgrb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xe4] +#CHECK: cgrb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xe4] + cgrb %r0, %r0, 0, 0 + cgrb %r0, %r15, 0, 0 + cgrb %r15, %r0, 0, 0 + cgrb %r7, %r2, 0, 0 + cgrb %r0, %r0, 1, 0 + cgrb %r0, %r0, 15, 0 + cgrb %r0, %r0, 0, 0(%r13) + cgrb %r0, %r0, 0, 4095 + cgrb %r0, %r0, 0, 4095(%r7) + +#CHECK: cgrbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xe4] +#CHECK: cgrbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xe4] +#CHECK: cgrbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xe4] +#CHECK: cgrbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xe4] +#CHECK: cgrbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xe4] +#CHECK: cgrbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xe4] +#CHECK: cgrbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xe4] + cgrbe %r0, %r0, 0 + cgrbe %r0, %r15, 0 + cgrbe %r15, %r0, 0 + cgrbe %r7, %r2, 0 + cgrbe %r0, %r0, 0(%r13) + cgrbe %r0, %r0, 4095 + cgrbe %r0, %r0, 4095(%r7) + +#CHECK: cgrb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe4] +#CHECK: cgrbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe4] +#CHECK: cgrbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe4] + cgrb %r1, %r2, 2, 3(%r4) + cgrbh %r1, %r2, 3(%r4) + cgrbnle %r1, %r2, 3(%r4) + +#CHECK: cgrb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe4] +#CHECK: cgrbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe4] +#CHECK: cgrbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe4] + cgrb %r1, %r2, 4, 3(%r4) + cgrbl %r1, %r2, 3(%r4) + cgrbnhe %r1, %r2, 3(%r4) + +#CHECK: cgrb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe4] +#CHECK: cgrblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe4] +#CHECK: cgrbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe4] + cgrb %r1, %r2, 6, 3(%r4) + cgrblh %r1, %r2, 3(%r4) + cgrbne %r1, %r2, 3(%r4) + +#CHECK: cgrb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe4] +#CHECK: cgrbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe4] +#CHECK: cgrbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe4] + cgrb %r1, %r2, 8, 3(%r4) + cgrbe %r1, %r2, 3(%r4) + cgrbnlh %r1, %r2, 3(%r4) + +#CHECK: cgrb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe4] +#CHECK: cgrbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe4] +#CHECK: cgrbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe4] + cgrb %r1, %r2, 10, 3(%r4) + cgrbhe %r1, %r2, 3(%r4) + cgrbnl %r1, %r2, 3(%r4) + +#CHECK: cgrb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe4] +#CHECK: cgrble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe4] +#CHECK: cgrbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe4] + cgrb %r1, %r2, 12, 3(%r4) + cgrble %r1, %r2, 3(%r4) + cgrbnh %r1, %r2, 3(%r4) + #CHECK: cgrj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x64] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: cgrj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x64] @@ -2296,6 +2452,86 @@ chy %r0, 524287(%r15,%r1) chy %r15, 0 +#CHECK: cib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xfe] +#CHECK: cib %r0, -128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xfe] +#CHECK: cib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xfe] +#CHECK: cib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xfe] +#CHECK: cib %r7, -1, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xfe] +#CHECK: cib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xfe] +#CHECK: cib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xfe] +#CHECK: cib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xfe] +#CHECK: cib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xfe] +#CHECK: cib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xfe] + cib %r0, 0, 0, 0 + cib %r0, -128, 0, 0 + cib %r0, 127, 0, 0 + cib %r15, 0, 0, 0 + cib %r7, -1, 0, 0 + cib %r0, 0, 1, 0 + cib %r0, 0, 15, 0 + cib %r0, 0, 0, 0(%r13) + cib %r0, 0, 0, 4095 + cib %r0, 0, 0, 4095(%r7) + +#CHECK: cibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xfe] +#CHECK: cibe %r0, -128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xfe] +#CHECK: cibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xfe] +#CHECK: cibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xfe] +#CHECK: cibe %r7, -1, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xfe] +#CHECK: cibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xfe] +#CHECK: cibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xfe] +#CHECK: cibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xfe] + cibe %r0, 0, 0 + cibe %r0, -128, 0 + cibe %r0, 127, 0 + cibe %r15, 0, 0 + cibe %r7, -1, 0 + cibe %r0, 0, 0(%r13) + cibe %r0, 0, 4095 + cibe %r0, 0, 4095(%r7) + +#CHECK: cib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfe] +#CHECK: cibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfe] +#CHECK: cibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfe] + cib %r1, 2, 2, 3(%r4) + cibh %r1, 2, 3(%r4) + cibnle %r1, 2, 3(%r4) + +#CHECK: cib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfe] +#CHECK: cibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfe] +#CHECK: cibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfe] + cib %r1, 2, 4, 3(%r4) + cibl %r1, 2, 3(%r4) + cibnhe %r1, 2, 3(%r4) + +#CHECK: cib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfe] +#CHECK: ciblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfe] +#CHECK: cibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfe] + cib %r1, 2, 6, 3(%r4) + ciblh %r1, 2, 3(%r4) + cibne %r1, 2, 3(%r4) + +#CHECK: cib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfe] +#CHECK: cibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfe] +#CHECK: cibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfe] + cib %r1, 2, 8, 3(%r4) + cibe %r1, 2, 3(%r4) + cibnlh %r1, 2, 3(%r4) + +#CHECK: cib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfe] +#CHECK: cibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfe] +#CHECK: cibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfe] + cib %r1, 2, 10, 3(%r4) + cibhe %r1, 2, 3(%r4) + cibnl %r1, 2, 3(%r4) + +#CHECK: cib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfe] +#CHECK: cible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfe] +#CHECK: cibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfe] + cib %r1, 2, 12, 3(%r4) + cible %r1, 2, 3(%r4) + cibnh %r1, 2, 3(%r4) + #CHECK: cij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7e] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: cij %r0, -128, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x80,0x7e] @@ -2747,6 +2983,86 @@ clghsi 4095(%r1), 42 clghsi 4095(%r15), 42 +#CHECK: clgib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xfd] +#CHECK: clgib %r0, 128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xfd] +#CHECK: clgib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xfd] +#CHECK: clgib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xfd] +#CHECK: clgib %r7, 255, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xfd] +#CHECK: clgib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xfd] +#CHECK: clgib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xfd] +#CHECK: clgib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xfd] +#CHECK: clgib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xfd] +#CHECK: clgib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xfd] + clgib %r0, 0, 0, 0 + clgib %r0, 128, 0, 0 + clgib %r0, 127, 0, 0 + clgib %r15, 0, 0, 0 + clgib %r7, 255, 0, 0 + clgib %r0, 0, 1, 0 + clgib %r0, 0, 15, 0 + clgib %r0, 0, 0, 0(%r13) + clgib %r0, 0, 0, 4095 + clgib %r0, 0, 0, 4095(%r7) + +#CHECK: clgibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xfd] +#CHECK: clgibe %r0, 128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xfd] +#CHECK: clgibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xfd] +#CHECK: clgibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xfd] +#CHECK: clgibe %r7, 255, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xfd] +#CHECK: clgibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xfd] +#CHECK: clgibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xfd] +#CHECK: clgibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xfd] + clgibe %r0, 0, 0 + clgibe %r0, 128, 0 + clgibe %r0, 127, 0 + clgibe %r15, 0, 0 + clgibe %r7, 255, 0 + clgibe %r0, 0, 0(%r13) + clgibe %r0, 0, 4095 + clgibe %r0, 0, 4095(%r7) + +#CHECK: clgib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfd] +#CHECK: clgibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfd] +#CHECK: clgibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xfd] + clgib %r1, 2, 2, 3(%r4) + clgibh %r1, 2, 3(%r4) + clgibnle %r1, 2, 3(%r4) + +#CHECK: clgib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfd] +#CHECK: clgibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfd] +#CHECK: clgibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xfd] + clgib %r1, 2, 4, 3(%r4) + clgibl %r1, 2, 3(%r4) + clgibnhe %r1, 2, 3(%r4) + +#CHECK: clgib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfd] +#CHECK: clgiblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfd] +#CHECK: clgibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xfd] + clgib %r1, 2, 6, 3(%r4) + clgiblh %r1, 2, 3(%r4) + clgibne %r1, 2, 3(%r4) + +#CHECK: clgib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfd] +#CHECK: clgibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfd] +#CHECK: clgibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xfd] + clgib %r1, 2, 8, 3(%r4) + clgibe %r1, 2, 3(%r4) + clgibnlh %r1, 2, 3(%r4) + +#CHECK: clgib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfd] +#CHECK: clgibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfd] +#CHECK: clgibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xfd] + clgib %r1, 2, 10, 3(%r4) + clgibhe %r1, 2, 3(%r4) + clgibnl %r1, 2, 3(%r4) + +#CHECK: clgib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfd] +#CHECK: clgible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfd] +#CHECK: clgibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xfd] + clgib %r1, 2, 12, 3(%r4) + clgible %r1, 2, 3(%r4) + clgibnh %r1, 2, 3(%r4) + #CHECK: clgij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7d] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: clgij %r0, 255, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0xff,0x7d] @@ -2984,6 +3300,82 @@ clgr %r15,%r0 clgr %r7,%r8 +#CHECK: clgrb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xe5] +#CHECK: clgrb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xe5] +#CHECK: clgrb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xe5] +#CHECK: clgrb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xe5] +#CHECK: clgrb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xe5] +#CHECK: clgrb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xe5] +#CHECK: clgrb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xe5] +#CHECK: clgrb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xe5] +#CHECK: clgrb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xe5] + clgrb %r0, %r0, 0, 0 + clgrb %r0, %r15, 0, 0 + clgrb %r15, %r0, 0, 0 + clgrb %r7, %r2, 0, 0 + clgrb %r0, %r0, 1, 0 + clgrb %r0, %r0, 15, 0 + clgrb %r0, %r0, 0, 0(%r13) + clgrb %r0, %r0, 0, 4095 + clgrb %r0, %r0, 0, 4095(%r7) + +#CHECK: clgrbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xe5] +#CHECK: clgrbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xe5] +#CHECK: clgrbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xe5] +#CHECK: clgrbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xe5] +#CHECK: clgrbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xe5] +#CHECK: clgrbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xe5] +#CHECK: clgrbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xe5] + clgrbe %r0, %r0, 0 + clgrbe %r0, %r15, 0 + clgrbe %r15, %r0, 0 + clgrbe %r7, %r2, 0 + clgrbe %r0, %r0, 0(%r13) + clgrbe %r0, %r0, 4095 + clgrbe %r0, %r0, 4095(%r7) + +#CHECK: clgrb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe5] +#CHECK: clgrbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe5] +#CHECK: clgrbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xe5] + clgrb %r1, %r2, 2, 3(%r4) + clgrbh %r1, %r2, 3(%r4) + clgrbnle %r1, %r2, 3(%r4) + +#CHECK: clgrb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe5] +#CHECK: clgrbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe5] +#CHECK: clgrbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xe5] + clgrb %r1, %r2, 4, 3(%r4) + clgrbl %r1, %r2, 3(%r4) + clgrbnhe %r1, %r2, 3(%r4) + +#CHECK: clgrb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe5] +#CHECK: clgrblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe5] +#CHECK: clgrbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xe5] + clgrb %r1, %r2, 6, 3(%r4) + clgrblh %r1, %r2, 3(%r4) + clgrbne %r1, %r2, 3(%r4) + +#CHECK: clgrb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe5] +#CHECK: clgrbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe5] +#CHECK: clgrbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xe5] + clgrb %r1, %r2, 8, 3(%r4) + clgrbe %r1, %r2, 3(%r4) + clgrbnlh %r1, %r2, 3(%r4) + +#CHECK: clgrb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe5] +#CHECK: clgrbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe5] +#CHECK: clgrbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xe5] + clgrb %r1, %r2, 10, 3(%r4) + clgrbhe %r1, %r2, 3(%r4) + clgrbnl %r1, %r2, 3(%r4) + +#CHECK: clgrb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe5] +#CHECK: clgrble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe5] +#CHECK: clgrbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xe5] + clgrb %r1, %r2, 12, 3(%r4) + clgrble %r1, %r2, 3(%r4) + clgrbnh %r1, %r2, 3(%r4) + #CHECK: clgrj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x65] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: clgrj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x65] @@ -3320,6 +3712,86 @@ cli 4095(%r1), 42 cli 4095(%r15), 42 +#CHECK: clib %r0, 0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xff] +#CHECK: clib %r0, 128, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xff] +#CHECK: clib %r0, 127, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x7f,0xff] +#CHECK: clib %r15, 0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xff] +#CHECK: clib %r7, 255, 0, 0 # encoding: [0xec,0x70,0x00,0x00,0xff,0xff] +#CHECK: clib %r0, 0, 1, 0 # encoding: [0xec,0x01,0x00,0x00,0x00,0xff] +#CHECK: clib %r0, 0, 15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xff] +#CHECK: clib %r0, 0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xff] +#CHECK: clib %r0, 0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xff] +#CHECK: clib %r0, 0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xff] + clib %r0, 0, 0, 0 + clib %r0, 128, 0, 0 + clib %r0, 127, 0, 0 + clib %r15, 0, 0, 0 + clib %r7, 255, 0, 0 + clib %r0, 0, 1, 0 + clib %r0, 0, 15, 0 + clib %r0, 0, 0, 0(%r13) + clib %r0, 0, 0, 4095 + clib %r0, 0, 0, 4095(%r7) + +#CHECK: clibe %r0, 0, 0 # encoding: [0xec,0x08,0x00,0x00,0x00,0xff] +#CHECK: clibe %r0, 128, 0 # encoding: [0xec,0x08,0x00,0x00,0x80,0xff] +#CHECK: clibe %r0, 127, 0 # encoding: [0xec,0x08,0x00,0x00,0x7f,0xff] +#CHECK: clibe %r15, 0, 0 # encoding: [0xec,0xf8,0x00,0x00,0x00,0xff] +#CHECK: clibe %r7, 255, 0 # encoding: [0xec,0x78,0x00,0x00,0xff,0xff] +#CHECK: clibe %r0, 0, 0(%r13) # encoding: [0xec,0x08,0xd0,0x00,0x00,0xff] +#CHECK: clibe %r0, 0, 4095 # encoding: [0xec,0x08,0x0f,0xff,0x00,0xff] +#CHECK: clibe %r0, 0, 4095(%r7) # encoding: [0xec,0x08,0x7f,0xff,0x00,0xff] + clibe %r0, 0, 0 + clibe %r0, 128, 0 + clibe %r0, 127, 0 + clibe %r15, 0, 0 + clibe %r7, 255, 0 + clibe %r0, 0, 0(%r13) + clibe %r0, 0, 4095 + clibe %r0, 0, 4095(%r7) + +#CHECK: clib %r1, 2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xff] +#CHECK: clibh %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xff] +#CHECK: clibnle %r1, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x02,0xff] + clib %r1, 2, 2, 3(%r4) + clibh %r1, 2, 3(%r4) + clibnle %r1, 2, 3(%r4) + +#CHECK: clib %r1, 2, 4, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xff] +#CHECK: clibl %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xff] +#CHECK: clibnhe %r1, 2, 3(%r4) # encoding: [0xec,0x14,0x40,0x03,0x02,0xff] + clib %r1, 2, 4, 3(%r4) + clibl %r1, 2, 3(%r4) + clibnhe %r1, 2, 3(%r4) + +#CHECK: clib %r1, 2, 6, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xff] +#CHECK: cliblh %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xff] +#CHECK: clibne %r1, 2, 3(%r4) # encoding: [0xec,0x16,0x40,0x03,0x02,0xff] + clib %r1, 2, 6, 3(%r4) + cliblh %r1, 2, 3(%r4) + clibne %r1, 2, 3(%r4) + +#CHECK: clib %r1, 2, 8, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xff] +#CHECK: clibe %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xff] +#CHECK: clibnlh %r1, 2, 3(%r4) # encoding: [0xec,0x18,0x40,0x03,0x02,0xff] + clib %r1, 2, 8, 3(%r4) + clibe %r1, 2, 3(%r4) + clibnlh %r1, 2, 3(%r4) + +#CHECK: clib %r1, 2, 10, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xff] +#CHECK: clibhe %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xff] +#CHECK: clibnl %r1, 2, 3(%r4) # encoding: [0xec,0x1a,0x40,0x03,0x02,0xff] + clib %r1, 2, 10, 3(%r4) + clibhe %r1, 2, 3(%r4) + clibnl %r1, 2, 3(%r4) + +#CHECK: clib %r1, 2, 12, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xff] +#CHECK: clible %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xff] +#CHECK: clibnh %r1, 2, 3(%r4) # encoding: [0xec,0x1c,0x40,0x03,0x02,0xff] + clib %r1, 2, 12, 3(%r4) + clible %r1, 2, 3(%r4) + clibnh %r1, 2, 3(%r4) + #CHECK: clij %r0, 0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x7f] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: clij %r0, 255, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0xff,0x7f] @@ -3579,6 +4051,82 @@ clr %r15,%r0 clr %r7,%r8 +#CHECK: clrb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xf7] +#CHECK: clrb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xf7] +#CHECK: clrb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xf7] +#CHECK: clrb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xf7] +#CHECK: clrb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xf7] +#CHECK: clrb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xf7] +#CHECK: clrb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xf7] +#CHECK: clrb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xf7] +#CHECK: clrb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xf7] + clrb %r0, %r0, 0, 0 + clrb %r0, %r15, 0, 0 + clrb %r15, %r0, 0, 0 + clrb %r7, %r2, 0, 0 + clrb %r0, %r0, 1, 0 + clrb %r0, %r0, 15, 0 + clrb %r0, %r0, 0, 0(%r13) + clrb %r0, %r0, 0, 4095 + clrb %r0, %r0, 0, 4095(%r7) + +#CHECK: clrbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xf7] +#CHECK: clrbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xf7] +#CHECK: clrbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xf7] +#CHECK: clrbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xf7] +#CHECK: clrbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xf7] +#CHECK: clrbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xf7] +#CHECK: clrbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xf7] + clrbe %r0, %r0, 0 + clrbe %r0, %r15, 0 + clrbe %r15, %r0, 0 + clrbe %r7, %r2, 0 + clrbe %r0, %r0, 0(%r13) + clrbe %r0, %r0, 4095 + clrbe %r0, %r0, 4095(%r7) + +#CHECK: clrb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf7] +#CHECK: clrbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf7] +#CHECK: clrbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf7] + clrb %r1, %r2, 2, 3(%r4) + clrbh %r1, %r2, 3(%r4) + clrbnle %r1, %r2, 3(%r4) + +#CHECK: clrb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf7] +#CHECK: clrbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf7] +#CHECK: clrbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf7] + clrb %r1, %r2, 4, 3(%r4) + clrbl %r1, %r2, 3(%r4) + clrbnhe %r1, %r2, 3(%r4) + +#CHECK: clrb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf7] +#CHECK: clrblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf7] +#CHECK: clrbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf7] + clrb %r1, %r2, 6, 3(%r4) + clrblh %r1, %r2, 3(%r4) + clrbne %r1, %r2, 3(%r4) + +#CHECK: clrb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf7] +#CHECK: clrbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf7] +#CHECK: clrbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf7] + clrb %r1, %r2, 8, 3(%r4) + clrbe %r1, %r2, 3(%r4) + clrbnlh %r1, %r2, 3(%r4) + +#CHECK: clrb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf7] +#CHECK: clrbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf7] +#CHECK: clrbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf7] + clrb %r1, %r2, 10, 3(%r4) + clrbhe %r1, %r2, 3(%r4) + clrbnl %r1, %r2, 3(%r4) + +#CHECK: clrb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf7] +#CHECK: clrble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf7] +#CHECK: clrbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf7] + clrb %r1, %r2, 12, 3(%r4) + clrble %r1, %r2, 3(%r4) + clrbnh %r1, %r2, 3(%r4) + #CHECK: clrj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x77] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: clrj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x77] @@ -3903,6 +4451,82 @@ cr %r15,%r0 cr %r7,%r8 +#CHECK: crb %r0, %r0, 0, 0 # encoding: [0xec,0x00,0x00,0x00,0x00,0xf6] +#CHECK: crb %r0, %r15, 0, 0 # encoding: [0xec,0x0f,0x00,0x00,0x00,0xf6] +#CHECK: crb %r15, %r0, 0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x00,0xf6] +#CHECK: crb %r7, %r2, 0, 0 # encoding: [0xec,0x72,0x00,0x00,0x00,0xf6] +#CHECK: crb %r0, %r0, 1, 0 # encoding: [0xec,0x00,0x00,0x00,0x10,0xf6] +#CHECK: crb %r0, %r0, 15, 0 # encoding: [0xec,0x00,0x00,0x00,0xf0,0xf6] +#CHECK: crb %r0, %r0, 0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x00,0xf6] +#CHECK: crb %r0, %r0, 0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x00,0xf6] +#CHECK: crb %r0, %r0, 0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x00,0xf6] + crb %r0, %r0, 0, 0 + crb %r0, %r15, 0, 0 + crb %r15, %r0, 0, 0 + crb %r7, %r2, 0, 0 + crb %r0, %r0, 1, 0 + crb %r0, %r0, 15, 0 + crb %r0, %r0, 0, 0(%r13) + crb %r0, %r0, 0, 4095 + crb %r0, %r0, 0, 4095(%r7) + +#CHECK: crbe %r0, %r0, 0 # encoding: [0xec,0x00,0x00,0x00,0x80,0xf6] +#CHECK: crbe %r0, %r15, 0 # encoding: [0xec,0x0f,0x00,0x00,0x80,0xf6] +#CHECK: crbe %r15, %r0, 0 # encoding: [0xec,0xf0,0x00,0x00,0x80,0xf6] +#CHECK: crbe %r7, %r2, 0 # encoding: [0xec,0x72,0x00,0x00,0x80,0xf6] +#CHECK: crbe %r0, %r0, 0(%r13) # encoding: [0xec,0x00,0xd0,0x00,0x80,0xf6] +#CHECK: crbe %r0, %r0, 4095 # encoding: [0xec,0x00,0x0f,0xff,0x80,0xf6] +#CHECK: crbe %r0, %r0, 4095(%r7) # encoding: [0xec,0x00,0x7f,0xff,0x80,0xf6] + crbe %r0, %r0, 0 + crbe %r0, %r15, 0 + crbe %r15, %r0, 0 + crbe %r7, %r2, 0 + crbe %r0, %r0, 0(%r13) + crbe %r0, %r0, 4095 + crbe %r0, %r0, 4095(%r7) + +#CHECK: crb %r1, %r2, 2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf6] +#CHECK: crbh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf6] +#CHECK: crbnle %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x20,0xf6] + crb %r1, %r2, 2, 3(%r4) + crbh %r1, %r2, 3(%r4) + crbnle %r1, %r2, 3(%r4) + +#CHECK: crb %r1, %r2, 4, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf6] +#CHECK: crbl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf6] +#CHECK: crbnhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x40,0xf6] + crb %r1, %r2, 4, 3(%r4) + crbl %r1, %r2, 3(%r4) + crbnhe %r1, %r2, 3(%r4) + +#CHECK: crb %r1, %r2, 6, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf6] +#CHECK: crblh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf6] +#CHECK: crbne %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x60,0xf6] + crb %r1, %r2, 6, 3(%r4) + crblh %r1, %r2, 3(%r4) + crbne %r1, %r2, 3(%r4) + +#CHECK: crb %r1, %r2, 8, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf6] +#CHECK: crbe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf6] +#CHECK: crbnlh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0x80,0xf6] + crb %r1, %r2, 8, 3(%r4) + crbe %r1, %r2, 3(%r4) + crbnlh %r1, %r2, 3(%r4) + +#CHECK: crb %r1, %r2, 10, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf6] +#CHECK: crbhe %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf6] +#CHECK: crbnl %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xa0,0xf6] + crb %r1, %r2, 10, 3(%r4) + crbhe %r1, %r2, 3(%r4) + crbnl %r1, %r2, 3(%r4) + +#CHECK: crb %r1, %r2, 12, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf6] +#CHECK: crble %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf6] +#CHECK: crbnh %r1, %r2, 3(%r4) # encoding: [0xec,0x12,0x40,0x03,0xc0,0xf6] + crb %r1, %r2, 12, 3(%r4) + crble %r1, %r2, 3(%r4) + crbnh %r1, %r2, 3(%r4) + #CHECK: crj %r0, %r0, 0, .[[LAB:L.*]] # encoding: [0xec,0x00,A,A,0x00,0x76] #CHECK: fixup A - offset: 2, value: .[[LAB]]+2, kind: FK_390_PC16DBL #CHECK: crj %r0, %r15, 0, .[[LAB:L.*]] # encoding: [0xec,0x0f,A,A,0x00,0x76]