Commit 91e01231 by Eric Christopher

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
parent 465e1d4c
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 \
......
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 \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment