From bd7780bc6004e8545042e0aaf7d0d98082baf422 Mon Sep 17 00:00:00 2001
From: Misha Brukman <brukman+llvm@gmail.com>
Date: Sat, 23 Oct 2004 06:08:38 +0000
Subject: 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
---
 lib/Target/PowerPC/PPCInstrFormats.td | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

(limited to 'lib')

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>
-- 
cgit v1.1