} else {
printf("\timulq $%d, %%%s, %%%s\n", KID_VAL(0), KID_REG(1), BN_REG);
}
- } else if(strcmp(instr, "addq") == 0) {
+ } else { /* addq */
printf("\taddq $%d, %%%s\n", KID_VAL(0), BN_REG);
- } else { /* subq */
- moveimm(KID_VAL(0), BN_REG);
- printf("\t%s %%%s, %%%s\n", instr, KID_REG(1), BN_REG);
}
}
expr: imm # 1 # moveimm(BN_VAL, BN_REG);
-expr: O_SUB(expr,expr) # 1 # gen_e_eno(bnode, "subq");
+expr: O_SUB(expr,expr) # 2 # gen_e_eno(bnode, "subq");
expr: O_SUB(expr,O_FIELD(expr)) # 2 # gen_e_field(bnode, "subq");
-expr: O_SUB(expr,imm) # 2 # gen_e_imm(bnode, "subq");
-expr: O_SUB(imm,expr) # 2 # gen_imm_eno(bnode, "subq");
-expr: O_SUB(imm,O_FIELD(expr)) # 2 # gen_imm_field(bnode);
+expr: O_SUB(expr,imm) # 1 # gen_e_imm(bnode, "subq");
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_ADD(expr,expr) # 1 # gen_e_eno(bnode, "addq");
expr: O_ADD(expr,imm) # 2 # gen_e_imm(bnode, "addq");
-expr: O_ADD(imm,expr) # 2 # gen_imm_eno(bnode, "addq");
+expr: O_ADD(imm,expr) # 1 # gen_imm_eno(bnode, "addq");
expr: O_ADD(expr,O_FIELD(expr)) # 2 # gen_e_field(bnode, "addq");