Index: llvm/lib/Target/PowerPC/PPCInstr64Bit.td =================================================================== --- llvm/lib/Target/PowerPC/PPCInstr64Bit.td +++ llvm/lib/Target/PowerPC/PPCInstr64Bit.td @@ -1217,15 +1217,15 @@ def STW8 : DForm_1<36, (outs), (ins g8rc:$rS, memri:$src), "stw $rS, $src", IIC_LdStStore, [(truncstorei32 i64:$rS, iaddr:$src)]>; -def STBX8 : XForm_8_memOp<31, 215, (outs), (ins g8rc:$rS, memrr:$dst), +def STBX8 : XForm_1_memOp<31, 215, (outs), (ins g8rc:$rS, memrr:$dst), "stbx $rS, $dst", IIC_LdStStore, [(truncstorei8 i64:$rS, xaddr:$dst)]>, PPC970_DGroup_Cracked; -def STHX8 : XForm_8_memOp<31, 407, (outs), (ins g8rc:$rS, memrr:$dst), +def STHX8 : XForm_1_memOp<31, 407, (outs), (ins g8rc:$rS, memrr:$dst), "sthx $rS, $dst", IIC_LdStStore, [(truncstorei16 i64:$rS, xaddr:$dst)]>, PPC970_DGroup_Cracked; -def STWX8 : XForm_8_memOp<31, 151, (outs), (ins g8rc:$rS, memrr:$dst), +def STWX8 : XForm_1_memOp<31, 151, (outs), (ins g8rc:$rS, memrr:$dst), "stwx $rS, $dst", IIC_LdStStore, [(truncstorei32 i64:$rS, xaddr:$dst)]>, PPC970_DGroup_Cracked; @@ -1235,11 +1235,11 @@ def STD : DSForm_1<62, 0, (outs), (ins g8rc:$rS, memrix:$dst), "std $rS, $dst", IIC_LdStSTD, [(aligned4store i64:$rS, iaddrX4:$dst)]>, isPPC64; -def STDX : XForm_8_memOp<31, 149, (outs), (ins g8rc:$rS, memrr:$dst), +def STDX : XForm_1_memOp<31, 149, (outs), (ins g8rc:$rS, memrr:$dst), "stdx $rS, $dst", IIC_LdStSTD, [(store i64:$rS, xaddrX4:$dst)]>, isPPC64, PPC970_DGroup_Cracked; -def STDBRX: XForm_8_memOp<31, 660, (outs), (ins g8rc:$rS, memrr:$dst), +def STDBRX: XForm_1_memOp<31, 660, (outs), (ins g8rc:$rS, memrr:$dst), "stdbrx $rS, $dst", IIC_LdStStore, [(PPCstbrx i64:$rS, xoaddr:$dst, i64)]>, isPPC64, PPC970_DGroup_Cracked; @@ -1258,19 +1258,19 @@ "stwu $rS, $dst", IIC_LdStSTU, []>, RegConstraint<"$dst.reg = $ea_res">, NoEncode<"$ea_res">; -def STBUX8: XForm_8_memOp<31, 247, (outs ptr_rc_nor0:$ea_res), +def STBUX8: XForm_1_memOp<31, 247, (outs ptr_rc_nor0:$ea_res), (ins g8rc:$rS, memrr:$dst), "stbux $rS, $dst", IIC_LdStSTUX, []>, RegConstraint<"$dst.ptrreg = $ea_res">, NoEncode<"$ea_res">, PPC970_DGroup_Cracked; -def STHUX8: XForm_8_memOp<31, 439, (outs ptr_rc_nor0:$ea_res), +def STHUX8: XForm_1_memOp<31, 439, (outs ptr_rc_nor0:$ea_res), (ins g8rc:$rS, memrr:$dst), "sthux $rS, $dst", IIC_LdStSTUX, []>, RegConstraint<"$dst.ptrreg = $ea_res">, NoEncode<"$ea_res">, PPC970_DGroup_Cracked; -def STWUX8: XForm_8_memOp<31, 183, (outs ptr_rc_nor0:$ea_res), +def STWUX8: XForm_1_memOp<31, 183, (outs ptr_rc_nor0:$ea_res), (ins g8rc:$rS, memrr:$dst), "stwux $rS, $dst", IIC_LdStSTUX, []>, RegConstraint<"$dst.ptrreg = $ea_res">, @@ -1284,7 +1284,7 @@ RegConstraint<"$dst.reg = $ea_res">, NoEncode<"$ea_res">, isPPC64; -def STDUX : XForm_8_memOp<31, 181, (outs ptr_rc_nor0:$ea_res), +def STDUX : XForm_1_memOp<31, 181, (outs ptr_rc_nor0:$ea_res), (ins g8rc:$rS, memrr:$dst), "stdux $rS, $dst", IIC_LdStSTUX, []>, RegConstraint<"$dst.ptrreg = $ea_res">, Index: llvm/lib/Target/PowerPC/PPCInstrAltivec.td =================================================================== --- llvm/lib/Target/PowerPC/PPCInstrAltivec.td +++ llvm/lib/Target/PowerPC/PPCInstrAltivec.td @@ -434,19 +434,19 @@ PPC970_Unit_LSU; let PPC970_Unit = 2, mayStore = 1, mayLoad = 0 in { // Stores. -def STVEBX: XForm_8_memOp<31, 135, (outs), (ins vrrc:$rS, memrr:$dst), +def STVEBX: XForm_1_memOp<31, 135, (outs), (ins vrrc:$rS, memrr:$dst), "stvebx $rS, $dst", IIC_LdStStore, [(int_ppc_altivec_stvebx v16i8:$rS, xoaddr:$dst)]>; -def STVEHX: XForm_8_memOp<31, 167, (outs), (ins vrrc:$rS, memrr:$dst), +def STVEHX: XForm_1_memOp<31, 167, (outs), (ins vrrc:$rS, memrr:$dst), "stvehx $rS, $dst", IIC_LdStStore, [(int_ppc_altivec_stvehx v8i16:$rS, xoaddr:$dst)]>; -def STVEWX: XForm_8_memOp<31, 199, (outs), (ins vrrc:$rS, memrr:$dst), +def STVEWX: XForm_1_memOp<31, 199, (outs), (ins vrrc:$rS, memrr:$dst), "stvewx $rS, $dst", IIC_LdStStore, [(int_ppc_altivec_stvewx v4i32:$rS, xoaddr:$dst)]>; -def STVX : XForm_8_memOp<31, 231, (outs), (ins vrrc:$rS, memrr:$dst), +def STVX : XForm_1_memOp<31, 231, (outs), (ins vrrc:$rS, memrr:$dst), "stvx $rS, $dst", IIC_LdStStore, [(int_ppc_altivec_stvx v4i32:$rS, xoaddr:$dst)]>; -def STVXL : XForm_8_memOp<31, 487, (outs), (ins vrrc:$rS, memrr:$dst), +def STVXL : XForm_1_memOp<31, 487, (outs), (ins vrrc:$rS, memrr:$dst), "stvxl $rS, $dst", IIC_LdStStore, [(int_ppc_altivec_stvxl v4i32:$rS, xoaddr:$dst)]>; } Index: llvm/lib/Target/PowerPC/PPCInstrFormats.td =================================================================== --- llvm/lib/Target/PowerPC/PPCInstrFormats.td +++ llvm/lib/Target/PowerPC/PPCInstrFormats.td @@ -520,10 +520,6 @@ InstrItinClass itin, list pattern> : XForm_base_r3xo; -class XForm_8_memOp opcode, bits<10> xo, dag OOL, dag IOL, string asmstr, - InstrItinClass itin, list pattern> - : XForm_base_r3xo_memOp; - class XForm_10 opcode, bits<10> xo, dag OOL, dag IOL, string asmstr, InstrItinClass itin, list pattern> : XForm_base_r3xo_swapped { Index: llvm/lib/Target/PowerPC/PPCInstrInfo.td =================================================================== --- llvm/lib/Target/PowerPC/PPCInstrInfo.td +++ llvm/lib/Target/PowerPC/PPCInstrInfo.td @@ -2099,24 +2099,24 @@ // Indexed (r+r) Stores. let PPC970_Unit = 2 in { -def STBX : XForm_8_memOp<31, 215, (outs), (ins gprc:$rS, memrr:$dst), +def STBX : XForm_1_memOp<31, 215, (outs), (ins gprc:$rS, memrr:$dst), "stbx $rS, $dst", IIC_LdStStore, [(truncstorei8 i32:$rS, xaddr:$dst)]>, PPC970_DGroup_Cracked; -def STHX : XForm_8_memOp<31, 407, (outs), (ins gprc:$rS, memrr:$dst), +def STHX : XForm_1_memOp<31, 407, (outs), (ins gprc:$rS, memrr:$dst), "sthx $rS, $dst", IIC_LdStStore, [(truncstorei16 i32:$rS, xaddr:$dst)]>, PPC970_DGroup_Cracked; -def STWX : XForm_8_memOp<31, 151, (outs), (ins gprc:$rS, memrr:$dst), +def STWX : XForm_1_memOp<31, 151, (outs), (ins gprc:$rS, memrr:$dst), "stwx $rS, $dst", IIC_LdStStore, [(store i32:$rS, xaddr:$dst)]>, PPC970_DGroup_Cracked; -def STHBRX: XForm_8_memOp<31, 918, (outs), (ins gprc:$rS, memrr:$dst), +def STHBRX: XForm_1_memOp<31, 918, (outs), (ins gprc:$rS, memrr:$dst), "sthbrx $rS, $dst", IIC_LdStStore, [(PPCstbrx i32:$rS, xoaddr:$dst, i16)]>, PPC970_DGroup_Cracked; -def STWBRX: XForm_8_memOp<31, 662, (outs), (ins gprc:$rS, memrr:$dst), +def STWBRX: XForm_1_memOp<31, 662, (outs), (ins gprc:$rS, memrr:$dst), "stwbrx $rS, $dst", IIC_LdStStore, [(PPCstbrx i32:$rS, xoaddr:$dst, i32)]>, PPC970_DGroup_Cracked; @@ -2137,32 +2137,32 @@ // Indexed (r+r) Stores with Update (preinc). let PPC970_Unit = 2, mayStore = 1, mayLoad = 0 in { -def STBUX : XForm_8_memOp<31, 247, (outs ptr_rc_nor0:$ea_res), +def STBUX : XForm_1_memOp<31, 247, (outs ptr_rc_nor0:$ea_res), (ins gprc:$rS, memrr:$dst), "stbux $rS, $dst", IIC_LdStSTUX, []>, RegConstraint<"$dst.ptrreg = $ea_res">, NoEncode<"$ea_res">, PPC970_DGroup_Cracked; -def STHUX : XForm_8_memOp<31, 439, (outs ptr_rc_nor0:$ea_res), +def STHUX : XForm_1_memOp<31, 439, (outs ptr_rc_nor0:$ea_res), (ins gprc:$rS, memrr:$dst), "sthux $rS, $dst", IIC_LdStSTUX, []>, RegConstraint<"$dst.ptrreg = $ea_res">, NoEncode<"$ea_res">, PPC970_DGroup_Cracked; -def STWUX : XForm_8_memOp<31, 183, (outs ptr_rc_nor0:$ea_res), +def STWUX : XForm_1_memOp<31, 183, (outs ptr_rc_nor0:$ea_res), (ins gprc:$rS, memrr:$dst), "stwux $rS, $dst", IIC_LdStSTUX, []>, RegConstraint<"$dst.ptrreg = $ea_res">, NoEncode<"$ea_res">, PPC970_DGroup_Cracked; let Predicates = [HasFPU] in { -def STFSUX: XForm_8_memOp<31, 695, (outs ptr_rc_nor0:$ea_res), +def STFSUX: XForm_1_memOp<31, 695, (outs ptr_rc_nor0:$ea_res), (ins f4rc:$rS, memrr:$dst), "stfsux $rS, $dst", IIC_LdStSTFDU, []>, RegConstraint<"$dst.ptrreg = $ea_res">, NoEncode<"$ea_res">, PPC970_DGroup_Cracked; -def STFDUX: XForm_8_memOp<31, 759, (outs ptr_rc_nor0:$ea_res), +def STFDUX: XForm_1_memOp<31, 759, (outs ptr_rc_nor0:$ea_res), (ins f8rc:$rS, memrr:$dst), "stfdux $rS, $dst", IIC_LdStSTFDU, []>, RegConstraint<"$dst.ptrreg = $ea_res">, Index: llvm/lib/Target/PowerPC/PPCInstrQPX.td =================================================================== --- llvm/lib/Target/PowerPC/PPCInstrQPX.td +++ llvm/lib/Target/PowerPC/PPCInstrQPX.td @@ -631,12 +631,12 @@ // Store indexed instructions let mayStore = 1 in { - def QVSTFDX : XForm_8_memOp<31, 711, + def QVSTFDX : XForm_1_memOp<31, 711, (outs), (ins qfrc:$FRT, memrr:$dst), "qvstfdx $FRT, $dst", IIC_LdStSTFD, [(store qfrc:$FRT, xoaddr:$dst)]>; let isCodeGenOnly = 1 in - def QVSTFDXb : XForm_8_memOp<31, 711, + def QVSTFDXb : XForm_1_memOp<31, 711, (outs), (ins qbrc:$FRT, memrr:$dst), "qvstfdx $FRT, $dst", IIC_LdStSTFD, []>; @@ -672,12 +672,12 @@ (outs), (ins qfrc:$FRT, memrr:$dst), "qvstfduxia $FRT, $dst", IIC_LdStSTFD, []>; - def QVSTFSX : XForm_8_memOp<31, 647, + def QVSTFSX : XForm_1_memOp<31, 647, (outs), (ins qfrc:$FRT, memrr:$dst), "qvstfsx $FRT, $dst", IIC_LdStSTFD, [(truncstorev4f32 qfrc:$FRT, xoaddr:$dst)]>; let isCodeGenOnly = 1 in - def QVSTFSXs : XForm_8_memOp<31, 647, + def QVSTFSXs : XForm_1_memOp<31, 647, (outs), (ins qsrc:$FRT, memrr:$dst), "qvstfsx $FRT, $dst", IIC_LdStSTFD, [(store qsrc:$FRT, xoaddr:$dst)]>;