aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2009-07-07 19:16:24 +0000
committerEvan Cheng <evan.cheng@apple.com>2009-07-07 19:16:24 +0000
commit2597a07e281ad074f53761ee94596f9e3dde36f1 (patch)
tree70fa9b745a22f8edf2469c4a820b48511f3a57a3 /lib/Target
parentcf50c05f860f9673b64edd8ff6bc59204b4447af (diff)
downloadexternal_llvm-2597a07e281ad074f53761ee94596f9e3dde36f1.zip
external_llvm-2597a07e281ad074f53761ee94596f9e3dde36f1.tar.gz
external_llvm-2597a07e281ad074f53761ee94596f9e3dde36f1.tar.bz2
Add BX and BXr9 encodings. Patch by Sean Callanan.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74938 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target')
-rw-r--r--lib/Target/ARM/ARMInstrInfo.td12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td
index 1433b10..22fe98a 100644
--- a/lib/Target/ARM/ARMInstrInfo.td
+++ b/lib/Target/ARM/ARMInstrInfo.td
@@ -618,7 +618,11 @@ let isCall = 1, Itinerary = IIC_Br,
// ARMv4T
def BX : ABXIx2<(outs), (ins GPR:$func, variable_ops),
"mov lr, pc\n\tbx $func",
- [(ARMcall_nolink GPR:$func)]>, Requires<[IsNotDarwin]>;
+ [(ARMcall_nolink GPR:$func)]>, Requires<[IsNotDarwin]> {
+ let Inst{7-4} = 0b0001;
+ let Inst{19-8} = 0b111111111111;
+ let Inst{27-20} = 0b00010010;
+ }
}
}
@@ -647,7 +651,11 @@ let isCall = 1, Itinerary = IIC_Br,
// ARMv4T
def BXr9 : ABXIx2<(outs), (ins GPR:$func, variable_ops),
"mov lr, pc\n\tbx $func",
- [(ARMcall_nolink GPR:$func)]>, Requires<[IsDarwin]>;
+ [(ARMcall_nolink GPR:$func)]>, Requires<[IsDarwin]> {
+ let Inst{7-4} = 0b0001;
+ let Inst{19-8} = 0b111111111111;
+ let Inst{27-20} = 0b00010010;
+ }
}
}