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 | 783a4a9d86565b5993efbb86c401097579d04369 (patch) | |
| tree | 9f0461e03ea430e222d0ed78a149fa87c003f87e /llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | |
| parent | 3cec4952ab21ffe32c3b0629c2fbe80064d75c8a (diff) | |
| download | bcm5719-llvm-783a4a9d86565b5993efbb86c401097579d04369.tar.gz bcm5719-llvm-783a4a9d86565b5993efbb86c401097579d04369.zip | |
Add support for other relocation bases to jump tables, as well as custom asm directives
llvm-svn: 30593
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp index cb8588c0318..9507e4be844 100644 --- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp +++ b/llvm/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: |

