arm: first working example
[uebersetzerbau-ss10.git] / gesamt_arm / code.bfe
index f97b517b3ef6ccd0997d7977a44437d328226340..331a3780fdb24191caaa66f7fbc14fec4f417415 100644 (file)
@@ -37,7 +37,7 @@
 
 void gen_e_eno(struct treenode *bnode, char *instr)
 {
-       printf("\t#gen_e_eno(%s)\n", instr);
+       printf("\tgen_e_eno(%s)\n", instr);
        KIDREG2PARM(0);
        KIDREG2PARM(1);
        printf("\t%s %s,%s,%s\n", instr, BN_REG, KID_REG(0), KID_REG(1));
@@ -232,7 +232,7 @@ void make_call(struct treenode *bnode)
        }
 
        printf("\tbl %s\n", bnode->name);
-       move("3", BN_REG);
+       move("r0", BN_REG);
 
        if(strcmp(BN_REG, "14")!=0) {
                printf("\t#tmp register poppen\n");
@@ -316,7 +316,7 @@ ifstat: O_IF(expr) # 2 # /* iburg beschummeln :/ */ printf("\tcmpwi %s,0\n", BN_
 ifstat: O_IF(O_BOOL(expr)) # 1 # /* dann braucht man kein test */
 
 
-ret: O_RET(retexpr) # 2 # printf("\t/*o_ret(expr)*/\n"); move(BN_REG, "3");
+ret: O_RET(retexpr) # 2 # printf("\t@ o_ret(expr)\n"); move(BN_REG, "r0");
 ret: O_EXPR(expr) # 0 #
 
 retexpr: O_ID # 1 # printf("\t/*retexpr*/\n"); if(bnode->param_index > -1) move(param_reg(bnode->param_index), BN_REG);