From: Bernhard Urban Date: Tue, 18 May 2010 13:25:49 +0000 (+0200) Subject: codea: bfe regeln ein wenig angepasst X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=uebersetzerbau-ss10.git;a=commitdiff_plain;h=54e11007271b762cb34aa73c12fe0b36571db5d8 codea: bfe regeln ein wenig angepasst --- diff --git a/codea/code.bfe b/codea/code.bfe index 4d024af..e88f2eb 100644 --- a/codea/code.bfe +++ b/codea/code.bfe @@ -105,11 +105,8 @@ void gen_imm_eno(struct treenode *bnode, char *instr) } 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); } } @@ -189,11 +186,9 @@ expr: O_ID # 0 # 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); @@ -211,7 +206,7 @@ expr: O_SUB(expr,O_MUL(expr,O_MEIGHT)) # 1 # gen_lea(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");