diff options
author | Johnny Chen <johnny.chen@apple.com> | 2010-02-17 21:39:10 +0000 |
---|---|---|
committer | Johnny Chen <johnny.chen@apple.com> | 2010-02-17 21:39:10 +0000 |
commit | 5454e0633e452b75535cff3bffe24ff08545af3e (patch) | |
tree | c69b1fd1018c873c76a8c9a578b7f60536d4ac35 /llvm/lib | |
parent | d63f5246dc282052102930eca9e61eebba50fc7e (diff) | |
download | bcm5719-llvm-5454e0633e452b75535cff3bffe24ff08545af3e.tar.gz bcm5719-llvm-5454e0633e452b75535cff3bffe24ff08545af3e.zip |
Added RFE for disassembly only.
B6.1.8 RFE Return From Exception loads the PC and the CPSR from the word at the
specified address and the following word respectively.
llvm-svn: 96519
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/ARM/ARMInstrInfo.td | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td index 5b06bea0e5e..d1793d099c0 100644 --- a/llvm/lib/Target/ARM/ARMInstrInfo.td +++ b/llvm/lib/Target/ARM/ARMInstrInfo.td @@ -957,7 +957,7 @@ def SVC : ABI<0b1111, (outs), (ins i32imm:$svc), IIC_Br, "svc", "\t$svc", [/* For disassembly only; pattern left blank */]>; } -// Store Return State -- for disassembly only +// Store Return State is a system instruction -- for disassembly only def SRSW : ABXI<{1,0,0,?}, (outs), (ins addrmode4:$addr, i32imm:$mode), NoItinerary, "srs${addr:submode}\tsp!, $mode", [/* For disassembly only; pattern left blank */]> { @@ -972,6 +972,21 @@ def SRS : ABXI<{1,0,0,?}, (outs), (ins addrmode4:$addr, i32imm:$mode), let Inst{22-20} = 0b100; // W = 0 } +// Return From Exception is a system instruction -- for disassembly only +def RFEW : ABXI<{1,0,0,?}, (outs), (ins addrmode4:$addr, GPR:$base), + NoItinerary, "rfe${addr:submode}\t$base!", + [/* For disassembly only; pattern left blank */]> { + let Inst{31-28} = 0b1111; + let Inst{22-20} = 0b011; // W = 1 +} + +def RFE : ABXI<{1,0,0,?}, (outs), (ins addrmode4:$addr, GPR:$base), + NoItinerary, "rfe${addr:submode}\t$base", + [/* For disassembly only; pattern left blank */]> { + let Inst{31-28} = 0b1111; + let Inst{22-20} = 0b001; // W = 0 +} + //===----------------------------------------------------------------------===// // Load / store Instructions. // |