summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2010-12-16 00:38:41 +0000
committerBill Wendling <isanbard@gmail.com>2010-12-16 00:38:41 +0000
commitdedec2b89dd05891d0e22093887b190462d5b82a (patch)
tree05786a0421c96ff7a71e88f4b69bc6abf6b21dc1 /lib
parent6147bda06140f2a9771045a6d2538654da728465 (diff)
downloadllvm-dedec2b89dd05891d0e22093887b190462d5b82a.tar.gz
llvm-dedec2b89dd05891d0e22093887b190462d5b82a.tar.bz2
llvm-dedec2b89dd05891d0e22093887b190462d5b82a.tar.xz
Add encodings for Thumb1 Spill and Restore pseudos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121929 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/ARM/ARMInstrThumb.td14
1 files changed, 12 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMInstrThumb.td b/lib/Target/ARM/ARMInstrThumb.td
index 2e8b46e853..70aeb37ecc 100644
--- a/lib/Target/ARM/ARMInstrThumb.td
+++ b/lib/Target/ARM/ARMInstrThumb.td
@@ -694,7 +694,12 @@ let canFoldAsLoad = 1, mayLoad = 1, neverHasSideEffects = 1 in
// FIXME: Pseudo for tLDRspi
def tRestore : T1pIs<(outs tGPR:$dst), (ins t_addrmode_sp:$addr), IIC_iLoad_i,
"ldr", "\t$dst, $addr", []>,
- T1LdStSP<{1,?,?}>;
+ T1LdStSP<{1,?,?}> {
+ bits<3> Rt;
+ bits<8> addr;
+ let Inst{10-8} = Rt;
+ let Inst{7-0} = addr;
+}
// Load tconstpool
// FIXME: Use ldr.n to work around a Darwin assembler bug.
@@ -745,7 +750,12 @@ let mayStore = 1, neverHasSideEffects = 1 in
// FIXME: Pseudo for tSTRspi
def tSpill : T1pIs<(outs), (ins tGPR:$src, t_addrmode_sp:$addr), IIC_iStore_i,
"str", "\t$src, $addr", []>,
- T1LdStSP<{0,?,?}>;
+ T1LdStSP<{0,?,?}> {
+ bits<3> Rt;
+ bits<8> addr;
+ let Inst{10-8} = Rt;
+ let Inst{7-0} = addr;
+}
//===----------------------------------------------------------------------===//
// Load / store multiple Instructions.