From e4821415aa4bc75f88d8cbfd2fa33a3c106ce28c Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Tue, 27 Nov 2012 22:04:59 +0100 Subject: [PATCH] ia32: Allow symconsts in "i" asm constraints. --- ir/be/ia32/ia32_common_transform.c | 3 +-- ir/be/ia32/ia32_transform.c | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/ir/be/ia32/ia32_common_transform.c b/ir/be/ia32/ia32_common_transform.c index 0b2e4a8a2..0b4f7cfb7 100644 --- a/ir/be/ia32/ia32_common_transform.c +++ b/ir/be/ia32/ia32_common_transform.c @@ -47,7 +47,6 @@ ir_heights_t *ia32_heights = NULL; static int check_immediate_constraint(long val, char immediate_constraint_type) { switch (immediate_constraint_type) { - case 0: case 'i': return 1; case 'I': return 0 <= val && val <= 31; @@ -904,7 +903,7 @@ ir_node *ia32_try_create_Immediate(ir_node *node, char immediate_constraint_type return NULL; } if (symconst != NULL) { - if (immediate_constraint_type != 0) { + if (immediate_constraint_type != 'i') { /* we need full 32bits for symconsts */ return NULL; } diff --git a/ir/be/ia32/ia32_transform.c b/ir/be/ia32/ia32_transform.c index 2783197d2..6eb632238 100644 --- a/ir/be/ia32/ia32_transform.c +++ b/ir/be/ia32/ia32_transform.c @@ -828,7 +828,7 @@ static void match_arguments(ia32_address_mode_t *am, ir_node *block, * op2 input */ new_op2 = NULL; if (!(flags & match_try_am) && use_immediate) { - new_op2 = ia32_try_create_Immediate(op2, 0); + new_op2 = ia32_try_create_Immediate(op2, 'i'); } if (new_op2 == NULL && @@ -3933,7 +3933,7 @@ static ir_node *gen_Conv(ir_node *node) static ir_node *create_immediate_or_transform(ir_node *const node) { - ir_node *new_node = ia32_try_create_Immediate(node, 0); + ir_node *new_node = ia32_try_create_Immediate(node, 'i'); if (new_node == NULL) { new_node = be_transform_node(node); } -- 2.20.1