ARM: introduce llvm.arm.undefined intrinsic
authorSaleem Abdulrasool <compnerd@compnerd.org>
Thu, 22 May 2014 04:46:46 +0000 (04:46 +0000)
committerSaleem Abdulrasool <compnerd@compnerd.org>
Thu, 22 May 2014 04:46:46 +0000 (04:46 +0000)
commit71ce2118bb80aab2bf4503477b0fdb90401bca98
treec6c33949cd41aae1a72bb6fdc7c1f5c1761e8197
parentbce7d05ba9bf159da47af70f360c8ff7205c91a6
ARM: introduce llvm.arm.undefined intrinsic

This intrinsic permits the emission of platform specific undefined sequences.
ARM has reserved the 0xde opcode which takes a single integer parameter (ignored
by the CPU).  This permits the operating system to implement custom behaviour on
this trap.  The llvm.arm.undefined intrinsic is meant to provide a means for
generating the target specific behaviour from the frontend.  This is
particularly useful for Windows on ARM which has made use of a series of these
special opcodes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209390 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/IntrinsicsARM.td
lib/Target/ARM/ARMInstrInfo.td
lib/Target/ARM/ARMInstrThumb.td
lib/Target/ARM/ARMInstrThumb2.td
test/CodeGen/ARM/undefined.ll [new file with mode: 0644]