From: Anton Korobeynikov Date: Sun, 14 Jul 2013 15:11:00 +0000 (+0000) Subject: Properly lower jump tables on MSP430. Patch by Job Noorman! X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=a77f816c4c6e4c833ac9ab78e2e038dcfb861c73;p=oota-llvm.git Properly lower jump tables on MSP430. Patch by Job Noorman! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186283 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/MSP430/MSP430ISelLowering.cpp b/lib/Target/MSP430/MSP430ISelLowering.cpp index b144164ad6f..682eb2c7e69 100644 --- a/lib/Target/MSP430/MSP430ISelLowering.cpp +++ b/lib/Target/MSP430/MSP430ISelLowering.cpp @@ -987,8 +987,8 @@ SDValue MSP430TargetLowering::LowerJumpTable(SDValue Op, SelectionDAG &DAG) const { JumpTableSDNode *JT = cast(Op); SDValue Result = DAG.getTargetJumpTable(JT->getIndex(), getPointerTy()); - Result.getNode()->setDebugLoc(JT->getDebugLoc()); - return Result; + return DAG.getNode(MSP430ISD::Wrapper, SDLoc(JT), + getPointerTy(), Result); } /// getPostIndexedAddressParts - returns true by value, base pointer and diff --git a/test/CodeGen/MSP430/jumptable.ll b/test/CodeGen/MSP430/jumptable.ll index 23619e75720..903ac137ead 100644 --- a/test/CodeGen/MSP430/jumptable.ll +++ b/test/CodeGen/MSP430/jumptable.ll @@ -1,4 +1,4 @@ -; RUN: llc -O0 < %s | FileCheck %s +; RUN: llc < %s | FileCheck %s target datalayout = "e-p:16:16:16-i8:8:8-i16:16:16-i32:16:32-n8:16" target triple = "msp430---elf" @@ -11,9 +11,9 @@ entry: %i.addr = alloca i16, align 2 store i16 %i, i16* %i.addr, align 2 %0 = load i16* %i.addr, align 2 -; CHECK: add.w #.LJTI0_0, [[REG1:r[0-9]+]] -; CHECK: mov.w 0([[REG1]]), [[REG2:r[0-9]+]] -; CHECK: mov.w [[REG2]], pc +; CHECK: mov.w #2, r14 +; CHECK: call #__mulhi3hw_noint +; CHECK: mov.w .LJTI0_0(r15), pc switch i16 %0, label %sw.default [ i16 0, label %sw.bb i16 1, label %sw.bb1 @@ -49,6 +49,6 @@ return: ; preds = %sw.default, %sw.bb3 ; CHECK: .LJTI0_0: ; CHECK-NEXT: .short .LBB0_2 -; CHECK-NEXT: .short .LBB0_3 ; CHECK-NEXT: .short .LBB0_4 +; CHECK-NEXT: .short .LBB0_3 ; CHECK-NEXT: .short .LBB0_5