diff options
author | Johnny Chen <johnny.chen@apple.com> | 2010-02-09 22:35:38 +0000 |
---|---|---|
committer | Johnny Chen <johnny.chen@apple.com> | 2010-02-09 22:35:38 +0000 |
commit | c9745049e6df8dbf56061a75b5d070b16331428f (patch) | |
tree | 483c81f5fb5eeb5e5ba7b7bc90a65c5882dc25a4 /lib/Target | |
parent | 3ac97b386bf05b5e0538922c6f9c1e09bcc6ab4c (diff) | |
download | external_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.td | 25 |
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 { |