aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2010-10-14 01:19:34 +0000
committerBill Wendling <isanbard@gmail.com>2010-10-14 01:19:34 +0000
commit946a2740a54fe2cd57509999384239101bf5b9df (patch)
treee9a4fc8e8750331bd7822f2be35609888f40ada3
parent0e673919f0f02f39e2210c365f732299a21db49e (diff)
Add encoding for 'fmstat'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116466 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/ARM/ARMCodeEmitter.cpp4
-rw-r--r--lib/Target/ARM/ARMInstrVFP.td2
-rw-r--r--test/MC/ARM/simple-fp-encoding.ll2
3 files changed, 4 insertions, 4 deletions
diff --git a/lib/Target/ARM/ARMCodeEmitter.cpp b/lib/Target/ARM/ARMCodeEmitter.cpp
index 9254fcd917..fa27a7531b 100644
--- a/lib/Target/ARM/ARMCodeEmitter.cpp
+++ b/lib/Target/ARM/ARMCodeEmitter.cpp
@@ -1599,10 +1599,6 @@ void ARMCodeEmitter::emitMiscInstruction(const MachineInstr &MI) {
default:
llvm_unreachable("ARMCodeEmitter::emitMiscInstruction");
- case ARM::FMSTAT:
- // No further encoding needed.
- break;
-
case ARM::FCONSTD:
case ARM::FCONSTS: {
// Encode Dd / Sd.
diff --git a/lib/Target/ARM/ARMInstrVFP.td b/lib/Target/ARM/ARMInstrVFP.td
index a67e64594a..c7f3f85eec 100644
--- a/lib/Target/ARM/ARMInstrVFP.td
+++ b/lib/Target/ARM/ARMInstrVFP.td
@@ -927,7 +927,9 @@ def FMSTAT : VFPAI<(outs), (ins), VFPMiscFrm, IIC_fpSTAT, "vmrs",
let Inst{15-12} = 0b1111;
let Inst{11-8} = 0b1010;
let Inst{7} = 0;
+ let Inst{6-5} = 0b00;
let Inst{4} = 1;
+ let Inst{3-0} = 0b0000;
}
// FPSCR <-> GPR (for disassembly only)
diff --git a/test/MC/ARM/simple-fp-encoding.ll b/test/MC/ARM/simple-fp-encoding.ll
index 90f81696bd..84ccb6d005 100644
--- a/test/MC/ARM/simple-fp-encoding.ll
+++ b/test/MC/ARM/simple-fp-encoding.ll
@@ -331,6 +331,8 @@ entry:
ret float %sub
}
+; FIXME: Check for fmstat instruction.
+
define i32 @f100() nounwind readnone {
entry:
; CHECK: f100