ppc: sub statt subf
authorBernhard Urban <lewurm@gmail.com>
Tue, 8 Jun 2010 11:00:00 +0000 (13:00 +0200)
committerBernhard Urban <lewurm@gmail.com>
Wed, 9 Jun 2010 18:35:48 +0000 (20:35 +0200)
gesamt_ppc/code.bfe

index d67847a02cfa69b7f125e519c7c34c3dbe01bbf5..7fdc466892ba4d6e0b1e3289c2043147960f64bc 100644 (file)
@@ -45,7 +45,7 @@ void gen_e_eno(struct treenode *bnode, char *instr)
 #else
        KIDREG2PARM(0);
        KIDREG2PARM(1);
 #else
        KIDREG2PARM(0);
        KIDREG2PARM(1);
-       printf("\t%s %s,%s,%s\n", instr, BN_REG, KID_REG(1), KID_REG(0));
+       printf("\t%s %s,%s,%s\n", instr, BN_REG, KID_REG(0), KID_REG(1));
 #endif
 }
 
 #endif
 }
 
@@ -56,8 +56,8 @@ void gen_id_eno(struct treenode *bnode)
        KIDKIDREG2PARM(1,1);
        KIDREG2PARM(0);
        move(KID_REG(0), BN_REG);
        KIDKIDREG2PARM(1,1);
        KIDREG2PARM(0);
        move(KID_REG(0), BN_REG);
-       printf("\tsubf %%%s, %%%s\n", KIDKID_REG(1,1), BN_REG);
-       printf("\tsubf %%%s, %%%s\n", KIDKID_REG(1,0), BN_REG);
+       printf("\tsub %%%s, %%%s\n", KIDKID_REG(1,1), BN_REG);
+       printf("\tsub %%%s, %%%s\n", KIDKID_REG(1,0), BN_REG);
 }
 
 void gen_e_field(struct treenode *bnode, char *instr)
 }
 
 void gen_e_field(struct treenode *bnode, char *instr)
@@ -89,7 +89,7 @@ void gen_e_imm(struct treenode *bnode, char *instr)
                        printf("\timulq $%d, %%%s, %%%s\n", KID_VAL(1), KID_REG(0), BN_REG);
                }
        } else {
                        printf("\timulq $%d, %%%s, %%%s\n", KID_VAL(1), KID_REG(0), BN_REG);
                }
        } else {
-               if(strcmp(instr, "subf") == 0 && KID_VAL(1) == 0) {
+               if(strcmp(instr, "sub") == 0 && KID_VAL(1) == 0) {
                        printf("\t#subtraktion mit 0 wegoptimiert\n");
                        move(KID_REG(0), BN_REG);
                } else {
                        printf("\t#subtraktion mit 0 wegoptimiert\n");
                        move(KID_REG(0), BN_REG);
                } else {
@@ -97,8 +97,7 @@ void gen_e_imm(struct treenode *bnode, char *instr)
                        move(KID_REG(0), BN_REG);
                        printf("\t%s $%d, %%%s\n", instr, KID_VAL(1), BN_REG);
 #else
                        move(KID_REG(0), BN_REG);
                        printf("\t%s $%d, %%%s\n", instr, KID_VAL(1), BN_REG);
 #else
-                       /* subf only */
-                       printf("\taddi %s,%s,%d\n", BN_REG, KID_REG(0), -1*KID_VAL(1));
+                       printf("\t%si %s,%s,%d\n", instr, BN_REG, KID_REG(0), KID_VAL(1));
 #endif
                }
        }
 #endif
                }
        }
@@ -331,9 +330,9 @@ expr: O_ARG(expr,expr) # 1 # prep_arg(bnode, 1);
 expr: O_ARG(O_ID,expr) # 1 # prep_arg(bnode, 0);
 expr: O_NOTHING # 0 #
 
 expr: O_ARG(O_ID,expr) # 1 # prep_arg(bnode, 0);
 expr: O_NOTHING # 0 #
 
-expr: O_SUB(expr,expr)          # 2 # gen_e_eno(bnode, "subf");
-expr: O_SUB(expr,O_FIELD(expr)) # 2 # gen_e_field(bnode, "subf");
-expr: O_SUB(expr,imm)           # 1 # gen_e_imm(bnode, "subf");
+expr: O_SUB(expr,expr)          # 2 # gen_e_eno(bnode, "sub");
+expr: O_SUB(expr,O_FIELD(expr)) # 2 # gen_e_field(bnode, "sub");
+expr: O_SUB(expr,imm)           # 1 # gen_e_imm(bnode, "sub");
 
 expr: O_SUB(expr,O_SUB(O_ID,expr)) # 2 # gen_subspecial(bnode, 0);
 expr: O_SUB(expr,O_SUB(imm,expr))  # 2 # gen_subspecial(bnode, 1);
 
 expr: O_SUB(expr,O_SUB(O_ID,expr)) # 2 # gen_subspecial(bnode, 0);
 expr: O_SUB(expr,O_SUB(imm,expr))  # 2 # gen_subspecial(bnode, 1);