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)
commit2bd1262a3299ca9c9ac936df6d17f52858d21ef8
tree29f9186fa37c0f97ea47a4cf112db958e3d3444f
parent49a2790fb329c5cf27d9735b97ef70a6760921e4
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.

llvm-svn: 209390
llvm/include/llvm/IR/IntrinsicsARM.td
llvm/lib/Target/ARM/ARMInstrInfo.td
llvm/lib/Target/ARM/ARMInstrThumb.td
llvm/lib/Target/ARM/ARMInstrThumb2.td
llvm/test/CodeGen/ARM/undefined.ll [new file with mode: 0644]