mips16.S: Change fixsfsi and fixdfsi to fix_trunc.
2004-03-02 Eric Christopher <echristo@redhat.com> * config/mips/mips16.S: Change fixsfsi and fixdfsi to fix_trunc. * config/mips/mips.c (mips_init_libfuncs): Change accordingly. * config/mips/t-elf (LIB1ASMFUNCS): Ditto. * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto. * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto. From-SVN: r78811
This commit is contained in:
parent
465e1d4c41
commit
91e0123195
6 changed files with 53 additions and 45 deletions
|
@ -1,3 +1,12 @@
|
|||
2004-03-02 Eric Christopher <echristo@redhat.com>
|
||||
|
||||
* config/mips/mips16.S: Change fixsfsi and fixdfsi to
|
||||
fix_trunc.
|
||||
* config/mips/mips.c (mips_init_libfuncs): Change accordingly.
|
||||
* config/mips/t-elf (LIB1ASMFUNCS): Ditto.
|
||||
* config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
|
||||
* config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
|
||||
|
||||
2004-03-02 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR middle-end/11767
|
||||
|
@ -216,13 +225,13 @@
|
|||
* fold-const.c (fold): An equality comparison of a non-weak object
|
||||
against zero has a known result. Similarly an equality comparison
|
||||
of the address of two non-weak, unaliased symbols has a known result.
|
||||
|
||||
|
||||
* ggc-page.c (struct page_entry): New field PREV.
|
||||
(ggc_alloc): Update PREV field appropriately.
|
||||
(sweep_pages): Likewise.
|
||||
(ggc_free): Likewise. Use PREV field rather than loop to
|
||||
improve ggc_free performance.
|
||||
|
||||
|
||||
2004-03-01 Richard Sandiford <rsandifo@redhat.com>
|
||||
|
||||
* config/mips/mips.c (mips_output_division): Use the division
|
||||
|
@ -313,7 +322,7 @@
|
|||
* config/sh/sh.c: Convert to ISO-C.
|
||||
|
||||
2004-02-28 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
|
||||
* c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
|
||||
my previous patch.
|
||||
|
||||
|
@ -339,7 +348,7 @@
|
|||
|
||||
2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
|
||||
|
||||
* config/mips/mips.c (override_options): Remove an obsolete
|
||||
* config/mips/mips.c (override_options): Remove an obsolete
|
||||
duplicate definition of the "e" constraint.
|
||||
* config/mips/mips.h: Update a comment accordingly.
|
||||
|
||||
|
@ -455,27 +464,27 @@
|
|||
* Makefile.in (OBJS-common): Add it.
|
||||
* diagnostic.c (rtl_dump_and_exit): Move decl ...
|
||||
* flags.h (rtl_dump_and_exit): ... here.
|
||||
* output.h (size_directive_output, last_assemble_variable_decl):
|
||||
* output.h (size_directive_output, last_assemble_variable_decl):
|
||||
Move from toplev.c.
|
||||
* rtl.h (reg_alloc): Move from toplev.c.
|
||||
* toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
|
||||
struct dump_file_info, enum dump_file_index, dump_file_tbl,
|
||||
open_dump_file, close_dump_file, rest_of_decl_compilation,
|
||||
rest_of_type_compilation, rest_of_handle_final,
|
||||
rest_of_handle_delay_slots, rest_of_handle_stack_regs,
|
||||
rest_of_handle_delay_slots, rest_of_handle_stack_regs,
|
||||
rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
|
||||
rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
|
||||
rest_of_handle_regrename, rest_of_handle_reorder_blocks,
|
||||
rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
|
||||
rest_of_handle_tracer, rest_of_handle_if_conversion,
|
||||
rest_of_handle_tracer, rest_of_handle_if_conversion,
|
||||
rest_of_handle_if_after_combine, rest_of_handle_web,
|
||||
rest_of_handle_branch_prob,
|
||||
rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
|
||||
rest_of_handle_addressof, rest_of_handle_sibling_calls,
|
||||
rest_of_handle_addressof, rest_of_handle_sibling_calls,
|
||||
rest_of_handle_jump_bypass, rest_of_handle_inlining,
|
||||
rest_of_handle_null_pointer, rest_of_handle_combine,
|
||||
rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
|
||||
rest_of_handle_gcse, rest_of_handle_loop_optimize,
|
||||
rest_of_handle_gcse, rest_of_handle_loop_optimize,
|
||||
rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
|
||||
(decode_d_option): Use enable_rtl_dump_file.
|
||||
(compile_file, finalize, do_compile): Move profile+combine+graph
|
||||
|
@ -506,7 +515,7 @@
|
|||
* config/rs6000/spe.md: Delete spe_efsctuiz.
|
||||
Add spe_fixuns_truncsfsi2.
|
||||
Add spe_fix_truncsfsi2.
|
||||
|
||||
|
||||
2004-02-26 Eric Christopher <echristo@redhat.com>
|
||||
|
||||
* c-lex.c (c_lex_string_translate): New variable.
|
||||
|
|
|
@ -5945,7 +5945,7 @@ mips_file_end (void)
|
|||
when it is unsafe. */
|
||||
if (TARGET_IRIX && mips_abi == ABI_32 && p->size == -1)
|
||||
{
|
||||
fputs ("\t.globl ", asm_out_file);
|
||||
fputs ("\t.globl ", asm_out_file);
|
||||
assemble_name (asm_out_file, p->name);
|
||||
fputs (" .text\n", asm_out_file);
|
||||
}
|
||||
|
@ -7012,7 +7012,7 @@ mips_expand_epilogue (int sibcall_p)
|
|||
emit_insn (gen_add3_insn (stack_pointer_rtx,
|
||||
stack_pointer_rtx,
|
||||
GEN_INT (step2)));
|
||||
|
||||
|
||||
/* Add in the __builtin_eh_return stack adjustment. We need to
|
||||
use a temporary in mips16 code. */
|
||||
if (current_function_calls_eh_return)
|
||||
|
@ -8767,7 +8767,7 @@ mips_init_libfuncs (void)
|
|||
set_optab_libfunc (lt_optab, SFmode, "__mips16_ltsf2");
|
||||
set_optab_libfunc (le_optab, SFmode, "__mips16_lesf2");
|
||||
|
||||
set_conv_libfunc (sfix_optab, SImode, SFmode, "__mips16_fixsfsi");
|
||||
set_conv_libfunc (sfix_optab, SImode, SFmode, "__mips16_fix_truncsfsi");
|
||||
set_conv_libfunc (sfloat_optab, SFmode, SImode, "__mips16_floatsisf");
|
||||
|
||||
if (TARGET_DOUBLE_FLOAT)
|
||||
|
@ -8787,7 +8787,7 @@ mips_init_libfuncs (void)
|
|||
set_conv_libfunc (sext_optab, DFmode, SFmode, "__mips16_extendsfdf2");
|
||||
set_conv_libfunc (trunc_optab, SFmode, DFmode, "__mips16_truncdfsf2");
|
||||
|
||||
set_conv_libfunc (sfix_optab, SImode, DFmode, "__mips16_fixdfsi");
|
||||
set_conv_libfunc (sfix_optab, SImode, DFmode, "__mips16_fix_truncdfsi");
|
||||
set_conv_libfunc (sfloat_optab, DFmode, SImode, "__mips16_floatsidf");
|
||||
}
|
||||
}
|
||||
|
@ -9419,7 +9419,7 @@ mips_emit_prefetch (rtx *operands)
|
|||
int indexed = GET_CODE (operands[3]) == REG;
|
||||
int code;
|
||||
char buffer[30];
|
||||
|
||||
|
||||
if (locality <= 0)
|
||||
code = (write ? 5 : 4); /* store_streamed / load_streamed. */
|
||||
else if (locality <= 2)
|
||||
|
|
|
@ -92,14 +92,14 @@ STARTFN (NAME); \
|
|||
nop; \
|
||||
.set reorder; \
|
||||
ENDFN (NAME)
|
||||
|
||||
|
||||
#ifdef L_m16negsf2
|
||||
SFOP2(__mips16_negsf2, neg.s)
|
||||
#endif
|
||||
#ifdef L_m16abssf2
|
||||
SFOP2(__mips16_abssf2, abs.s)
|
||||
#endif
|
||||
|
||||
|
||||
/* Single precision comparisons. */
|
||||
|
||||
/* This macro defines a function which loads two single precision
|
||||
|
@ -167,21 +167,21 @@ STARTFN (__mips16_floatsisf)
|
|||
ENDFN (__mips16_floatsisf)
|
||||
#endif
|
||||
|
||||
#ifdef L_m16fixsfsi
|
||||
STARTFN (__mips16_fixsfsi)
|
||||
#ifdef L_m16fix_truncsfsi
|
||||
STARTFN (__mips16_fix_truncsfsi)
|
||||
.set noreorder
|
||||
mtc1 $4,$f0
|
||||
nop
|
||||
trunc.w.s $f0,$f0,$4
|
||||
mfc1 $2,$f0
|
||||
j $31
|
||||
nop
|
||||
nop
|
||||
.set reorder
|
||||
ENDFN (__mips16_fixsfsi)
|
||||
ENDFN (__mips16_fix_truncsfsi)
|
||||
#endif
|
||||
|
||||
#if !defined(__mips_single_float) && !defined(__SINGLE_FLOAT)
|
||||
|
||||
|
||||
/* The double precision operations. We need to use different code
|
||||
based on the preprocessor symbol __mips64, because the way in which
|
||||
double precision values will change. Without __mips64, the value
|
||||
|
@ -194,9 +194,9 @@ STARTFN (__mips16_fixsfsi)
|
|||
#define LDDBL1 dmtc1 $4,$f12
|
||||
#elif defined(__mipsfp64)
|
||||
#define LDDBL1 sw $4,0($29); sw $5,4($29); l.d $f12,0($29)
|
||||
#elif defined(__MIPSEB__)
|
||||
#elif defined(__MIPSEB__)
|
||||
#define LDDBL1 mtc1 $4,$f13; mtc1 $5,$f12
|
||||
#else
|
||||
#else
|
||||
#define LDDBL1 mtc1 $4,$f12; mtc1 $5,$f13
|
||||
#endif
|
||||
|
||||
|
@ -207,24 +207,24 @@ STARTFN (__mips16_fixsfsi)
|
|||
#define LDDBL2 dmtc1 $5,$f14
|
||||
#elif defined(__mipsfp64)
|
||||
#define LDDBL2 sw $6,8($29); sw $7,12($29); l.d $f14,8($29)
|
||||
#elif defined(__MIPSEB__)
|
||||
#elif defined(__MIPSEB__)
|
||||
#define LDDBL2 mtc1 $6,$f15; mtc1 $7,$f14
|
||||
#else
|
||||
#else
|
||||
#define LDDBL2 mtc1 $6,$f14; mtc1 $7,$f15
|
||||
#endif
|
||||
|
||||
|
||||
/* Move the double precision return value to the right place. */
|
||||
|
||||
#if defined(__mips64)
|
||||
#define RETDBL dmfc1 $2,$f0
|
||||
#elif defined(__mipsfp64)
|
||||
#define RETDBL s.d $f0,0($29); lw $2,0($29); lw $3,4($29)
|
||||
#elif defined(__MIPSEB__)
|
||||
#elif defined(__MIPSEB__)
|
||||
#define RETDBL mfc1 $2,$f1; mfc1 $3,$f0
|
||||
#else
|
||||
#else
|
||||
#define RETDBL mfc1 $2,$f0; mfc1 $3,$f1
|
||||
#endif
|
||||
|
||||
|
||||
/* Double precision math. */
|
||||
|
||||
/* This macro defines a function which loads two double precision
|
||||
|
@ -268,7 +268,7 @@ STARTFN (NAME); \
|
|||
nop; \
|
||||
.set reorder; \
|
||||
ENDFN (NAME)
|
||||
|
||||
|
||||
#ifdef L_m16negdf2
|
||||
DFOP2(__mips16_negdf2, neg.d)
|
||||
#endif
|
||||
|
@ -276,7 +276,7 @@ DFOP2(__mips16_negdf2, neg.d)
|
|||
DFOP2(__mips16_absdf2, abs.d)
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
/* Conversions between single and double precision. */
|
||||
|
||||
#ifdef L_m16extsfdf2
|
||||
|
@ -372,8 +372,8 @@ STARTFN (__mips16_floatsidf)
|
|||
ENDFN (__mips16_floatsidf)
|
||||
#endif
|
||||
|
||||
#ifdef L_m16fixdfsi
|
||||
STARTFN (__mips16_fixdfsi)
|
||||
#ifdef L_m16fix_truncdfsi
|
||||
STARTFN (__mips16_fix_truncdfsi)
|
||||
.set noreorder
|
||||
LDDBL1
|
||||
nop
|
||||
|
@ -382,7 +382,7 @@ STARTFN (__mips16_fixdfsi)
|
|||
j $31
|
||||
nop
|
||||
.set reorder
|
||||
ENDFN (__mips16_fixdfsi)
|
||||
ENDFN (__mips16_fix_truncdfsi)
|
||||
#endif
|
||||
#endif /* !__mips_single_float */
|
||||
|
||||
|
@ -410,12 +410,12 @@ STARTFN (__mips16_ret_df)
|
|||
#elif defined(__mipsfp64)
|
||||
sw $2,0($29)
|
||||
sw $3,4($29)
|
||||
l.d $f0,0($29)
|
||||
#elif defined(__MIPSEB__)
|
||||
l.d $f0,0($29)
|
||||
#elif defined(__MIPSEB__)
|
||||
mtc1 $2,$f1
|
||||
j $31
|
||||
mtc1 $3,$f0
|
||||
#else
|
||||
#else
|
||||
mtc1 $2,$f0
|
||||
j $31
|
||||
mtc1 $3,$f1
|
||||
|
@ -737,4 +737,3 @@ STARTFN (__mips16_call_stub_df_10)
|
|||
ENDFN (__mips16_call_stub_df_10)
|
||||
#endif
|
||||
#endif /* !__mips_single_float */
|
||||
|
||||
|
|
|
@ -13,11 +13,11 @@ $(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
|
|||
LIB1ASMSRC = mips/mips16.S
|
||||
LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \
|
||||
_m16eqsf2 _m16nesf2 _m16gtsf2 _m16gesf2 _m16lesf2 _m16ltsf2 \
|
||||
_m16fltsisf _m16fixsfsi \
|
||||
_m16fltsisf _m16fix_truncsfsi \
|
||||
_m16adddf3 _m16subdf3 _m16muldf3 _m16divdf3 \
|
||||
_m16extsfdf2 _m16trdfsf2 \
|
||||
_m16eqdf2 _m16nedf2 _m16gtdf2 _m16gedf2 _m16ledf2 _m16ltdf2 \
|
||||
_m16fltsidf _m16fixdfsi \
|
||||
_m16fltsidf _m16fix_truncdfsi \
|
||||
_m16retsf _m16retdf \
|
||||
_m16stub1 _m16stub2 _m16stub5 _m16stub6 _m16stub9 _m16stub10 \
|
||||
_m16stubsf0 _m16stubsf1 _m16stubsf2 _m16stubsf5 _m16stubsf6 \
|
||||
|
|
|
@ -13,11 +13,11 @@ $(T)crtn.o: $(srcdir)/config/mips/crtn.asm $(GCC_PASSES)
|
|||
LIB1ASMSRC = mips/mips16.S
|
||||
LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \
|
||||
_m16eqsf2 _m16nesf2 _m16gtsf2 _m16gesf2 _m16lesf2 _m16ltsf2 \
|
||||
_m16fltsisf _m16fixsfsi \
|
||||
_m16fltsisf _m16fix_truncsfsi \
|
||||
_m16adddf3 _m16subdf3 _m16muldf3 _m16divdf3 \
|
||||
_m16extsfdf2 _m16trdfsf2 \
|
||||
_m16eqdf2 _m16nedf2 _m16gtdf2 _m16gedf2 _m16ledf2 _m16ltdf2 \
|
||||
_m16fltsidf _m16fixdfsi \
|
||||
_m16fltsidf _m16fix_truncdfsi \
|
||||
_m16retsf _m16retdf \
|
||||
_m16stub1 _m16stub2 _m16stub5 _m16stub6 _m16stub9 _m16stub10 \
|
||||
_m16stubsf0 _m16stubsf1 _m16stubsf2 _m16stubsf5 _m16stubsf6 \
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
LIB1ASMSRC = mips/mips16.S
|
||||
LIB1ASMFUNCS = _m16addsf3 _m16subsf3 _m16mulsf3 _m16divsf3 \
|
||||
_m16eqsf2 _m16nesf2 _m16gtsf2 _m16gesf2 _m16lesf2 _m16ltsf2 \
|
||||
_m16fltsisf _m16fixsfsi \
|
||||
_m16fltsisf _m16fix_truncsfsi \
|
||||
_m16adddf3 _m16subdf3 _m16muldf3 _m16divdf3 \
|
||||
_m16extsfdf2 _m16trdfsf2 \
|
||||
_m16eqdf2 _m16nedf2 _m16gtdf2 _m16gedf2 _m16ledf2 _m16ltdf2 \
|
||||
_m16fltsidf _m16fixdfsi \
|
||||
_m16fltsidf _m16fix_truncdfsi \
|
||||
_m16retsf _m16retdf \
|
||||
_m16stub1 _m16stub2 _m16stub5 _m16stub6 _m16stub9 _m16stub10 \
|
||||
_m16stubsf0 _m16stubsf1 _m16stubsf2 _m16stubsf5 _m16stubsf6 \
|
||||
|
|
Loading…
Add table
Reference in a new issue