mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-25 10:27:04 +00:00
Add new unreachable instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17036 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -80,60 +80,61 @@
|
||||
// instructions for it to be a well formed basic block.
|
||||
//
|
||||
FIRST_TERM_INST ( 1)
|
||||
HANDLE_TERM_INST ( 1, Ret , ReturnInst)
|
||||
HANDLE_TERM_INST ( 2, Br , BranchInst)
|
||||
HANDLE_TERM_INST ( 3, Switch, SwitchInst)
|
||||
HANDLE_TERM_INST ( 4, Invoke, InvokeInst)
|
||||
HANDLE_TERM_INST ( 5, Unwind, UnwindInst)
|
||||
LAST_TERM_INST ( 5)
|
||||
HANDLE_TERM_INST ( 1, Ret , ReturnInst)
|
||||
HANDLE_TERM_INST ( 2, Br , BranchInst)
|
||||
HANDLE_TERM_INST ( 3, Switch , SwitchInst)
|
||||
HANDLE_TERM_INST ( 4, Invoke , InvokeInst)
|
||||
HANDLE_TERM_INST ( 5, Unwind , UnwindInst)
|
||||
HANDLE_TERM_INST ( 6, Unreachable, UnreachableInst)
|
||||
LAST_TERM_INST ( 6)
|
||||
|
||||
// Standard binary operators...
|
||||
FIRST_BINARY_INST( 6)
|
||||
HANDLE_BINARY_INST( 6, Add , BinaryOperator)
|
||||
HANDLE_BINARY_INST( 7, Sub , BinaryOperator)
|
||||
HANDLE_BINARY_INST( 8, Mul , BinaryOperator)
|
||||
HANDLE_BINARY_INST( 9, Div , BinaryOperator)
|
||||
HANDLE_BINARY_INST(10, Rem , BinaryOperator)
|
||||
FIRST_BINARY_INST( 7)
|
||||
HANDLE_BINARY_INST( 7, Add , BinaryOperator)
|
||||
HANDLE_BINARY_INST( 8, Sub , BinaryOperator)
|
||||
HANDLE_BINARY_INST( 9, Mul , BinaryOperator)
|
||||
HANDLE_BINARY_INST(10, Div , BinaryOperator)
|
||||
HANDLE_BINARY_INST(11, Rem , BinaryOperator)
|
||||
|
||||
// Logical operators...
|
||||
HANDLE_BINARY_INST(11, And , BinaryOperator)
|
||||
HANDLE_BINARY_INST(12, Or , BinaryOperator)
|
||||
HANDLE_BINARY_INST(13, Xor , BinaryOperator)
|
||||
HANDLE_BINARY_INST(12, And , BinaryOperator)
|
||||
HANDLE_BINARY_INST(13, Or , BinaryOperator)
|
||||
HANDLE_BINARY_INST(14, Xor , BinaryOperator)
|
||||
|
||||
// Binary comparison operators...
|
||||
HANDLE_BINARY_INST(14, SetEQ , SetCondInst)
|
||||
HANDLE_BINARY_INST(15, SetNE , SetCondInst)
|
||||
HANDLE_BINARY_INST(16, SetLE , SetCondInst)
|
||||
HANDLE_BINARY_INST(17, SetGE , SetCondInst)
|
||||
HANDLE_BINARY_INST(18, SetLT , SetCondInst)
|
||||
HANDLE_BINARY_INST(19, SetGT , SetCondInst)
|
||||
LAST_BINARY_INST(19)
|
||||
HANDLE_BINARY_INST(15, SetEQ , SetCondInst)
|
||||
HANDLE_BINARY_INST(16, SetNE , SetCondInst)
|
||||
HANDLE_BINARY_INST(17, SetLE , SetCondInst)
|
||||
HANDLE_BINARY_INST(18, SetGE , SetCondInst)
|
||||
HANDLE_BINARY_INST(19, SetLT , SetCondInst)
|
||||
HANDLE_BINARY_INST(20, SetGT , SetCondInst)
|
||||
LAST_BINARY_INST(20)
|
||||
|
||||
// Memory operators...
|
||||
FIRST_MEMORY_INST(20)
|
||||
HANDLE_MEMORY_INST(20, Malloc, MallocInst) // Heap management instructions
|
||||
HANDLE_MEMORY_INST(21, Free , FreeInst )
|
||||
HANDLE_MEMORY_INST(22, Alloca, AllocaInst) // Stack management
|
||||
HANDLE_MEMORY_INST(23, Load , LoadInst ) // Memory manipulation instrs
|
||||
HANDLE_MEMORY_INST(24, Store , StoreInst )
|
||||
HANDLE_MEMORY_INST(25, GetElementPtr, GetElementPtrInst)
|
||||
LAST_MEMORY_INST(25)
|
||||
FIRST_MEMORY_INST(21)
|
||||
HANDLE_MEMORY_INST(21, Malloc, MallocInst) // Heap management instructions
|
||||
HANDLE_MEMORY_INST(22, Free , FreeInst )
|
||||
HANDLE_MEMORY_INST(23, Alloca, AllocaInst) // Stack management
|
||||
HANDLE_MEMORY_INST(24, Load , LoadInst ) // Memory manipulation instrs
|
||||
HANDLE_MEMORY_INST(25, Store , StoreInst )
|
||||
HANDLE_MEMORY_INST(26, GetElementPtr, GetElementPtrInst)
|
||||
LAST_MEMORY_INST(26)
|
||||
|
||||
// Other operators...
|
||||
FIRST_OTHER_INST(26)
|
||||
HANDLE_OTHER_INST(26, PHI , PHINode ) // PHI node instruction
|
||||
HANDLE_OTHER_INST(27, Cast , CastInst ) // Type cast
|
||||
HANDLE_OTHER_INST(28, Call , CallInst ) // Call a function
|
||||
FIRST_OTHER_INST(27)
|
||||
HANDLE_OTHER_INST(27, PHI , PHINode ) // PHI node instruction
|
||||
HANDLE_OTHER_INST(28, Cast , CastInst ) // Type cast
|
||||
HANDLE_OTHER_INST(29, Call , CallInst ) // Call a function
|
||||
|
||||
HANDLE_OTHER_INST(29, Shl , ShiftInst ) // Shift operations
|
||||
HANDLE_OTHER_INST(30, Shr , ShiftInst )
|
||||
HANDLE_OTHER_INST(31, VANext , VANextInst ) // vanext instruction
|
||||
HANDLE_OTHER_INST(32, VAArg , VAArgInst ) // vaarg instruction
|
||||
HANDLE_OTHER_INST(33, Select , SelectInst ) // select instruction
|
||||
HANDLE_OTHER_INST(30, Shl , ShiftInst ) // Shift operations
|
||||
HANDLE_OTHER_INST(31, Shr , ShiftInst )
|
||||
HANDLE_OTHER_INST(32, VANext , VANextInst ) // vanext instruction
|
||||
HANDLE_OTHER_INST(33, VAArg , VAArgInst ) // vaarg instruction
|
||||
HANDLE_OTHER_INST(34, Select , SelectInst ) // select instruction
|
||||
|
||||
HANDLE_OTHER_INST(34, UserOp1, Instruction) // May be used internally in a pass
|
||||
HANDLE_OTHER_INST(35, UserOp2, Instruction)
|
||||
LAST_OTHER_INST(35)
|
||||
HANDLE_OTHER_INST(35, UserOp1, Instruction) // May be used internally in a pass
|
||||
HANDLE_OTHER_INST(36, UserOp2, Instruction)
|
||||
LAST_OTHER_INST(36)
|
||||
|
||||
#undef FIRST_TERM_INST
|
||||
#undef HANDLE_TERM_INST
|
||||
|
||||
Reference in New Issue
Block a user