Age | Commit message (Collapse) | Author | Files | Lines |
|
* config/i386/i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW.
* gcc.dg/vect/vect-27a.c, gcc.dg/vect/vect-29a.c,
gcc.dg/vect/vect-48a.c, gcc.dg/vect/vect-56a.c,
gcc.dg/vect/vect-72a.c, gcc.dg/vect/vect-77a.c: Remove.
From-SVN: r92637
|
|
* config/i386/i386.md (mov<MMXMODEI>_internal_rex64): New.
(movv2sf_internal_rex64): New.
(mov<MMXMODEI>_internal): Use no register preferences at all.
(movv2sf_internal): Likewise.
From-SVN: r92634
|
|
examine_argument.
* config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result
of type_natural_mode to examine_argument.
From-SVN: r92633
|
|
PR target/17643
* pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when
generating code for the portable runtime.
From-SVN: r92629
|
|
PR target/19059
* config/avr/avr.c (avr_mcu_types): Move attiny{13,2313} from avr4
to avr2.
* config/avr/avr.h (LINK_SPEC): Ditto.
* config/avr/t-avr (MULTILIB_MATCHES): Ditto.
From-SVN: r92607
|
|
PR target/19137
* config/rs6000/rs6000.md (movti_power, movti_string): Relax
operand[1] predicate to input_operand, and add r<-n alternative.
Move TImode const_double_operand splitter to where it belongs.
From-SVN: r92603
|
|
PR target/19147
* config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete.
From-SVN: r92594
|
|
* config/i386/i386.md (*fix_trunc{d,s,h}i_1):
Rename to *fix_trunc{d,s,h}i_i387.
(fix_trunc{d,s}fdi2): Reorder tests.
From-SVN: r92586
|
|
PR target/19142
* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Allow
DFmode for 32-bit again.
From-SVN: r92583
|
|
2004-12-23 Eric Christopher <echristo@redhat.com>
* config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add
assert for machine=mips for !TARGET_IRIX.
* config/mips/linux.h: Remove machine=mips assert.
* config/mips/netbsd.h: Ditto.
* config/mips/openbsd.h: Ditto.
From-SVN: r92561
|
|
* config/i386/i386.c (override_options): Revert last change
wrt fancy 387 math.
From-SVN: r92547
|
|
* config/alpha/alpha.md (one_cmpl<mode>2, and<mode>3, andnot<mode>3,
ior<mode>3, iornot<mode>3, xor<mode>3, xornot<mode>3): New macroized
vector operate patterns.
From-SVN: r92545
|
|
* config/i386/i386.c (ix86_expand_vector_move): Tidy.
(ix86_expand_vector_move_misalign): New.
(ix86_misaligned_mem_ok): Remove.
(TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
* config/i386/i386-protos.h: Update.
* config/i386/i386.md (SSEMODEI): Rename from SSEINT16.
(MMXMODEI): Rename from MMXINT8.
(SSEMODE, MMXMODE, movmisalign<mode>): New.
From-SVN: r92543
|
|
* config/alpha/alpha.c (alpha_expand_mov): Split out ...
(alpha_expand_movmisalign): ... misaligned vector support.
(TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
* config/alpha/alpha-protos.h: Update.
* config/alpha/alpha.md (VEC): New macro.
(movv8qi, movv4hi, movv2si): Compress with VEC.
(movv8qi_fix, movv4hi_fix, movv2si_fix): Likewise.
(movv8qi_nofix, movv4hi_nofix, movv2si_nofix): Likewise.
(movmisalign<mode>): New.
From-SVN: r92538
|
|
* config/i386/emmintrin.h (_mm_loadh_pd): Don't cast pointer arg
to __v2si.
(_mm_storeh_pd, _mm_loadl_pd, _mm_storel_pd): Likewise.
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use double* or
const double* for __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
__builtin_ia32_storehpd, __builtin_ia32_storelpd.
(ix86_expand_builtin): Update to match.
(ix86_expand_vector_init): Use sse2_loadlpd.
* config/i386/i386.md (vec_setv2df): Use sse2_loadlpd, sse2_loadhpd.
(vec_extractv2df): Use sse2_storelpd, sse2_storehpd.
(sse2_storehpd, sse2_loadhpd, sse2_storelpd, sse2_loadlpd): New.
(sse2_movhpd): Remove.
From-SVN: r92536
|
|
PR target/18751
* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return
false for anything larger than 32 bits in 32-bit code.
From-SVN: r92535
|
|
* config/i386/i386.md (btsq, btrq, btcq): Fix modes.
(bt peepholes): Likewise.
From-SVN: r92534
|
|
* config/i386/predicates.md (sse_comparison_operator): Fix
typo in ieee test.
(arith_or_logical_operator): Downcase codes.
From-SVN: r92532
|
|
* config/i386/i386.c (override_options): Respect user disable of
fancy 387 math, sse, mmx.
(construct_container): Generate error if we need an sse regster
and sse has been disabled.
* config/i386/i386.h (TARGET_SWITCHES): Disabling sse also disables
later sse generations. Disabling mmx also disables 3dnow.
From-SVN: r92530
|
|
* config/i386/i386.md (truncdfsf2): Don't create stack temp when
using sse math only. Use truncdfsf2_with_temp.
(truncdfsf2_with_temp): New.
(truncdfsf_fast_i387): Rename from truncdfsf2_noop. Add memory
output alternative.
(truncdfsf_mixed): Rename from truncdfsf2_1_sse. Compress duplicate
alternatives.
(truncdfsf_fast_sse): Rename from truncdfsf2_2. Remove f alternative.
(truncdfsf2_3, truncdfsf2_sse_only): Remove.
(truncdfsf_i387): Rename from truncdfsf2_1. Compress duplicates.
(truncdfsf_fast_mixed): New.
(truncdfsf splitters): Remove all except the 387 load/store split.
(truncxfsf2_1, truncxfdf2_1): Unify enable constraint with
respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH and
TARGET_MIX_SSE_I387.
(*truncxf{s,d}f2_1): Rename to *truncxf{s,d}f2_mixed.
(truncxf{s,d}f2_noop) Rename to truncxf{d,s}f2_i387_noop.
(*truncxf{s,d}f2_i387): New patterns.
(*truncxf{s,d}f2_2): Rename to *truncxf{s,d}f2_i387_1.
(truncxf{s,d}f2, fmod{s,d}f3, drem{s,d}f3, log1p{s,d}f2,
rint{s,d}f2, floor{s,d}f2, ceil{s,d}f2, btrunc{s,d}f2,
nearbyint{s,d}f2): Use renamed patterns.
Co-Authored-By: Uros Bizjak <uros@kss-loka.si>
From-SVN: r92498
|
|
gcc/
2004-12-22 Jan Beulich <jbeulich@novell.com>
* config.gcc: Add dbxelf.h to NetWare's tm_file.
* config/i386/netware-crt0.c: Prototype __init_environment and
__deinit_environment prior to their definition.
(__init_environment): Correct invokation of constructor function.
* config/i386/netware.h (TARGET_OS_CPP_BUILTINS): Use
builtin_define_std rather than builtin_define on IAPX386.
* config/i386/nwld.h: Disable stabs debugging info with the linker
this file supports.
* config/i386/t-nwld (SHLIB_LINK): Do not use a temporary file for
the output. Add -posix to the options as that is the more compatible
mode.
* gthr-nks.h: Formatting.
(__gthread_mutex_init_function): Kill the dubious use of
NX_MUTEX_RECURSIVE as it is now clear that the traditional mutexes
were not meant to be recursive.
(__gthread_recursive_mutex_t, __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
__gthread_recursive_mutex_init_function,
__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
__gthread_recursive_mutex_unlock): New.
gcc/testsuite/
2004-12-22 Jan Beulich <jbeulich@novell.com>
* gcc.dg/20040813-1.c: Skip for *-*-netware*.
From-SVN: r92488
|
|
* config/mips/t-linux64: Remove code that messed with $(SPECS).
(MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Move
n32 to the front.
(MULTILIB_EXTRA_OPTS, CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
Removed.
* config/mips/linux64.h (DRIVER_SELF_SPECS): Don't handle
-mabi-fake-default.
(SUBTARGET_TARGET_SWITCHES): Likewise.
From-SVN: r92487
|
|
2004-12-21 David O'Brien <obrien@FreeBSD.org>
* config/freebsd-spec.h: Use KSE pthread lib for -pthread.
From-SVN: r92462
|
|
* config/i386/i386.c (x86_sse_split_regs): Rename from
x86_sse_partial_regs.
* config/i386/i386.h (x86_sse_split_regs): Likewise.
(TARGET_SSE_SPLIT_REGS): Rename from TARGET_SSE_PARTIAL_REGS.
* config/i386/i386.md (*): Update to match. Remove two
floatsisf splitters that use it.
From-SVN: r92458
|
|
* config/i386/i386.c (x86_sse_partial_regs_for_cvtsd2ss): Remove.
* config/i386/i386.h (TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): Remove.
* config/i386/i386.md (truncdfsf2_1_sse): Don't test it.
(truncdfsf2_2, truncdfsf2_sse_only): Likewise.
(truncdfsf2_1_sse_nooverlap, truncdfsf2_2_nooverlap): Remove.
(truncdfsf2_sse_only_nooverlap): Remove.
From-SVN: r92457
|
|
From-SVN: r92456
|
|
PR middle-end/18683
* config/rs6000/rs6000.c (current_file_function_operand): Only check
current_function_decl's DECL_RTL if it has already been set.
From-SVN: r92453
|
|
* config/i386/i386.md (sse2_movsd): Remove ix86_binary_operator_ok
check.
From-SVN: r92416
|
|
building V2DI_type_node.
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
long_long_integer_type_node in building V2DI_type_node.
From-SVN: r92413
|
|
* config/i386/emmintrin.h: Use __vector_size__ instead of vector_size.
* config/i386/mmintrin.h, config/i386/xmmintrin.h: Likewise.
From-SVN: r92412
|
|
* defaults.h (ASM_OUTPUT_INTERNAL_LABEL): New macro.
* output.h (assemble_name_raw): Declare it.
* system.h (ASM_OUTPUT_INTERNAL_LABEL): Do not poison it.
* varasm.c (assemble_name_raw): New function.
(assemble_name): Use it.
(default_internal_label): Likewise.
* config/darwin.c (darwin_asm_output_dwarf_delta): Likewise.
* doc/tm.texi (ASM_OUTPUT_INTERNAL_LABEL): Document.
From-SVN: r92401
|
|
CONST_DOUBLE on 64 bits targets.
* config/i386/i386.c (ix86_split_to_parts): Use an array with
four elements for decoding a CONST_DOUBLE on 64 bits targets.
From-SVN: r92387
|
|
already present in TARGET_CPU_CPP_BUILTINS.
* config/m68k/m68kemb.h (TARGET_OS_CPP_BUILTINS): Remove redundant
definition of mc68000, already present in TARGET_CPU_CPP_BUILTINS.
From-SVN: r92384
|
|
* config/i386/i386.md (SSEINT16): New.
(movv16qi, movv8hi, movv4si, movv2di): Compress via macros.
(movv16qi_internal, movv8hi_internal, movv4si_internal,
movv2di_internal): Compress via macros. Add SSE zero alternative.
Fix pure SSE alternatives to use 'x' instead of 'Y'.
(MMXINT8): New.
(movv8qi, movv4hi, movv2si, movv8qi_internal, movv4hi_internal,
movv2si_internal): Compress via macros.
(SSEPUSH, MMXPUSH): New.
(pushv18qi, pushv8hi, pushv4si, pushv2di, pushti, pushv4sf, pushv2df,
pushv8qi, pushv4hi, pushv2si, pushv2sf): Compress via macros.
From-SVN: r92374
|
|
* arm/ieee754-sf.S (floatdisf): Fix label definition in FPA
compatibility code.
From-SVN: r92356
|
|
* config/i386/i386.c (x86_64_reg_class_name): Re-indent.
(classify_argument, examine_argument, construct_container,
merge_classes): Remove prototypes.
(type_natural_mode): Split out from ...
(function_arg): ... here.
(gen_reg_or_parallel): Remove alt_mode argument. Update callers.
Use orig_mode unless it's BLKmode.
(construct_container): Add orig_mode argument. Update callers.
Use gen_reg_or_parallel for SSE registers.
(ix86_function_value): Use type_natural_mode.
(ix86_gimplify_va_arg): Likewise.
(ix86_hard_regno_mode_ok): Always accept all SSE, MMX, 3DNOW modes in
SSE registers; always accept all MMX, 3DNOW modes in MMX registers.
* config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include
VALID_MMX_REG_MODE.
* config/i386/i386.md (attribute mode): Add V1DF.
(movsi_1): Use 'x' instead of 'Y' constraints.
(movsi_1_nointernunit, movdi_2, movdi_1_rex64): Likewise.
(movdi_1_rex64_nointerunit): Likewise.
(movdf_nointeger, movdf_integer): Likewise. Handle SSE1.
(movsf_1, movsf_1_nointerunit): Line up constraint alternatives.
(swapsf): Use fp_register_operand, don't disable for TARGET_SSE.
(swapdf): Likewise.
(swapxf): Enable only for TARGET_80387.
(movv2sf, movv2sf_internal, pushv2sf): Enable for MMX.
(movtf): Remove double-check for TARGET_64BIT.
(movv2df_internal): Enable for SSE1.
(movv8hi_internal, movv16qi_internal): Likewise.
(movv2df, movv8hi, movv16qi): Likewise.
(pushv2di, pushv8hi, pushv16qi, pushv4si): Likewise.
(pushdi2_rex64, movv4sf_internal, movv4si_internal, movv2di_internal,
movv8qi_internal, movv4hi_internal, movv2sf_internal,
movv2df_internal, movv8hi_internal, movv16qi_internal,
movti_internal): Add leading '*' to name.
From-SVN: r92336
|
|
2004-12-17 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_gimplify_va_arg): Set alias set to
s390_sr_alias_set.
From-SVN: r92313
|
|
2004-12-17 Jan Beulich <jbeulich@novell.com>
PR target/17603
* config/i386/i386.c (enum x86_64_reg_class): Define
X86_64_COMPLEX_X87_CLASS.
(x86_64_reg_class_names): Add name for X86_64_COMPLEX_X87_CLASS.
(merge_classes): Handle X86_64_COMPLEX_X87_CLASS.
(classify_argument): XCmode is X86_64_COMPLEX_X87_CLASS.
(examine_argument): X86_64_COMPLEX_X87_CLASS requires two
registers when dealing with a return value.
(construct_container): Handle X86_64_COMPLEX_X87_CLASS.
Eliminate impossible case of two X87/X87UP pairs (this now is
being expressed by a single COMPLEX_X87).
(x86_libcall_value): XCmode gets returned in st0/st1.
From-SVN: r92312
|
|
*extendsfdf2_1_sse_only): Unify enable constraint with
respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH
and TARGET_MIX_SSE_I387.
(*extendsfdf2_i387): New insn pattern.
(*extendsfdf2_1): Rename to *extendsfdf2_mixed. Fix
register constraint for operand 0.
(*extendsfdf2_1_sse_only): Rename to *extendsfdf2_sse.
(*extend{s,d}fxf2_1): Rename to *extend{s,d}fxf2_i387.
From-SVN: r92308
|
|
2004-12-16 Andrew Pinski <pinskia@physics.uc.edu>
PR target/19041
* config/darwin.c (machopic_symbol_defined_p): Return false
if the binds local and is a common symbol.
2004-12-16 Andrew Pinski <pinskia@physics.uc.edu>
PR target/19041
* gcc.dg/visibility-c.c: New test.
From-SVN: r92292
|
|
* config/i386/i386.md (extv, extzv, insv): Revalidate the
operand with ext_register_operand.
From-SVN: r92287
|
|
gcc
PR target/18997
* config/i386/cygwin.h (GTHREAD_USE_WEAK): Define to 0.
libstdc++-v3
PR target/18997
* config/os/newlib/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK):
Define to 0 for __CYGWIN__.
From-SVN: r92281
|
|
bootstrap)
2004-12-14 H.J. Lu <hongjiu.lu@intel.com>
PR other/18508
* config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix
to back up the existing shared library.
* config/arm/t-netbsd (SHLIB_LINK): Likewise.
* config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
* config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
* config/sh/t-linux (SHLIB_LINK): Likewise.
* config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
* config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
* config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
* config/t-slibgcc-sld (SHLIB_LINK): Likewise.
* config/i386/t-nwld (SHLIB_LINK): Don't use the temporary
file.
From-SVN: r92276
|
|
2004-12-16 Mark Dettinger <dettinge@de.ibm.com>
* config/s390/s390.c (struct processor_costs): Two new fields:
madbr, maebr.
(s390_rtx_costs): Added handling of multipy and add in SFmode.
More precise values for cost of multiply and add.
From-SVN: r92259
|
|
PR target/19028
* config/i386/i386.md (sse compare splitter): Test for SF and DFmode
explicitly instead of using VALID_SSE_REG_MODE.
From-SVN: r92251
|
|
PR target/19005
* config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with
optimize_size.
(swapqi_1): Rename from swapqi. Enable only for no partial reg
stall and optimize_size.
(swapqi_2): New.
(swaphi_1, swaphi_2, swapqi_1): Add athlon_decode.
(swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override.
From-SVN: r92250
|
|
* config/i386/i386.md (*floathisf2_i387, *floathidf2_i387):
Also enable for TARGET_MIX_SSE_I387.
From-SVN: r92249
|
|
TARGET_SSE...
* config/i386/i386.md (sqrt{s,d}f2_1, sqrt{s,d}f2_1_sse_only,
sqrt{s,d}f2_i387): Unify enable constraint with respect to
TARGET_SSE, TARGET_SSE2, TARGET_USE_FANCY_MATH_387,
TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
(sqrt{s,d}f2_1): Rename to *sqrt{s,d}f2_mixed.
(sqrt{s,d}f2_1_sse_only): Rename to *sqrt{s,d}f2_sse.
(sqrt{s,d}f2_i387): Rename to *sqrt{s,d}f2_i387.
(*sqrtextendsfdf2): Also enable for TARGET_MIX_SSE_I387.
(*sqrtextend?f?f2): Rename to *sqrtextendsfdf2_i387.
From-SVN: r92247
|
|
*fop_?f_1_{,sse,nosse}, *fop_{d,x}f_{2,3,4,5,6}): Unify enable
constraint with respect to TARGET_80387, TARGET_SSE, TARGET_SSE2,
TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
(*fop_?f_{comm,1}): Rename to *fop_?f_{comm,1}_mixed.
(*fop_?f_{comm,1}_nosse): Rename to *fop_?f_{comm,1}_i387.
(*fop_{d,x}f_{2,3,4,5,6}): Rename to *fop_{d,x}f_{2,3,4,5,6}_i387.
From-SVN: r92246
|
|
PR target/19010
* config/i386/i386.c (ix86_must_pass_in_stack): Don't return true
for TImode vectors.
(gen_reg_or_parallel): New.
(function_arg): Use it.
(ix86_hard_regno_mode_ok): Test SSE1 and SSE2 separately,
MMX and 3DNOW separately.
(ix86_rtx_costs): Simplify FLOAT_EXTEND case.
(ix86_vector_mode_supported_p): Test SSE1 and SSE2 separately.
* config/i386/i386.h (VALID_SSE2_REG_MODE): Move SSE2 cases from ...
(VALID_SSE_REG_MODE): ... here.
* gcc.target/i386/i386.exp: New harness.
* gcc.target/i386/vect-args.c: New.
From-SVN: r92205
|