summaryrefslogtreecommitdiff
path: root/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2009-05-03 13:09:10 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2009-05-03 13:09:10 +0000
commit1deea5f3a7191eeeb076d81cc9647d0e661650df (patch)
tree3f8723a6b227b758804521b1016f18e01abcde29 /lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
parent0eb6af40e3f7ea5949667bd90d5eb39df125e593 (diff)
downloadllvm-1deea5f3a7191eeeb076d81cc9647d0e661650df.tar.gz
llvm-1deea5f3a7191eeeb076d81cc9647d0e661650df.tar.bz2
llvm-1deea5f3a7191eeeb076d81cc9647d0e661650df.tar.xz
Correct asmprinting of memory operands
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70732 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/MSP430/MSP430ISelDAGToDAG.cpp')
-rw-r--r--lib/Target/MSP430/MSP430ISelDAGToDAG.cpp16
1 files changed, 7 insertions, 9 deletions
diff --git a/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp b/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
index e564e63598..c057d69aad 100644
--- a/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
+++ b/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
@@ -72,6 +72,7 @@ FunctionPass *llvm::createMSP430ISelDag(MSP430TargetMachine &TM) {
return new MSP430DAGToDAGISel(TM);
}
+// FIXME: This is pretty dummy routine and needs to be rewritten in the future.
bool MSP430DAGToDAGISel::SelectAddr(SDValue Op, SDValue Addr,
SDValue &Disp, SDValue &Base) {
// We don't support frame index stuff yet.
@@ -99,20 +100,17 @@ bool MSP430DAGToDAGISel::SelectAddr(SDValue Op, SDValue Addr,
case MSP430ISD::Wrapper:
SDValue N0 = Addr.getOperand(0);
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(N0)) {
- // We can match addresses of globals without any offsets
- if (!G->getOffset()) {
- Base = CurDAG->getTargetGlobalAddress(G->getGlobal(),
- MVT::i16, 0);
- Disp = CurDAG->getTargetConstant(0, MVT::i16);
+ Base = CurDAG->getRegister(0, MVT::i16);
+ Disp = CurDAG->getTargetGlobalAddress(G->getGlobal(),
+ MVT::i16, G->getOffset());
- return true;
- }
+ return true;
}
break;
};
- Base = Addr;
- Disp = CurDAG->getTargetConstant(0, MVT::i16);
+ Base = CurDAG->getRegister(0, MVT::i16);
+ Disp = Addr;
return true;
}