diff options
author | Bill Wendling <isanbard@gmail.com> | 2010-11-21 11:05:29 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2010-11-21 11:05:29 +0000 |
commit | af2b573614c7d853879ff24eb9a86d1c36acc198 (patch) | |
tree | 0992ce12c1450ab4d01234abe58d65e41037c400 | |
parent | 9717fa9f29696bca45ddfdf206b1c382c8b40b78 (diff) | |
download | external_llvm-af2b573614c7d853879ff24eb9a86d1c36acc198.zip external_llvm-af2b573614c7d853879ff24eb9a86d1c36acc198.tar.gz external_llvm-af2b573614c7d853879ff24eb9a86d1c36acc198.tar.bz2 |
Add encoding for ARM "trap" instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119938 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/ARMInstrInfo.td | 5 | ||||
-rw-r--r-- | test/MC/ARM/arm_instructions.s | 4 | ||||
-rw-r--r-- | test/MC/ARM/simple-encoding.ll | 2 | ||||
-rw-r--r-- | test/MC/ARM/thumb.s | 3 |
4 files changed, 9 insertions, 5 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.td b/lib/Target/ARM/ARMInstrInfo.td index 4a142c6..4e4fb2e 100644 --- a/lib/Target/ARM/ARMInstrInfo.td +++ b/lib/Target/ARM/ARMInstrInfo.td @@ -1130,10 +1130,7 @@ let isBarrier = 1, isTerminator = 1 in def TRAP : AXI<(outs), (ins), MiscFrm, NoItinerary, "trap", [(trap)]>, Requires<[IsARM]> { - let Inst{27-25} = 0b011; - let Inst{24-20} = 0b11111; - let Inst{7-5} = 0b111; - let Inst{4} = 0b1; + let Inst = 0xe7ffdefe; } // Address computation and loads and stores in PIC mode. diff --git a/test/MC/ARM/arm_instructions.s b/test/MC/ARM/arm_instructions.s index 5bce41d..a1041fb 100644 --- a/test/MC/ARM/arm_instructions.s +++ b/test/MC/ARM/arm_instructions.s @@ -8,6 +8,10 @@ @ CHECK: encoding: [0x00,0xf0,0x20,0x03] nopeq +@ CHECK: trap +@ CHECK: encoding: [0xfe,0xde,0xff,0xe7] + trap + @ CHECK: bx lr @ CHECK: encoding: [0x1e,0xff,0x2f,0xe1] bx lr diff --git a/test/MC/ARM/simple-encoding.ll b/test/MC/ARM/simple-encoding.ll index f279bda..0877e8e 100644 --- a/test/MC/ARM/simple-encoding.ll +++ b/test/MC/ARM/simple-encoding.ll @@ -12,7 +12,7 @@ declare i32 @llvm.ctlz.i32(i32) define i32 @foo(i32 %a, i32 %b) { ; CHECK: foo -; CHECK: trap @ encoding: [0xf0,0x00,0xf0,0x07] +; CHECK: trap @ encoding: [0xfe,0xde,0xff,0xe7] ; CHECK: bx lr @ encoding: [0x1e,0xff,0x2f,0xe1] tail call void @llvm.trap() diff --git a/test/MC/ARM/thumb.s b/test/MC/ARM/thumb.s index 90e66f8..4b9b5a3 100644 --- a/test/MC/ARM/thumb.s +++ b/test/MC/ARM/thumb.s @@ -6,3 +6,6 @@ @ CHECK: pop {r1, r2, r4} @ encoding: [0x16,0xbc] pop {r1, r2, r4} + +@ CHECK: trap @ encoding: [0xfe,0xde] + trap |