diff options
author | Andrew Lenharth <andrewl@lenharth.org> | 2006-09-24 19:45:58 +0000 |
---|---|---|
committer | Andrew Lenharth <andrewl@lenharth.org> | 2006-09-24 19:45:58 +0000 |
commit | beec30eaf301bd6882cd06800b5175b94f033f9d (patch) | |
tree | c19a2eaf2fc2c57289099d0a93c8f5166b7564ea /lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | |
parent | b08659d2e55562a94a92593cc51f35f2229e65f3 (diff) |
Add support for other relocation bases to jump tables, as well as custom asm directives
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30593 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/LegalizeDAG.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index cb8588c031..9507e4be84 100644 --- a/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp @@ -558,6 +558,17 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) { #endif assert(0 && "Do not know how to legalize this operator!"); abort(); + case ISD::JumpTableRelocBase: + switch (TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0))) { + case TargetLowering::Custom: + Tmp1 = TLI.LowerOperation(Op, DAG); + if (Tmp1.Val) Result = Tmp1; + break; + default: + Result = LegalizeOp(Node->getOperand(0)); + break; + } + break; case ISD::GlobalAddress: case ISD::ExternalSymbol: case ISD::ConstantPool: |