From: Matthias Braun Date: Mon, 21 Sep 2009 21:50:01 +0000 (+0000) Subject: fix emitting jne, now queens works :) X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=f6c13a08e5eb20b1230d594ed8ffda6f80b2fef4;p=libfirm fix emitting jne, now queens works :) [r26584] --- diff --git a/ir/be/ia32/ia32_emitter.c b/ir/be/ia32/ia32_emitter.c index af1c9bd3e..008c20e0a 100644 --- a/ir/be/ia32/ia32_emitter.c +++ b/ir/be/ia32/ia32_emitter.c @@ -2251,19 +2251,21 @@ static void build_reg_map(void) reg_gp_map[REG_ESI] = 0x6; reg_gp_map[REG_EDI] = 0x7; - pnc_map_signed[pn_Cmp_Eq] = 0x04; - pnc_map_signed[pn_Cmp_Lt] = 0x0C; - pnc_map_signed[pn_Cmp_Le] = 0x0E; - pnc_map_signed[pn_Cmp_Gt] = 0x0F; - pnc_map_signed[pn_Cmp_Ge] = 0x0D; - pnc_map_signed[pn_Cmp_Ne] = 0x05; - - pnc_map_unsigned[pn_Cmp_Eq] = 0x04; - pnc_map_unsigned[pn_Cmp_Lt] = 0x02; - pnc_map_unsigned[pn_Cmp_Le] = 0x06; - pnc_map_unsigned[pn_Cmp_Gt] = 0x07; - pnc_map_unsigned[pn_Cmp_Ge] = 0x03; - pnc_map_unsigned[pn_Cmp_Ne] = 0x05; + pnc_map_signed[pn_Cmp_False] = 0xFF; + pnc_map_signed[pn_Cmp_Eq] = 0x04; + pnc_map_signed[pn_Cmp_Lt] = 0x0C; + pnc_map_signed[pn_Cmp_Le] = 0x0E; + pnc_map_signed[pn_Cmp_Gt] = 0x0F; + pnc_map_signed[pn_Cmp_Ge] = 0x0D; + pnc_map_signed[pn_Cmp_Lg] = 0x05; + + pnc_map_unsigned[pn_Cmp_False] = 0xFF; + pnc_map_unsigned[pn_Cmp_Eq] = 0x04; + pnc_map_unsigned[pn_Cmp_Lt] = 0x02; + pnc_map_unsigned[pn_Cmp_Le] = 0x06; + pnc_map_unsigned[pn_Cmp_Gt] = 0x07; + pnc_map_unsigned[pn_Cmp_Ge] = 0x03; + pnc_map_unsigned[pn_Cmp_Lg] = 0x05; } #define GET_MODE(code) ((code) & 0xC0) @@ -2944,6 +2946,7 @@ static void bemit_jcc(int pnc, const ir_node *dest_block) cc = pnc_map_signed[pnc & 0x07]; } } + assert(cc != 0xFF); bemit8(0x0F); bemit8(0x80 + cc);