From 6bdcc60c754f23ad4cdaa61df43ef5acb1c5465b Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Tue, 20 Feb 2007 10:39:25 +0100 Subject: [PATCH] i386.md (expm1xf2): Reorder insn sequence for better code generation. * config/i386/i386.md (expm1xf2): Reorder insn sequence for better code generation. From-SVN: r122158 --- gcc/ChangeLog | 17 +++++++++++------ gcc/config/i386/i386.md | 12 ++++++++---- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 48f7de89846..d5778787755 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-02-20 Uros Bizjak + + * config/i386/i386.md (expm1xf2): Reorder insn sequence for + better code generation. + 2007-02-20 Ben Elliston * config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove extra ;. @@ -74,9 +79,9 @@ 2007-02-19 Richard Henderson - PR debug/29558 - * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P - in memory. + PR debug/29558 + * var-tracking.c (track_expr_p): Disallow AGGREGATE_TYPE_P + in memory. 2007-02-19 Andreas Krebbel @@ -826,7 +831,7 @@ * except.c (expand_builtin_eh_return_data_regno): Pass entire CALL_EXPR as parameter instead of arglist. Use new CALL_EXPR - accessors. + accessors. * coverage.c (create_coverage): Use build_call_expr. @@ -2333,8 +2338,8 @@ 2007-02-03 Douglas Gregor - * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't - warn about C++0x compatibility. + * c-opts.c (c_common_post_options): If C++0x mode is enabled, don't + warn about C++0x compatibility. 2007-02-04 Kazu Hirata diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md index ad7ae22d2d5..7dae8e1e0b7 100644 --- a/gcc/config/i386/i386.md +++ b/gcc/config/i386/i386.md @@ -17145,11 +17145,12 @@ (match_dup 2))) (set (match_dup 4) (unspec:XF [(match_dup 3)] UNSPEC_FRNDINT)) (set (match_dup 5) (minus:XF (match_dup 3) (match_dup 4))) + (set (match_dup 9) (float_extend:XF (match_dup 13))) (set (match_dup 6) (unspec:XF [(match_dup 5)] UNSPEC_F2XM1)) (parallel [(set (match_dup 7) (unspec:XF [(match_dup 6) (match_dup 4)] UNSPEC_FSCALE_FRACT)) - (set (match_dup 8) + (set (match_dup 8) (unspec:XF [(match_dup 6) (match_dup 4)] UNSPEC_FSCALE_EXP))]) (parallel [(set (match_dup 10) @@ -17158,7 +17159,8 @@ (set (match_dup 11) (unspec:XF [(match_dup 9) (match_dup 8)] UNSPEC_FSCALE_EXP))]) - (set (match_dup 12) (minus:XF (match_dup 10) (match_dup 9))) + (set (match_dup 12) (minus:XF (match_dup 10) + (float_extend:XF (match_dup 13)))) (set (match_operand:XF 0 "register_operand" "") (plus:XF (match_dup 12) (match_dup 7)))] "TARGET_USE_FANCY_MATH_387 @@ -17168,9 +17170,11 @@ for (i = 2; i < 13; i++) operands[i] = gen_reg_rtx (XFmode); - + + operands[13] + = validize_mem (force_const_mem (SFmode, CONST1_RTX (SFmode))); /* fld1 */ + emit_move_insn (operands[2], standard_80387_constant_rtx (5)); /* fldl2e */ - emit_move_insn (operands[9], CONST1_RTX (XFmode)); /* fld1 */ }) (define_expand "expm12"