From e9d7cd61ae290e20947fb3229904ffd4d891e4c0 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Mon, 17 May 2010 18:04:14 +0200 Subject: [PATCH] codea: uhhh, bug bei O_EQ imm vergleich --- codea/code.bfe | 3 ++- codea/tree.c | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/codea/code.bfe b/codea/code.bfe index a1eb1e1..0819bc9 100644 --- a/codea/code.bfe +++ b/codea/code.bfe @@ -165,12 +165,13 @@ imm: O_ADD(imm,imm) # 0 # BN_VAL = KID_VAL(0) + KID_VAL(1); imm: O_SUB(imm,imm) # 0 # BN_VAL = KID_VAL(0) - KID_VAL(1); imm: O_MUL(imm,imm) # 0 # BN_VAL = KID_VAL(0) * KID_VAL(1); imm: O_LESS(imm,imm) # 0 # BN_VAL = KID_VAL(0) < KID_VAL(1) ? 1 : 0; -imm: O_EQ(imm,imm) # 0 # BN_VAL = KID_VAL(0) = KID_VAL(1) ? 1 : 0; +imm: O_EQ(imm,imm) # 0 # BN_VAL = KID_VAL(0) == KID_VAL(1) ? 1 : 0; imm: O_NUM # 0 # imm: O_MONE # 0 # imm: O_MTWO # 0 # imm: O_MFOUR # 0 # imm: O_MEIGHT # 0 # +imm: O_NULL # 0 # %% diff --git a/codea/tree.c b/codea/tree.c index 098f975..3669383 100644 --- a/codea/tree.c +++ b/codea/tree.c @@ -70,14 +70,17 @@ struct treenode *new_number(long val, int exprcount) /* TODO: maximal groesse? */ #define BUFMAX 40 char *t = (char*) malloc(BUFMAX); - if(val == -2) { + + if (val == 0) { + new = _new_plain(O_NULL); + } else if(val == -1) { + new = _new_plain(O_MONE); + } else if(val == -2) { new = _new_plain(O_MTWO); } else if(val == -4) { new = _new_plain(O_MFOUR); } else if(val == -8) { new = _new_plain(O_MEIGHT); - } else if(val == -1) { - new = _new_plain(O_MONE); } else { new = _new_plain(O_NUM); } -- 2.25.1