summaryrefslogtreecommitdiff
path: root/lib/Target/PowerPC/PPCInstrFormats.td
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2005-11-29 22:42:50 +0000
committerNate Begeman <natebegeman@mac.com>2005-11-29 22:42:50 +0000
commit7ac8e6b6a85525e81a39d2a48c40b3b652583902 (patch)
treecdbe915fadef2922efc2d81df3061374e612701b /lib/Target/PowerPC/PPCInstrFormats.td
parentf0701842f7569c4065d31710db29a01ec323fa8c (diff)
downloadllvm-7ac8e6b6a85525e81a39d2a48c40b3b652583902.tar.gz
llvm-7ac8e6b6a85525e81a39d2a48c40b3b652583902.tar.bz2
llvm-7ac8e6b6a85525e81a39d2a48c40b3b652583902.tar.xz
Represent the encoding of the SPR instructions as they actually are, so
that we can use the correct SPR numbers in the InstrInfo.td file. This is necessary to support VRsave. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24521 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCInstrFormats.td')
-rw-r--r--lib/Target/PowerPC/PPCInstrFormats.td12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/Target/PowerPC/PPCInstrFormats.td b/lib/Target/PowerPC/PPCInstrFormats.td
index d7a3e87836..ef3cf1a7ab 100644
--- a/lib/Target/PowerPC/PPCInstrFormats.td
+++ b/lib/Target/PowerPC/PPCInstrFormats.td
@@ -361,7 +361,16 @@ class XFXForm_1<bits<6> opcode, bits<10> xo, dag OL, string asmstr,
bits<10> SPR;
let Inst{6-10} = RT;
- let Inst{11-20} = SPR;
+ let Inst{11} = SPR{4};
+ let Inst{12} = SPR{3};
+ let Inst{13} = SPR{2};
+ let Inst{14} = SPR{1};
+ let Inst{15} = SPR{0};
+ let Inst{16} = SPR{9};
+ let Inst{17} = SPR{8};
+ let Inst{18} = SPR{7};
+ let Inst{19} = SPR{6};
+ let Inst{20} = SPR{5};
let Inst{21-30} = xo;
let Inst{31} = 0;
}
@@ -411,7 +420,6 @@ class XFXForm_5a<bits<6> opcode, bits<10> xo, dag OL, string asmstr,
let Inst{31} = 0;
}
-
class XFXForm_7<bits<6> opcode, bits<10> xo, dag OL, string asmstr,
InstrItinClass itin>
: XFXForm_1<opcode, xo, OL, asmstr, itin>;