From 22b354ac921664032c93e5f0176fa668c95dfc60 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Fri, 5 Feb 2010 19:27:50 +0000 Subject: [PATCH] fix another PIC problem [r27061] --- ir/be/ia32/ia32_transform.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ir/be/ia32/ia32_transform.c b/ir/be/ia32/ia32_transform.c index 03061c1e2..f277e6ac9 100644 --- a/ir/be/ia32/ia32_transform.c +++ b/ir/be/ia32/ia32_transform.c @@ -3379,6 +3379,7 @@ static ir_node *gen_Mux(ir_node *node) ia32_address_mode_t am; ir_node *load; ir_mode *new_mode; + ir_node *base; unsigned scale; flags = get_flags_node(cond, &pnc); @@ -3422,8 +3423,14 @@ static ir_node *gen_Mux(ir_node *node) panic("Unsupported constant size"); } + if (env_cg->birg->main_env->options->pic) { + base = arch_code_generator_get_pic_base(env_cg); + } else { + base = noreg_GP; + } + am.ls_mode = new_mode; - am.addr.base = noreg_GP; + am.addr.base = base; am.addr.index = new_node; am.addr.mem = nomem; am.addr.offset = 0; -- 2.20.1