diff options
author | Eli Bendersky <eliben@google.com> | 2013-01-30 16:30:19 +0000 |
---|---|---|
committer | Eli Bendersky <eliben@google.com> | 2013-01-30 16:30:19 +0000 |
commit | 0f156af8312a0f3ce88e5c006bf2a52691039ceb (patch) | |
tree | d234b449bdb269b7fa099f4f636d2ed07f359925 /lib/Target/ARM/ARMISelLowering.cpp | |
parent | 620d5bd8e43331a9b5ba2437c1de0d3f4a43a34d (diff) | |
download | llvm-0f156af8312a0f3ce88e5c006bf2a52691039ceb.tar.gz llvm-0f156af8312a0f3ce88e5c006bf2a52691039ceb.tar.bz2 llvm-0f156af8312a0f3ce88e5c006bf2a52691039ceb.tar.xz |
Add a special ARM trap encoding for NaCl.
More details in this thread: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130128/163783.html
Patch by JF Bastien
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173943 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMISelLowering.cpp')
-rw-r--r-- | lib/Target/ARM/ARMISelLowering.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMISelLowering.cpp b/lib/Target/ARM/ARMISelLowering.cpp index 6beb1abd22..82b475a44f 100644 --- a/lib/Target/ARM/ARMISelLowering.cpp +++ b/lib/Target/ARM/ARMISelLowering.cpp @@ -6303,7 +6303,16 @@ EmitSjLjDispatchBlock(MachineInstr *MI, MachineBasicBlock *MBB) const { DispatchBB->setIsLandingPad(); MachineBasicBlock *TrapBB = MF->CreateMachineBasicBlock(); - BuildMI(TrapBB, dl, TII->get(Subtarget->isThumb() ? ARM::tTRAP : ARM::TRAP)); + unsigned trap_opcode; + if (Subtarget->isThumb()) { + trap_opcode = ARM::tTRAP; + } else { + if (Subtarget->useNaClTrap()) + trap_opcode = ARM::TRAPNaCl; + else + trap_opcode = ARM::TRAP; + } + BuildMI(TrapBB, dl, TII->get(trap_opcode)); DispatchBB->addSuccessor(TrapBB); MachineBasicBlock *DispContBB = MF->CreateMachineBasicBlock(); @@ -10317,4 +10326,3 @@ bool ARMTargetLowering::getTgtMemIntrinsic(IntrinsicInfo &Info, return false; } - |