diff --git a/lib/Target/Sparc/SparcInstrInfo.td b/lib/Target/Sparc/SparcInstrInfo.td index a79892619e9..2bb5a5e3f02 100644 --- a/lib/Target/Sparc/SparcInstrInfo.td +++ b/lib/Target/Sparc/SparcInstrInfo.td @@ -154,8 +154,14 @@ def SUBXCCrr: F3_1<2, 0b011100, "subxcc">; def SUBXCCri: F3_2<2, 0b011100, "subxcc">; // Section B.18 - Multiply Instructions, p. 113 -def UMULrr : F3_1<2, 0b001010, "umul">; -def SMULrr : F3_1<2, 0b001011, "smul">; +def UMULrr : F3_1<2, 0b001010, "umul">; +def UMULri : F3_2<2, 0b001010, "umul">; +def SMULrr : F3_1<2, 0b001011, "smul">; +def SMULri : F3_2<2, 0b001011, "smul">; +def UMULCCrr: F3_1<2, 0b011010, "umulcc">; +def UMULCCri: F3_2<2, 0b011010, "umulcc">; +def SMULCCrr: F3_1<2, 0b011011, "smulcc">; +def SMULCCri: F3_2<2, 0b011011, "smulcc">; // Section B.19 - Divide Instructions, p. 115 def UDIVrr : F3_1<2, 0b001110, "udiv">; diff --git a/lib/Target/SparcV8/SparcV8InstrInfo.td b/lib/Target/SparcV8/SparcV8InstrInfo.td index a79892619e9..2bb5a5e3f02 100644 --- a/lib/Target/SparcV8/SparcV8InstrInfo.td +++ b/lib/Target/SparcV8/SparcV8InstrInfo.td @@ -154,8 +154,14 @@ def SUBXCCrr: F3_1<2, 0b011100, "subxcc">; def SUBXCCri: F3_2<2, 0b011100, "subxcc">; // Section B.18 - Multiply Instructions, p. 113 -def UMULrr : F3_1<2, 0b001010, "umul">; -def SMULrr : F3_1<2, 0b001011, "smul">; +def UMULrr : F3_1<2, 0b001010, "umul">; +def UMULri : F3_2<2, 0b001010, "umul">; +def SMULrr : F3_1<2, 0b001011, "smul">; +def SMULri : F3_2<2, 0b001011, "smul">; +def UMULCCrr: F3_1<2, 0b011010, "umulcc">; +def UMULCCri: F3_2<2, 0b011010, "umulcc">; +def SMULCCrr: F3_1<2, 0b011011, "smulcc">; +def SMULCCri: F3_2<2, 0b011011, "smulcc">; // Section B.19 - Divide Instructions, p. 115 def UDIVrr : F3_1<2, 0b001110, "udiv">;