From: Michael Beck Date: Fri, 23 Nov 2007 17:08:56 +0000 (+0000) Subject: some preliminary long double support X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=02fa226ad2c2b28c43dcb7e1a138384a60700d10;p=libfirm some preliminary long double support [r16833] --- diff --git a/ir/be/ia32/ia32_x87.c b/ir/be/ia32/ia32_x87.c index 94740b4ef..7b7ce9d78 100644 --- a/ir/be/ia32/ia32_x87.c +++ b/ir/be/ia32/ia32_x87.c @@ -1213,8 +1213,9 @@ static int sim_store(x87_state *state, ir_node *n, ir_op *op, ir_op *op_p) { Solution: - stack not full: push value and fstp - stack full: fstp value and load again + Note that we cannot test on mode_E, because floats might be 96bit ... */ - if (mode == mode_E || mode == mode_Ls) { + if (get_mode_size_bits(mode) > 64 || mode == mode_Ls) { if (depth < N_x87_REGS) { /* ok, we have a free register: push + fstp */ x87_create_fpush(state, n, op2_idx, n_ia32_vfst_val);