From: Christoph Mallon Date: Sat, 13 Feb 2010 18:08:52 +0000 (+0000) Subject: We must be able to output 16 byte aligned long doubles, too. X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=4a00c4a202c77e20fcb4ebb80f6f4152b46aff21;p=libfirm We must be able to output 16 byte aligned long doubles, too. [r27151] --- 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));