aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMisha Brukman <brukman+llvm@gmail.com>2004-10-23 06:08:38 +0000
committerMisha Brukman <brukman+llvm@gmail.com>2004-10-23 06:08:38 +0000
commitbd7780bc6004e8545042e0aaf7d0d98082baf422 (patch)
tree17ccbd4fac98a7af47bb4183ccd2efe885e1c71e
parentda8d96d1a1769d0614c46d9880ac3c21cbc8e74c (diff)
downloadexternal_llvm-bd7780bc6004e8545042e0aaf7d0d98082baf422.zip
external_llvm-bd7780bc6004e8545042e0aaf7d0d98082baf422.tar.gz
external_llvm-bd7780bc6004e8545042e0aaf7d0d98082baf422.tar.bz2
DForm_1, particularly used by store instructions, needs the immediate operand to
be listed second as that is how the instructions are usually created (and is the correct asm syntax) so that it's assembled correctly from its constituents git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17183 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/PowerPC/PPCInstrFormats.td14
1 files changed, 13 insertions, 1 deletions
diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td
index b4f868f..880bcce 100644
--- a/lib/Target/PowerPC/PPCInstrFormats.td
+++ b/lib/Target/PowerPC/PPCInstrFormats.td
@@ -131,9 +131,21 @@ class DForm_base<bits<6> opcode, bit ppc64, bit vmx, dag OL, string asmstr>
}
class DForm_1<bits<6> opcode, bit ppc64, bit vmx, dag OL, string asmstr>
- : DForm_base<opcode, ppc64, vmx, OL, asmstr> {
+ : I<opcode, ppc64, vmx, OL, asmstr> {
+ bits<5> A;
+ bits<16> C;
+ bits<5> B;
+
+ let ArgCount = 3;
+ let Arg0Type = Gpr.Value;
let Arg1Type = Disimm16.Value;
let Arg2Type = Gpr.Value;
+ let Arg3Type = 0;
+ let Arg4Type = 0;
+
+ let Inst{6-10} = A;
+ let Inst{11-15} = B;
+ let Inst{16-31} = C;
}
class DForm_2<bits<6> opcode, bit ppc64, bit vmx, dag OL, string asmstr>