i386.md (extendsfdf2, [...]): Emit constants provided by 80387 instructions in the destination mode.
2006-01-26 Paolo Bonzini <bonzini@gnu.org> * config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit constants provided by 80387 instructions in the destination mode. From-SVN: r110264
This commit is contained in:
parent
9cee811690
commit
e046a30ab1
2 changed files with 45 additions and 12 deletions
|
@ -1,3 +1,8 @@
|
|||
2006-01-26 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* config/i386/i386.md (extendsfdf2, extendsfxf2, extenddfxf2): Emit
|
||||
constants provided by 80387 instructions in the destination mode.
|
||||
|
||||
2006-01-26 Richard Guenther <rguenther@suse.de>
|
||||
Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
|
@ -19,7 +24,7 @@
|
|||
(adjust_range_with_scev): Reject ranges from SCEV which are out
|
||||
of bounds for the type.
|
||||
|
||||
2005-01-26 Daniel Berlin <dberlin@dberlin.org>
|
||||
2006-01-26 Daniel Berlin <dberlin@dberlin.org>
|
||||
|
||||
* tree-ssa-alias.c (maybe_create_global_var): Change
|
||||
subvar walking to an assertion that we don't have subvar'd variables.
|
||||
|
@ -572,7 +577,7 @@
|
|||
mips-tdump.c (main), mips-tfile.c (main): Update copyright notice
|
||||
dates.
|
||||
|
||||
2005-01-21 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
2006-01-21 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
|
||||
* df-scan.c (problem_SCAN): Added NULL reset function.
|
||||
(df_scan_reset_blocks): Added code to call reset block function
|
||||
|
@ -658,11 +663,11 @@
|
|||
* c-common.c (empty_body_warning): Add (from c_finish_if_stmt).
|
||||
Now uses IS_EMPTY_STMT() instead of special NOP markers.
|
||||
|
||||
2005-01-20 Paul Brook <paul@codesourcery.com>
|
||||
2006-01-20 Paul Brook <paul@codesourcery.com>
|
||||
|
||||
* Makefile.in (lang_checks): Keep going if mkdir fails.
|
||||
|
||||
2005-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
|
||||
* df-scan.c (df_scan_free_bb_info): Added basic block parameter to
|
||||
be able to clean out basic block when not necessary.
|
||||
|
@ -689,7 +694,7 @@
|
|||
Fixed to properly delete information if df is unused before
|
||||
calling df_finish.
|
||||
|
||||
2005-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
2006-01-19 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
|
||||
PR rtl-optimization/25799
|
||||
* df-problems.c (df_ru_confluence_n, df_rd_confluence_n):
|
||||
|
@ -1878,7 +1883,7 @@
|
|||
* gcc.h (lang_specific_spec_functions): Remove.
|
||||
* gccspec.c (lang_specific_spec_functions): Remove.
|
||||
|
||||
2005-01-16 Paolo Bonzini <bonzini@gnu.org>
|
||||
2006-01-16 Paolo Bonzini <bonzini@gnu.org>
|
||||
|
||||
* combine.c (record_value_for_reg): Invalidate registers
|
||||
if INSN is null.
|
||||
|
@ -2132,7 +2137,7 @@
|
|||
|
||||
* rtlanal.c (find_reg_note): Assert insn is not null.
|
||||
|
||||
2005-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
|
||||
* df-scan.c (df_hard_reg_init): Move declaration of i outside
|
||||
ifdef.
|
||||
|
@ -2186,7 +2191,7 @@
|
|||
* tree-cfg.c (init_empty_tree_cfg, build_tree_cfg, create_bb):
|
||||
Likewise.
|
||||
|
||||
2005-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
2006-01-11 Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
|
||||
* Makefile.in: Removed rotted odf.c entry.
|
||||
|
||||
|
@ -2282,7 +2287,7 @@
|
|||
optimizations.
|
||||
* doc/tm.texi (Misc): Document TARGET_MIN_DIVISIONS_FOR_RECIP_MUL.
|
||||
|
||||
2005-01-11 Danny Berlin <dberlin@dberlin.org>
|
||||
2006-01-11 Danny Berlin <dberlin@dberlin.org>
|
||||
Kenneth Zadeck <zadeck@naturalbridge.com>
|
||||
|
||||
* df.h (DF_SCAN, DF_RU, DF_RD, DF_LR, DF_UR, DF_UREC, DF_CHAIN,
|
||||
|
|
|
@ -3521,7 +3521,17 @@
|
|||
/* ??? Needed for compress_float_constant since all fp constants
|
||||
are LEGITIMATE_CONSTANT_P. */
|
||||
if (GET_CODE (operands[1]) == CONST_DOUBLE)
|
||||
operands[1] = validize_mem (force_const_mem (SFmode, operands[1]));
|
||||
{
|
||||
if ((!TARGET_SSE2 || TARGET_MIX_SSE_I387)
|
||||
&& standard_80387_constant_p (operands[1]) > 0)
|
||||
{
|
||||
operands[1] = simplify_const_unary_operation
|
||||
(FLOAT_EXTEND, DFmode, operands[1], SFmode);
|
||||
emit_move_insn_1 (operands[0], operands[1]);
|
||||
DONE;
|
||||
}
|
||||
operands[1] = validize_mem (force_const_mem (SFmode, operands[1]));
|
||||
}
|
||||
if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
|
||||
operands[1] = force_reg (SFmode, operands[1]);
|
||||
})
|
||||
|
@ -3594,7 +3604,16 @@
|
|||
/* ??? Needed for compress_float_constant since all fp constants
|
||||
are LEGITIMATE_CONSTANT_P. */
|
||||
if (GET_CODE (operands[1]) == CONST_DOUBLE)
|
||||
operands[1] = validize_mem (force_const_mem (SFmode, operands[1]));
|
||||
{
|
||||
if (standard_80387_constant_p (operands[1]) > 0)
|
||||
{
|
||||
operands[1] = simplify_const_unary_operation
|
||||
(FLOAT_EXTEND, XFmode, operands[1], SFmode);
|
||||
emit_move_insn_1 (operands[0], operands[1]);
|
||||
DONE;
|
||||
}
|
||||
operands[1] = validize_mem (force_const_mem (SFmode, operands[1]));
|
||||
}
|
||||
if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
|
||||
operands[1] = force_reg (SFmode, operands[1]);
|
||||
})
|
||||
|
@ -3633,7 +3652,16 @@
|
|||
/* ??? Needed for compress_float_constant since all fp constants
|
||||
are LEGITIMATE_CONSTANT_P. */
|
||||
if (GET_CODE (operands[1]) == CONST_DOUBLE)
|
||||
operands[1] = validize_mem (force_const_mem (DFmode, operands[1]));
|
||||
{
|
||||
if (standard_80387_constant_p (operands[1]) > 0)
|
||||
{
|
||||
operands[1] = simplify_const_unary_operation
|
||||
(FLOAT_EXTEND, XFmode, operands[1], DFmode);
|
||||
emit_move_insn_1 (operands[0], operands[1]);
|
||||
DONE;
|
||||
}
|
||||
operands[1] = validize_mem (force_const_mem (DFmode, operands[1]));
|
||||
}
|
||||
if (GET_CODE (operands[0]) == MEM && GET_CODE (operands[1]) == MEM)
|
||||
operands[1] = force_reg (DFmode, operands[1]);
|
||||
})
|
||||
|
|
Loading…
Add table
Reference in a new issue