From: Anton Korobeynikov Date: Sat, 1 May 2010 12:04:22 +0000 (+0000) Subject: Long branch target oparands are not pc-rel. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=650a8e49f9f1984017b8995fc4a13058e553e6ce;p=oota-llvm.git Long branch target oparands are not pc-rel. This should fix PR6603. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102834 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/MSP430/MSP430InstrInfo.td b/lib/Target/MSP430/MSP430InstrInfo.td index 144ba26cfeb..37129e37ef8 100644 --- a/lib/Target/MSP430/MSP430InstrInfo.td +++ b/lib/Target/MSP430/MSP430InstrInfo.td @@ -77,7 +77,10 @@ def memdst : Operand { } // Branch targets have OtherVT type. -def brtarget : Operand { +def brtarget : Operand; + +// Short jump targets have OtherVT type and are printed as pcrel imm values. +def jmptarget : Operand { let PrintMethod = "printPCRelImmOperand"; } @@ -169,8 +172,7 @@ let isBranch = 1, isTerminator = 1 in { // Direct branch let isBarrier = 1 in { // Short branch - def JMP : CJForm<0, 0, - (outs), (ins brtarget:$dst), + def JMP : CJForm<0, 0, (outs), (ins jmptarget:$dst), "jmp\t$dst", [(br bb:$dst)]>; // Long branch @@ -183,7 +185,7 @@ let isBarrier = 1 in { // Conditional branches let Uses = [SRW] in def JCC : CJForm<0, 0, - (outs), (ins brtarget:$dst, cc:$cc), + (outs), (ins jmptarget:$dst, cc:$cc), "j$cc\t$dst", [(MSP430brcc bb:$dst, imm:$cc)]>; } // isBranch, isTerminator