X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FInstruction.def;h=ca20eb1d3cc4add894c3518429455e2ae4d40176;hb=c1323faa740e10758742418a3dc88314f5d3eb07;hp=afc12edd5001b03dea2a68f1f24cd3ac6f7492a3;hpb=c5b74477c0f2d108e91dd803d29142ed0113ea04;p=oota-llvm.git diff --git a/include/llvm/Instruction.def b/include/llvm/Instruction.def index afc12edd500..ca20eb1d3cc 100644 --- a/include/llvm/Instruction.def +++ b/include/llvm/Instruction.def @@ -1,4 +1,11 @@ -//===-- llvm/Instruction.def - File that describes Instructions --*- C++ -*--=// +//===-- llvm/Instruction.def - File that describes Instructions -*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by the LLVM research group and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// // // This file contains descriptions of the various LLVM instructions. This is // used as a central place for enumerating the different instructions and @@ -8,7 +15,7 @@ // NOTE: NO INCLUDE GUARD DESIRED! -// Provide definitions of macros so that users of this file don't have to define +// Provide definitions of macros so that users of this file do not have to define // everything to use it... // #ifndef FIRST_TERM_INST @@ -73,56 +80,64 @@ // 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) - LAST_TERM_INST ( 4) +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 , GenericBinaryInst) -HANDLE_BINARY_INST( 7, Sub , GenericBinaryInst) -HANDLE_BINARY_INST( 8, Mul , GenericBinaryInst) -HANDLE_BINARY_INST( 9, Div , GenericBinaryInst) -HANDLE_BINARY_INST(10, Rem , GenericBinaryInst) + 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 , GenericBinaryInst) -HANDLE_BINARY_INST(12, Or , GenericBinaryInst) -HANDLE_BINARY_INST(13, Xor , GenericBinaryInst) +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, PHINode, PHINode ) // PHI node instruction -HANDLE_OTHER_INST(27, Cast , CastInst ) // Type cast -HANDLE_OTHER_INST(28, Call , CallInst ) // Call a function - -HANDLE_OTHER_INST(29, Shl , ShiftInst ) // Shift operations -HANDLE_OTHER_INST(30, Shr , ShiftInst ) - -HANDLE_OTHER_INST(31, UserOp1, Instruction) // May be used internally in a pass -HANDLE_OTHER_INST(32, UserOp2, Instruction) - LAST_OTHER_INST(32) + 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(30, Shl , ShiftInst ) // Shift operations +HANDLE_OTHER_INST(31, Shr , ShiftInst ) +// 32 -> Empty slot used to be used for vanext in llvm 1.5 and before. +// 33 -> Empty slot used to be used for vaarg in llvm 1.5 and before. +HANDLE_OTHER_INST(34, Select , SelectInst ) // select instruction + +HANDLE_OTHER_INST(35, UserOp1, Instruction) // May be used internally in a pass +HANDLE_OTHER_INST(36, UserOp2, Instruction) +HANDLE_OTHER_INST(37, VAArg , VAArgInst ) // vaarg instruction +HANDLE_OTHER_INST(38, ExtractElement, ExtractElementInst) // extract packed element +HANDLE_OTHER_INST(39, InsertElement, InsertElementInst) // insert element into packed vector + LAST_OTHER_INST(39) #undef FIRST_TERM_INST #undef HANDLE_TERM_INST