diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2009-05-03 13:09:10 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2009-05-03 13:09:10 +0000 |
commit | 1deea5f3a7191eeeb076d81cc9647d0e661650df (patch) | |
tree | 3f8723a6b227b758804521b1016f18e01abcde29 /lib/Target/MSP430/MSP430ISelDAGToDAG.cpp | |
parent | 0eb6af40e3f7ea5949667bd90d5eb39df125e593 (diff) | |
download | llvm-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.cpp | 16 |
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; } |