X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_emitter.c;h=ca08ba6de430e02c48b5c30450c0d360c2cd070c;hb=3a17d433225f46418db86ab1edbfea1cc25b9d22;hp=ad6a9df2dc17db7e11bc63631be716775a16ddd6;hpb=d9b6f3a9505efb7dc1f692d2f7958a575532bdbf;p=libfirm diff --git a/ir/be/ia32/ia32_emitter.c b/ir/be/ia32/ia32_emitter.c index ad6a9df2d..ca08ba6de 100644 --- a/ir/be/ia32/ia32_emitter.c +++ b/ir/be/ia32/ia32_emitter.c @@ -86,8 +86,11 @@ const arch_register_t *get_in_reg(ia32_emit_env_t *env, const ir_node *irn, assert(reg && "no in register found"); - /* in case of a joker register: just return a valid register */ - if (arch_register_type_is(reg, joker)) { + if(reg == &ia32_gp_regs[REG_GP_NOREG]) + panic("trying to emit noreg"); + + /* in case of unknown register: just return a valid register */ + if (reg == &ia32_gp_regs[REG_GP_UKNWN]) { const arch_register_req_t *req; /* ask for the requirements */ @@ -176,12 +179,14 @@ char get_mode_suffix(const ir_mode *mode) { static int produces_result(const ir_node *node) { - return !(is_ia32_St(node) || - is_ia32_CondJmp(node) || - is_ia32_xCondJmp(node) || - is_ia32_CmpSet(node) || - is_ia32_xCmpSet(node) || - is_ia32_SwitchJmp(node)); + return + !is_ia32_CmpSet(node) && + !is_ia32_CondJmp(node) && + !is_ia32_St(node) && + !is_ia32_SwitchJmp(node) && + !is_ia32_TestJmp(node) && + !is_ia32_xCmpSet(node) && + !is_ia32_xCondJmp(node); } static