diff gen/asmstmt.cpp @ 234:9760f54af0b7 trunk

[svn r250] Fixed the warning about dropping arguments to _Dmain when optimizing. Did a few cleanups in inline asm code.
author lindquist
date Sun, 08 Jun 2008 08:03:19 +0200
parents 76ee1bbe487e
children a168a2c3ea48
line wrap: on
line diff
--- a/gen/asmstmt.cpp	Sun Jun 08 06:45:54 2008 +0200
+++ b/gen/asmstmt.cpp	Sun Jun 08 08:03:19 2008 +0200
@@ -157,6 +157,7 @@
 static void d_format_priv_asm_label(char * buf, unsigned n)
 {
     //ASM_GENERATE_INTERNAL_LABEL(buf, "LDASM", n);//inserts a '*' for use with assemble_name
+    assert(0);
     sprintf(buf, ".LDASM%u", n);
 }
 
@@ -270,42 +271,13 @@
 	    cns = i_cns;
 	    break;
 	case Arg_Pointer:
-// FIXME
-std::cout << "asm fixme Arg_Pointer" << std::endl;
-        if (arg->expr->op == TOKdsymbol)
-        {
-            assert(0);
-            DsymbolExp* dse = (DsymbolExp*)arg->expr;
-            LabelDsymbol* lbl = dse->s->isLabel();
-            assert(lbl);
-            arg_val = lbl->statement->llvmBB;
-            if (!arg_val)
-            {
-                arg_val = lbl->statement->llvmBB = llvm::BasicBlock::Create("label", irs->topfunc());
-            }
-            cns = l_cns;
-        }
-        else
-        {
-            arg_val = arg->expr->toElem(irs)->getRVal();
-            cns = p_cns;
-        }
-        /*if (arg->expr->op == TOKvar)
-        arg_val = arg->expr->toElem(irs);
-        else if (arg->expr->op == TOKdsymbol)
-        arg_val = arg->expr->toElem(irs);
-        else
-        assert(0);*/
+        assert(arg->expr->op == TOKvar);
+        arg_val = arg->expr->toElem(irs)->getRVal();
+        cns = p_cns;
 
 	    break;
 	case Arg_Memory:
-// FIXME
-std::cout << "asm fixme Arg_Memory" << std::endl;
         arg_val = arg->expr->toElem(irs)->getRVal();
-//         if (arg->expr->op == TOKvar)
-//         arg_val = arg->expr->toElem(irs);
-//         else
-//         arg_val = arg->expr->toElem(irs);
 
 	    switch (arg->mode) {
 	    case Mode_Input:  cns = m_cns; break;
@@ -471,8 +443,8 @@
     };
     assert(nargs <= 10);
 
-    static const std::string prefix("<<<out");
-    static const std::string suffix(">>>");
+    static const std::string prefix("<<out");
+    static const std::string suffix(">>");
     std::string argnum;
     std::string needle;
     char buf[10];
@@ -493,8 +465,8 @@
     };
     assert(nargs <= 10);
 
-    static const std::string prefix("<<<in");
-    static const std::string suffix(">>>");
+    static const std::string prefix("<<in");
+    static const std::string suffix(">>");
     std::string argnum;
     std::string needle;
     char buf[10];