X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fia32%2Fia32_finish.c;h=45f616b2c7e1c9f8525227da29363741bf8f45fa;hb=afa44cc5648401a50c08458622b50de4256498c2;hp=be3ac0836e4d8d9146080cc8753ad78ca8f4ca0f;hpb=45b3811a18c34d32a6b9327f14987db5b9ddfb95;p=libfirm diff --git a/ir/be/ia32/ia32_finish.c b/ir/be/ia32/ia32_finish.c index be3ac0836..45f616b2c 100644 --- a/ir/be/ia32/ia32_finish.c +++ b/ir/be/ia32/ia32_finish.c @@ -4,6 +4,10 @@ * $Id$ */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "irnode.h" #include "ircons.h" #include "irgmod.h" @@ -101,7 +105,7 @@ static void ia32_transform_lea_to_add(ir_node *irn, ia32_code_gen_t *cg) { int imm = 0; ir_node *res = NULL; ir_node *nomem, *noreg, *base, *index, *op1, *op2; - const char *offs; + const char *offs = NULL; ia32_transform_env_t tenv; const arch_register_t *out_reg, *base_reg, *index_reg; int imm_tp = ia32_ImmConst; @@ -371,6 +375,9 @@ static void fix_am_source(ir_node *irn, void *env) { /* check only ia32 nodes with source address mode */ if (! is_ia32_irn(irn) || get_ia32_op_type(irn) != ia32_AddrModeS) return; + /* no need to fix unary operations */ + if (get_irn_arity(irn) == 4) + return; base = get_irn_n(irn, 0); index = get_irn_n(irn, 1);