aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Lenharth <andrewl@lenharth.org>2005-06-27 21:11:40 +0000
committerAndrew Lenharth <andrewl@lenharth.org>2005-06-27 21:11:40 +0000
commitc95d984f7c09016c3c6ea7e5e8f7c0abbddd189e (patch)
tree26458aa2472c55d405ec5f1ac5f48ffa135ec9a1
parent02c318e1d24573885c5134f886d0c2106e1e705e (diff)
get rid of another pseudo op
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22299 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/Alpha/AlphaISelPattern.cpp5
-rw-r--r--lib/Target/Alpha/AlphaInstrInfo.td2
2 files changed, 4 insertions, 3 deletions
diff --git a/lib/Target/Alpha/AlphaISelPattern.cpp b/lib/Target/Alpha/AlphaISelPattern.cpp
index 6d2cfc63f1..deb367887d 100644
--- a/lib/Target/Alpha/AlphaISelPattern.cpp
+++ b/lib/Target/Alpha/AlphaISelPattern.cpp
@@ -1607,8 +1607,9 @@ unsigned AlphaISel::SelectExpr(SDOperand N) {
case ISD::GlobalAddress:
AlphaLowering.restoreGP(BB);
has_sym = true;
- BuildMI(BB, Alpha::LOAD_ADDR, 1, Result)
- .addGlobalAddress(cast<GlobalAddressSDNode>(N)->getGlobal());
+ BuildMI(BB, Alpha::LDQrl, 2, Result)
+ .addGlobalAddress(cast<GlobalAddressSDNode>(N)->getGlobal())
+ .addReg(Alpha::R29);
return Result;
case ISD::TAILCALL:
diff --git a/lib/Target/Alpha/AlphaInstrInfo.td b/lib/Target/Alpha/AlphaInstrInfo.td
index d660bada06..cf17feaf64 100644
--- a/lib/Target/Alpha/AlphaInstrInfo.td
+++ b/lib/Target/Alpha/AlphaInstrInfo.td
@@ -55,7 +55,6 @@ let isCall = 1,
//These are evil as they get expanded into multiple instructions to take care of reallocation
let Uses = [R29], Defs = [R28] in {
- def LOAD_ADDR : PseudoInstAlpha<(ops GPRC:$RA, s64imm:$DISP), "lda $RA,$DISP">; //Load address
def LDQ_SYM : PseudoInstAlpha<(ops GPRC:$RA, s64imm:$DISP), "ldq $RA,$DISP">; //Load quadword
def LDS_SYM : PseudoInstAlpha<(ops GPRC:$RA, s64imm:$DISP), "lds $RA,$DISP">; //Load float
def LDT_SYM : PseudoInstAlpha<(ops GPRC:$RA, s64imm:$DISP), "ldt $RA,$DISP">; //Load double
@@ -363,6 +362,7 @@ def LDLr : MForm<0x28, (ops GPRC:$RA, s16imm:$DISP, GPRC:$RB), "ldl $RA,$DISP($R
def LDQr : MForm<0x29, (ops GPRC:$RA, s16imm:$DISP, GPRC:$RB), "ldq $RA,$DISP($RB) !gprellow">; //Load quadword
def LDBUr : MForm<0x0A, (ops GPRC:$RA, s16imm:$DISP, GPRC:$RB), "ldbu $RA,$DISP($RB) !gprellow">; //Load zero-extended byte
def LDWUr : MForm<0x0C, (ops GPRC:$RA, s16imm:$DISP, GPRC:$RB), "ldwu $RA,$DISP($RB) !gprellow">; //Load zero-extended word
+def LDQrl : MForm<0x29, (ops GPRC:$RA, s16imm:$DISP, GPRC:$RB), "ldq $RA,$DISP($RB) !literal">; //Load quadword
//Loads, float, Rellocated form
def LDSr : MForm<0x22, (ops FPRC:$RA, s16imm:$DISP, GPRC:$RB), "lds $RA,$DISP($RB) !gprellow">; //Load S_floating