From 69efbdd4f350e94e3f352e34053a12ba6f826e80 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 24 Nov 2004 03:52:02 +0000 Subject: [PATCH] Fix a few more tests by encoding the extsb and other XForm11 instructions correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18200 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/PowerPC/PPCInstrFormats.td | 31 ++++++++++++++++----------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td index 52159dc0401..426e9412ef7 100644 --- a/lib/Target/PowerPC/PPCInstrFormats.td +++ b/lib/Target/PowerPC/PPCInstrFormats.td @@ -214,6 +214,23 @@ class XForm_base_r3xo opcode, bits<10> xo, bit rc, bit ppc64, bit vmx, let Inst{31} = rc; } +// This is the same as XForm_base_r3xo, but the first two operands are swapped +// when code is emitted. +class XForm_base_r3xo_swapped + opcode, bits<10> xo, bit rc, bit ppc64, bit vmx, + dag OL, string asmstr> + : I { + bits<5> A; + bits<5> RST; + bits<5> B; + + let Inst{6-10} = RST; + let Inst{11-15} = A; + let Inst{16-20} = B; + let Inst{21-30} = xo; + let Inst{31} = rc; +} + class XForm_1 opcode, bits<10> xo, bit ppc64, bit vmx, dag OL, string asmstr> @@ -228,17 +245,7 @@ class XForm_5 opcode, bits<10> xo, bit ppc64, bit vmx, class XForm_6 opcode, bits<10> xo, bit rc, bit ppc64, bit vmx, dag OL, string asmstr> - : I { - bits<5> A; - bits<5> RST; - bits<5> B; - - let Inst{6-10} = RST; - let Inst{11-15} = A; - let Inst{16-20} = B; - let Inst{21-30} = xo; - let Inst{31} = rc; -} + : XForm_base_r3xo_swapped; class XForm_8 opcode, bits<10> xo, bit ppc64, bit vmx, dag OL, string asmstr> @@ -251,7 +258,7 @@ class XForm_10 opcode, bits<10> xo, bit rc, bit ppc64, bit vmx, class XForm_11 opcode, bits<10> xo, bit rc, bit ppc64, bit vmx, dag OL, string asmstr> - : XForm_base_r3xo { + : XForm_base_r3xo_swapped { let B = 0; } -- 2.34.1