From 4a00c4a202c77e20fcb4ebb80f6f4152b46aff21 Mon Sep 17 00:00:00 2001 From: Christoph Mallon Date: Sat, 13 Feb 2010 18:08:52 +0000 Subject: [PATCH] We must be able to output 16 byte aligned long doubles, too. [r27151] --- ir/be/ia32/ia32_emitter.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/ir/be/ia32/ia32_emitter.c b/ir/be/ia32/ia32_emitter.c index 9e995b195..ba007bfcf 100644 --- a/ir/be/ia32/ia32_emitter.c +++ b/ir/be/ia32/ia32_emitter.c @@ -434,10 +434,13 @@ void ia32_emit_x87_mode_suffix(const ir_node *node) if (mode_is_float(mode)) { switch (get_mode_size_bits(mode)) { - case 32: be_emit_char('s'); return; - case 64: be_emit_char('l'); return; - case 80: - case 96: be_emit_char('t'); return; + case 32: be_emit_char('s'); return; + case 64: be_emit_char('l'); return; + /* long doubles have different sizes due to alignment on different + * platforms. */ + case 80: + case 96: + case 128: be_emit_char('t'); return; } } else { assert(mode_is_int(mode)); -- 2.20.1