diff options
| author | Jim Grosbach <grosbach@apple.com> | 2010-10-13 22:38:23 +0000 |
|---|---|---|
| committer | Jim Grosbach <grosbach@apple.com> | 2010-10-13 22:38:23 +0000 |
| commit | 0708e74a95cb23d8fa95957b13489fb674d3f3c9 (patch) | |
| tree | 9bb84becaa861b15d814d1f4ab68a530810300c0 | |
| parent | a007d36c1bad5941ad81dcea44a34af253bc4c65 (diff) | |
| download | bcm5719-llvm-0708e74a95cb23d8fa95957b13489fb674d3f3c9.tar.gz bcm5719-llvm-0708e74a95cb23d8fa95957b13489fb674d3f3c9.zip | |
Add operand encoding bits for SMC and SVC in ARM mode.
llvm-svn: 116447
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrInfo.td | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td index 470550b3be8..3d4e32c3c8b 100644 --- a/llvm/lib/Target/ARM/ARMInstrInfo.td +++ b/llvm/lib/Target/ARM/ARMInstrInfo.td @@ -1295,14 +1295,18 @@ def BXJ : ABI<0b0001, (outs), (ins GPR:$func), NoItinerary, "bxj", "\t$func", // Secure Monitor Call is a system instruction -- for disassembly only def SMC : ABI<0b0001, (outs), (ins i32imm:$opt), NoItinerary, "smc", "\t$opt", [/* For disassembly only; pattern left blank */]> { - let Inst{23-20} = 0b0110; - let Inst{7-4} = 0b0111; + bits<4> opt; + let Inst{23-4} = 0b01100000000000000111; + let Inst{3-0} = opt; } // Supervisor Call (Software Interrupt) -- for disassembly only let isCall = 1 in { def SVC : ABI<0b1111, (outs), (ins i32imm:$svc), IIC_Br, "svc", "\t$svc", - [/* For disassembly only; pattern left blank */]>; + [/* For disassembly only; pattern left blank */]> { + bits<24> svc; + let Inst{23-0} = svc; +} } // Store Return State is a system instruction -- for disassembly only |

