From 16b8134fbec5b8339887ff2b243247b73cf35405 Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Tue, 22 Sep 2009 17:04:52 +0000 Subject: [PATCH] Handle 16bit memory locations for xxxMem. [r26610] --- ir/be/ia32/ia32_emitter.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ir/be/ia32/ia32_emitter.c b/ir/be/ia32/ia32_emitter.c index 602fc5b90..b6b208210 100644 --- a/ir/be/ia32/ia32_emitter.c +++ b/ir/be/ia32/ia32_emitter.c @@ -2732,11 +2732,13 @@ BINOP(test, 0x85, 0xA9, 0xF7, 0) #define BINOPMEM(op, ext) \ static void bemit_##op(const ir_node *node) \ { \ + if (get_mode_size_bits(get_ia32_ls_mode(node)) == 16) \ + bemit8(0x66); \ ir_node *val = get_irn_n(node, n_ia32_unary_op); \ if (is_ia32_Immediate(val)) { \ const ia32_immediate_attr_t *attr = get_ia32_immediate_attr_const(val); \ int offset = attr->offset; \ - if (attr->symconst == 0 && get_signed_imm_size(offset) == 1) { \ + if (attr->symconst == NULL && get_signed_imm_size(offset) == 1) { \ bemit8(0x83); \ bemit_mod_am(ext, node); \ bemit8(offset); \ -- 2.20.1