aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2010-02-09 22:35:38 +0000
committerJohnny Chen <johnny.chen@apple.com>2010-02-09 22:35:38 +0000
commitc9745049e6df8dbf56061a75b5d070b16331428f (patch)
tree483c81f5fb5eeb5e5ba7b7bc90a65c5882dc25a4 /lib/Target
parent3ac97b386bf05b5e0538922c6f9c1e09bcc6ab4c (diff)
downloadexternal_llvm-c9745049e6df8dbf56061a75b5d070b16331428f.zip
external_llvm-c9745049e6df8dbf56061a75b5d070b16331428f.tar.gz
external_llvm-c9745049e6df8dbf56061a75b5d070b16331428f.tar.bz2
Added VMRS/VMSR for disassembly only.
A8.6.335 & A8.6.336 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95703 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/ARM/ARMInstrVFP.td25
1 files changed, 25 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMInstrVFP.td b/lib/Target/ARM/ARMInstrVFP.td
index 03b478d..365e1e3 100644
--- a/lib/Target/ARM/ARMInstrVFP.td
+++ b/lib/Target/ARM/ARMInstrVFP.td
@@ -516,6 +516,31 @@ def FMSTAT : VFPAI<(outs), (ins), VFPMiscFrm, IIC_fpSTAT, "vmrs",
let Inst{4} = 1;
}
+// FPSCR <-> GPR (for disassembly only)
+
+let Uses = [FPSCR] in {
+def VMRS : VFPAI<(outs GPR:$dst), (ins), VFPMiscFrm, IIC_fpSTAT, "vmrs",
+ "\t$dst, fpscr",
+ [/* For disassembly only; pattern left blank */]> {
+ let Inst{27-20} = 0b11101111;
+ let Inst{19-16} = 0b0001;
+ let Inst{11-8} = 0b1010;
+ let Inst{7} = 0;
+ let Inst{4} = 1;
+}
+}
+
+let Defs = [FPSCR] in {
+def VMSR : VFPAI<(outs), (ins GPR:$src), VFPMiscFrm, IIC_fpSTAT, "vmsr",
+ "\tfpscr, $src",
+ [/* For disassembly only; pattern left blank */]> {
+ let Inst{27-20} = 0b11101110;
+ let Inst{19-16} = 0b0001;
+ let Inst{11-8} = 0b1010;
+ let Inst{7} = 0;
+ let Inst{4} = 1;
+}
+}
// Materialize FP immediates. VFP3 only.
let isReMaterializable = 1 in {