diff --git a/lib/Target/MSP430/MSP430AsmPrinter.cpp b/lib/Target/MSP430/MSP430AsmPrinter.cpp
index a9a2711..fb64283 100644
--- a/lib/Target/MSP430/MSP430AsmPrinter.cpp
+++ b/lib/Target/MSP430/MSP430AsmPrinter.cpp
@@ -162,17 +162,23 @@
 void MSP430AsmPrinter::printSrcMemOperand(const MachineInstr *MI, int OpNum,
                                           const char* Modifier) {
   const MachineOperand &Disp = MI->getOperand(OpNum);
-  assert(Disp.isImm() && "Displacement can be only immediate!");
+  const MachineOperand &Base = MI->getOperand(OpNum+1);
 
-  // Special case: 0(Reg) -> @Reg
-  if (Disp.getImm() == 0) {
-    O << "@";
-    printOperand(MI, OpNum + 1);
-  } else {
-    printOperand(MI, OpNum, "nohash");
-    O << '(';
-    printOperand(MI, OpNum + 1);
-    O << ')';
-  }
+  if (Disp.isGlobal())
+    printOperand(MI, OpNum, "mem");
+  else if (Disp.isImm() && !Base.getReg())
+    printOperand(MI, OpNum);
+  else if (Base.getReg()) {
+    if (Disp.getImm()) {
+      printOperand(MI, OpNum, "nohash");
+      O << '(';
+      printOperand(MI, OpNum + 1);
+      O << ')';
+    } else {
+      O << '@';
+      printOperand(MI, OpNum + 1);
+    }
+  } else
+    assert(0 && "Unsupported memory operand");
 }
 
diff --git a/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp b/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
index e564e63..c057d69 100644
--- a/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
+++ b/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp
@@ -72,6 +72,7 @@
   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 @@
   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;
 }
