| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
PR target/35657
* config/i386/i386.c (contains_128bit_aligned_vector_p): Renamed
to ...
(contains_aligned_value_p): This. Handle _Decimal128.
(ix86_function_arg_boundary): Only align _Decimal128 to its
natural boundary and handle it properly.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134987 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (output_set_got): Fix for x86_64 output_emit_asm
by using 'q' specifier for instruction.
(ix86_file_end): Replaced case TARGET_64BIT_MS_ABI by TARGET_64BIT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134981 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
Change mode of zero_extract from QImode to HImode.
(sign bit tests peepholes): (Ditto.).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134979 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(*addv2sf3): Rename from mmx_addv2sf3 insn pattern.
(mmx_addv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
to handle nonimmediate operands.
(*mulv2sf3): Rename from mmx_mulv2sf3 insn pattern.
(mmx_mulv2sf3): New expander. Use ix86_fixup_binary_operands_no_copy
to handle nonimmediate operands.
(*<code>v2sf3_finite): New insn pattern.
(*<code>v2sf3): Rename from mmx_<code>v2sf3 insn pattern.
(mmx_<code>v2sf3): New expander. Use
ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
(mmx_<plusminus_insn><mode>3): New expander. Use
ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
(*<plusminus_insn><mode>3): New insn pattern.
(mmx_add<mode>3): Removed.
(mmx_ssadd<mode>3): Ditto.
(mmx_usadd<mode>3): Ditto.
(mmx_sub<mode>3): Ditto.
(mmx_sssub<mode>3): Ditto.
(mmx_ussub<mode>3): Ditto.
(*mulv4hi3): Rename from mmx_mulv4hi3 insn pattern.
(mmx_mulv4hi3): New expander. Use ix86_fixup_binary_operands_no_copy
to handle nonimmediate operands.
(*smulv4hi3_highpart): Rename from mmx_smulv4hi3_highpart
insn pattern.
(mmx_smulv4hi3_highpart): New expander. Use
ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
(*umulv4hi3_highpart): Rename from mmx_umulv4hi3_highpart
insn pattern.
(mmx_umulv4hi3_highpart): New expander. Use
ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
(*<code>v4hi3): Rename from mmx_<code>v4hi3 insn pattern.
(mmx_<code>v4hi3): New expander. Use
ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
(*<code>v8qi3): Rename from mmx_<code>v8qi3 insn pattern.
(mmx_<code>v8qi3): New expander. Use
ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
(*<code><mode>3): Rename from mmx_<code><mode>3 insn pattern.
(mmx_<code><mode>3): New expander. Use
ix86_fixup_binary_operands_no_copy to handle nonimmediate operands.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134976 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
* config/i386/sse.md (sse2_<plusminus_insn><mode>3): Fix a typo.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134966 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.md (sat_plusminus): New.
(plusminus_insn): Likewise.
(plusminus_mnemonic): Likewise.
(addsub): Removed.
(comm): Add ss_plus, us_plus, ss_minus and us_minus.
(*<addsub><mode>3_cc_overflow): Renamed to ...
(*<plusminus_insn><mode>3_cc_overflow): This.
(*<addsub>si3_zext_cc_overflow): Renamed to ...
(*<plusminus_insn>si3_zext_cc_overflow): This.
* gcc/config/i386/sse.md (<addsub><mode>3): Renamed to ...
(<plusminus_insn><mode>3): This.
(*<addsub><mode>3): Renamed to ...
(*<plusminus_insn><mode>3): This.
(<sse>_vm<addsub><mode>3): Renamed to ...
(<sse>_vm<plusminus_insn><mode>3): This.
(sse3_h<addsub>v4sf3): Renamed to ...
(sse3_h<plusminus_insn>v4sf3): This.
(sse3_h<addsub>v2df3): Renamed to ...
(sse3_h<plusminus_insn>v2df3): This.
(<plusminus_insn><mode>3): New.
(*<plusminus_insn><mode>3): Likewise.
(sse2_<plusminus_insn><mode>3): Likewise.
(add<mode>): Removed.
(*add<mode>3): Likewise.
(sse2_ssadd<mode>3): Likewise.
(sse2_usadd<mode>3): Likewise.
(sub<mode>3): Likewise.
(*sub<mode>3): Likewise.
(sse2_sssub<mode>3): Likewise.
(sse2_ussub<mode>3): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134957 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
(*float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit): Use only
one insn template instead of template series.
(*xordi_1_rex64): Ditto.
(*xordi_2_rex64): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134946 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (x86_output_mi_thunk): Use movq alternative
mnemonic in this_param move for TARGET_64BIT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134935 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(*strmovsi_rex_1): Ditto.
(*strsetsi_1): Ditto.
(*strsetsi_rex_1): Ditto.
(add<mode>cc): Macroize expander from addqicc, addhicc, addsicc and
adddicc expanders using SWI mode iterator.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134933 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
PR target/36121
* config/i386/i386.c (ix86_expand_special_args_builtin): Remove
3 argument handling.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134932 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config.gcc (sparc*-*-*): Always set need_64bit_hwint to yes.
(sparc*-*-linux*): Use linux.h in tm_file.
(sparc-*-linux*): If 'enabled_targets' is 'all', build a bi-arch
compiler defaulting to 32-bit.
(sparc*-*-*): Remove explicit target settings of need_64bit_hwint,
no longer needed.
* config/sparc/linux.h: Remove definitions now obtained
properly from linux.h
* config/sparc/linux64.h: Likewise.
(ASM_CPU_DEFAULT_SPEC): Change this to ASM_CPU64_DEFAULT_SPEC, we
don't want this setting for 32-bit builds in a biarch compiler.
* doc/install.texi: Add sparc-linux to list of targets
supporting --enable-targets=all.
libcpp/
* configure.ac (sparc*-*-*): Always set need_64bit_hwint to yes.
* configure: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134929 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (ix86_builtin_type): Move V4SI_FTYPE_V4SF
after V4SI_FTYPE_V8HI.
(ix86_init_mmx_sse_builtins): Move case V4HI_FTYPE_V4HI after
case V4SI_FTYPE_V2DF.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134906 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (ix86_special_builtin_type): New.
(bdesc_special_args): Likewise.
(ix86_expand_special_args_builtin): Likewise.
(ix86_init_mmx_sse_builtins): Updated.
(ix86_expand_builtin): Updated.
(ix86_expand_store_builtin): Removed.
(ix86_expand_unop_builtin): Likewise.
* config/i386/mm3dnow.h (__v2sf): Moved to ...
* config/i386/mmintrin.h (__v2sf): Here.
* config/i386/xmmintrin.h (_mm_loadh_pi): Replace __v2si with
const __v2sf.
(_mm_loadl_pi): Likewise.
(_mm_storeh_pi): Replace __v2si with __v2sf.
(_mm_storel_pi): Likewise.
* doc/extend.texi: Correct __builtin_ia32_loadhps,
__builtin_ia32_loadlps, __builtin_ia32_storehps,
__builtin_ia32_storelps, __builtin_ia32_loadhpd and
__builtin_ia32_loadlpd.
2008-05-02 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (ix86_builtin_type): Add FLOAT_FTYPE_FLOAT,
V4SF_FTYPE_V4SF_VEC_MERGE and V2DF_FTYPE_V2DF_VEC_MERGE.
(bdesc_args): Updated. Add scalar SSE builtins with vec_merge.
(ix86_init_mmx_sse_builtins): Updated.
(ix86_expand_args_builtin): Likewise.
(ix86_expand_builtin): Likewise.
(ix86_expand_unop1_builtin): Renamed to ...
(ix86_expand_unop_vec_merge_builtin): This.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134886 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (ix86_builtin_type): Replace
DI_FTYPE_DI_DI_INT with V1DI2DI_FTYPE_V1DI_V1DI_INT.
(bdesc_args): Updated.
(ix86_init_mmx_sse_builtins): Likewise.
(ix86_expand_args_builtin): Likewise.
* config/i386/tmmintrin.h (_mm_alignr_pi8): Replace long long
with __v1di.
* doc/extend.texi: Correct __builtin_ia32_palignr.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134864 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR target/36095
* config/i386/i386.c (bdesc_crc32): Removed.
(ix86_expand_crc32): Likewise.
(ix86_builtin_type): Replace V2DI2TI_FTYPE_V2DI2TI_INT with
V2DI2TI_FTYPE_V2DI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT with
V2DI2TI_FTYPE_V2DI_V2DI_INT. Add UINT64_FTYPE_UINT64_UINT64,
UINT_FTYPE_UINT_UINT, UINT_FTYPE_UINT_USHORT and
UINT_FTYPE_UINT_UCHAR.
(bdesc_args): Updated. Add crc32 builtins.
(ix86_init_mmx_sse_builtins): Updated.
(ix86_expand_args_builtin): Updated to support subreg.
* doc/extend.texi: Correct __builtin_ia32_crc32di.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134861 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (ix86_builtin_type): Add
V2DI_FTYPE_V2DI_V16QI, V2DI_FTYPE_V2DI_UINT_UINT and
V2DI_FTYPE_V2DI_V2DI_UINT_UINT.
(bdesc_args): Add SSE4a builtins.
(ix86_init_mmx_sse_builtins): Updated.
(ix86_expand_args_builtin): Likewise.
(ix86_expand_builtin): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134854 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (ix86_builtin_type): Add
V8HI_FTYPE_V8HI_V8HI_COUNT, V8HI_FTYPE_V8HI_SI_COUNT,
V4SI_FTYPE_V4SI_V4SI_COUNT, V4SI_FTYPE_V4SI_SI_COUNT,
V4HI_FTYPE_V4HI_V4HI_COUNT, V4HI_FTYPE_V4HI_SI_COUNT,
V2DI_FTYPE_V2DI_V2DI_COUNT, V2DI_FTYPE_V2DI_SI_COUNT,
V2SI_FTYPE_V2SI_V2SI_COUNT, V2SI_FTYPE_V2SI_SI_COUNT,
V1DI_FTYPE_V1DI_V1DI_COUNT, V1DI_FTYPE_V1DI_SI_COUNT,
V8HI_FTYPE_V8HI_INT, V4SI_FTYPE_V4SI_INT, V4HI_FTYPE_V4HI_INT,
V2DI2TI_FTYPE_V2DI2TI_INT, V2DI2TI_FTYPE_V2DI2TI_V2DI2TI_INT
and DI_FTYPE_DI_DI_INT.
(bdesc_args): Add MMX/SSE shift, shuffle and palignr builtins.
(ix86_init_mmx_sse_builtins): Updated.
(ix86_expand_args_builtin): Likewise.
(ix86_expand_builtin): Likewise.
(ix86_expand_binop_imm_builtin): Removed.
* doc/extend.texi: Correct __builtin_ia32_palignr128.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134853 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/arm/arm.c (arm_unwind_emit): Use
crtl->all_throwers_are_sibcalls instead of
cfun->all_throwers_are_sibcalls.
(arm_output_fn_unwind): Likewise.
* config/frv/frv.c (frv_stack_info): Use crtl->uses_pic_offset_table
instead of cfun->uses_pic_offset_table.
(frv_expand_prologue): Likewise.
(frv_frame_pointer_required): Likewise.
(frv_expand_fdpic_call): Likewise.
(frv_emit_movsi): Likewise.
* config/iq2000/iq2000.c (iq2000_expand_prologue): Use
cfun->returns_pcc_struct instead of
current_function_returns_pcc_struct.
* config/m32c/m32c.c (need_to_save): Use crtl->calls_eh_return
instead of cfun->calls_eh_return.
(m32c_pushm_popm): Likewise.
* config/xtensa/xtensa.h (cfun->calls_alloca): Remove bogus
"extern" declaration.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134835 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/rs6000/t-ppccomm: Add build rules for new files.
(LIB2ADD_ST): New variable.
gcc/
* config/rs6000/crtresgpr.asm, config/rs6000/crtresxgpr.asm,
config/rs6000/crtsavgpr.asm, config/rs6000/crtresfpr.asm,
config/rs6000/crtresxfpr.asm, config/rs6000/crtsavfpr.asm: Break out
from...
* config/rs6000/crtsavres.asm: ...here. Remove unneeded file.
* config/rs6000/e500crtres32gpr.asm,
config/rs6000/e500crtres64gpr.asm
config/rs6000/e500crtres64gprctr.asm,
config/rs6000/e500crtrest32gpr.asm
config/rs6000/e500crtrest64gpr.asm,
config/rs6000/e500crtresx32gpr.asm
config/rs6000/e500crtresx64gpr.asm,
config/rs6000/e500crtsav32gpr.asm
config/rs6000/e500crtsav64gpr.asm,
config/rs6000/e500crtsav64gprctr.asm
config/rs6000/e500crtsavg32gpr.asm,
config/rs6000/e500crtsavg64gpr.asm
config/rs6000/e500crtsavg64gprctr.asm: New files.
* config/rs6000/t-ppccomm: Add build rules for new files.
(LIB2FUNCS_STATIC_EXTRA): Add new files.
* config/rs6000/t-netbsd: Add build rules for new files.
(LIB2FUNCS_STATIC_EXTRA): New variable.
* config/rs6000/sysv4.h (ENDFILE_SPEC): Don't include crtsavres.o
(CRTSAVRES_DEFAULT_SPEC): Likewise.
* config/rs6000/netbsd.h (ENDFILE_SPEC): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134828 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (ix86_builtin_type): Add
FLOAT128_FTYPE_FLOAT128_FLOAT128, V16QI_FTYPE_V16QI_V16QI,
V16QI_FTYPE_V8HI_V8HI, V8QI_FTYPE_V8QI_V8QI,
V8QI_FTYPE_V4HI_V4HI, V8HI_FTYPE_V8HI_V8HI,
V8HI_FTYPE_V16QI_V16QI, V8HI_FTYPE_V4SI_V4SI,
V4SI_FTYPE_V4SI_V4SI, V4SI_FTYPE_V8HI_V8HI,
V4SI_FTYPE_V4SF_V4SF, V4SI_FTYPE_V2DF_V2DF,
V4HI_FTYPE_V4HI_V4HI, V4HI_FTYPE_V8QI_V8QI,
V4HI_FTYPE_V2SI_V2SI, V4SF_FTYPE_V4SF_V4SF,
V4SF_FTYPE_V4SF_V4SF_SWAP, V4SF_FTYPE_V4SF_V2SI,
V4SF_FTYPE_V4SF_V2DF, V4SF_FTYPE_V4SF_DI,
V4SF_FTYPE_V4SF_SI, V2DI_FTYPE_V2DI_V2DI,
V2DI_FTYPE_V16QI_V16QI, V2DI_FTYPE_V4SI_V4SI,
V2DI_FTYPE_V2DF_V2DF, V2SI_FTYPE_V2SI_V2SI,
V2SI_FTYPE_V4HI_V4HI, V2SI_FTYPE_V2SF_V2SF,
V2DF_FTYPE_V2DF_V2DF, V2DF_FTYPE_V2DF_V2DF_SWAP,
V2DF_FTYPE_V2DF_V4SF, V2DF_FTYPE_V2DF_DI,
V2DF_FTYPE_V2DF_SI, V2SF_FTYPE_V2SF_V2SF,
V1DI_FTYPE_V1DI_V1DI, V1DI_FTYPE_V8QI_V8QI and
V1DI_FTYPE_V2SI_V2SI.
(bdesc_2arg): Moved to ...
(bdesc_args): Here.
(ix86_init_mmx_sse_builtins): Updated.
(ix86_expand_args_builtin): Updated. Take a pointer
to const struct builtin_description. Handle comparison
builtin functions.
(ix86_expand_sse_compare): Take a new argument for swapping
operands.
(ix86_expand_builtin): Updated.
* config/i386/sse.md (ssse3_pmaddubswv8hi3): Renamed to ...
(ssse3_pmaddubsw128): This.
(ssse3_pmaddubswv4hi3): Renamed to ...
(ssse3_pmaddubsw): This.
* doc/extend.texi (__builtin_ia32_packsswb128): Correct
prototype.
(__builtin_ia32_packssdw128): Likewise.
)__builtin_ia32_packuswb128): Likewise.
(__builtin_ia32_pmaddubsw): Likewise.
(__builtin_ia32_pmaddubsw128): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134827 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
(rs6000_emit_epilogue): Use backchain to restore only when we
have a large frame. Make use of frame pointer to restore if we
have one. Handle ALWAYS_RESTORE_ALTIVEC_BEFORE_POP.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134816 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
Add mode to zero_extract.
(sign bit tests peepholes): (Ditto.).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134809 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (ix86_builtins): Replace Prescott New
Instructions in comments with SSE3.
(ix86_builtin_type): This. Add FLOAT128_FTYPE_FLOAT128,
INT64_FTYPE_V4SF, INT64_FTYPE_V2DF, INT_FTYPE_V16QI,
INT_FTYPE_V8QI, INT_FTYPE_V4SF, INT_FTYPE_V2DF,
V16QI_FTYPE_V16QI, V8HI_FTYPE_V8HI, V8HI_FTYPE_V16QI,
V8QI_FTYPE_V8QI, V4SI_FTYPE_V4SI, V4SI_FTYPE_V16QI,
V4SI_FTYPE_V4SF, V4SI_FTYPE_V8HI, V4SI_FTYPE_V2DF,
V4HI_FTYPE_V4HI, V4SF_FTYPE_V4SF, V4SF_FTYPE_V4SI,
V4SF_FTYPE_V2DF, V2DI_FTYPE_V2DI, V2DI_FTYPE_V16QI,
V2DI_FTYPE_V8HI, V2DI_FTYPE_V4SI, V2DF_FTYPE_V2DF,
V2DF_FTYPE_V4SI, V2DF_FTYPE_V4SF, V2DF_FTYPE_V2SI,
V2SI_FTYPE_V2SI, V2SI_FTYPE_V4SF, V2SI_FTYPE_V2SF,
V2SI_FTYPE_V2DF, V2SF_FTYPE_V2SF and V2SF_FTYPE_V2SI.
(bdesc_sse_args): Renamed to ...
(bdesc_args): This. Add IX86_BUILTIN_PF2ID, IX86_BUILTIN_PFRCP,
IX86_BUILTIN_PFRSQRT, IX86_BUILTIN_PI2FD, IX86_BUILTIN_PF2IW,
IX86_BUILTIN_PSWAPDSI, IX86_BUILTIN_PSWAPDSF and
IX86_BUILTIN_FABSQ.
(bdesc_1arg): Moved to ...
(bdesc_args): Here.
(ix86_init_mmx_sse_builtins): Updated. Replace Prescott New
Instructions in comments with SSE3.
(ix86_expand_sse_operands_builtin): Renamed to ...
(ix86_expand_args_builtin): This. Updated.
(ix86_expand_unop1_builtin): Update comments.
(ix86_expand_builtin): Updated.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134807 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
last commit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134761 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.md
(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit):
Change operand 1 predicate to nonimmediate_operand.
testsuite/ChangeLog:
PR target/36073
* gcc.target/i386/pr36073.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134757 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm splitters):
Use match_scratch instead of match_operand for operands 3 and 4.
testsuite/ChangeLog:
PR target/36064
* gcc.target/i386/pr36064.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134744 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
default_emutls_var_init): Declare.
* tree.h (DECL_THREAD_LOCAL): Compare against TLS_MODEL_REAL.
* target.h (struct gcc_target): Add struct emutls member.
* target-def.h (TARGET_EMUTLS_GET_ADDRESS,
TARGET_EMUTLS_REGISTER_COMMON, TARGET_EMUTLS_VAR_SECTION,
TARGET_EMUTLS_TMPL_SECTION, TARGET_EMUTLS_VAR_PREFIX,
TARGET_EMUTLS_TMPL_PREFIX, TARGET_EMUTLS_VAR_FIELDS,
TARGET_EMUTLS_VAR_INIT, TARGET_EMUTLS_DEBUG_FORM_TLS_ADDRESS,
TARGET_EMUTLS_VAR_ALIGN_FIXED, TARGET_EMUTLS): New.
(TARGET_INITIALIZER): Add TARGET_EMUTLS.
* builtins.def (BUILT_IN_EMUTLS_GET_ADDRESS,
BUILT_IN_EMUTLS_REGISTER_COMMON): Get name from targetm structure.
* dwarf2out.c (loc_descriptor_from_tree_1): Check if emutls can
emit debug information.
* coretypes.h (tls_model): Add TLS_MODEL_EMULATED, TLS_MODEL_REAL.
* varasm.c: Include targhooks.h.
(emutls_object_section, emutls_tmpl_section): New.
(EMUTLS_VAR_PREFIX, EMUTLS_TMPL_PREFIX): Remove.
(EMUTLS_SEPARATOR): New.
(prefix_name): New.
(get_emutls_object_name): New.
(default_emutls_var_fields): New, broken out of ...
(get_emutls_object_type): ... here. Adjust to use target hooks.
(get_emutls_init_templ_addr): Adjust to use target hooks.
(emutls_decl): Adjust to use target hooks.
(emutls_finish): Likewise.
(default_emutls_var_init): New, broken out of ...
(assemble_variable): ... here. Adjust to use target hooks.
* output.h (enum section_category): Add SECCAT_EMUTLS_VAR,
SECCAT_EMUTLS_TMPL.
* c-common.c (handle_section_attribute): Prevent overriding
sections for emulated tls with special sections.
* config/i386/i386.c (x86_64_elf_select_section): Add
SECCAT_EMUTLS_VAR and SECCAT_EMUTLS_TMPL.
(x86_64_elf_unique_section): Likewise.
* config/vxworks.c: Include tree.h.
(vxworks_emutls_var_fields, vxworks_emutls_var_init): New.
(vxworks_override_options): Set TLS scheme.
* gcc/doc/tm.texi (Emulated TLS): New node.
gcc/testsuite/
* gcc.dg/tls/section-2.c: New.
* gcc.dg/tls/emutls-1.c: New.
* lib/target-supports.exp (check_effective_target_tls_native):
Exclude vxworks.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134729 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
constraint for operand 2 when operand 0 is memory operand.
(fix_truncdi_i387_with_temp): : Use 'X' constraint for operand 4 when
operand 0 is memory operand.
(fix_trunc<mode>_i387_with_temp): Ditto.
(*floatsi<mode>2_vector_mixed_with_temp): Use 'X' constraint for
operand 2 when operand 1 is memory operand.
(*float<SSEMODEI24:mode><MODEF:mode>2_mixed_with_temp): Ditto.
(*floatsi<mode>2_vector_sse_with_temp): Ditto.
(*float<SSEMODEI24:mode><MODEF:mode>2_sse_with_temp): Ditto.
(*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto.
(floatdi<X87MODEF:mode>2_i387_with_xmm): Use 'X' constraint for
operands 2,3 and 4 when operand 1 is memory operand.
(fistdi2_with_temp): Use 'X' constraint for operand 2 when operand 0
is memory operand.
(fistdi2_floor_with_temp): Ditto.
(fist<mode>2_floor_with_temp): Ditto.
(fistdi2_ceil_with_temp): Ditto.
(fist<mode>2_ceil_with_temp): Ditto.
(*truncdfsf_fast_mixed): Merge alternatives 0 and 1.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134697 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-04-23 David Daney <ddaney@avtrex.com>
* config/mips/mips.md (UNSPEC_COMPARE_AND_SWAP_12): New
unspec_volitile.
(UNSPEC_SYNC_OLD_OP, UNSPEC_SYNC_NEW_OP, UNSPEC_SYNC_EXCHANGE,
UNSPEC_MEMORY_BARRIER, UNSPEC_SET_GOT_VERSION,
UNSPEC_UPDATE_GOT_VERSION): Renumber.
(sync_compare_and_swap<mode>): New expand for QI and HI modes.
(compare_and_swap_12): New insn.
* config/mips/mips-protos.h (mips_expand_compare_and_swap_12): Declare.
* config/mips/mips.c (mips_force_binary): New function.
(mips_emit_int_order_test, mips_expand_synci_loop): Use it.
(mips_expand_compare_and_swap_12): New function.
* config/mips/mips.h (MIPS_COMPARE_AND_SWAP_12): New macro.
gcc/testsuite/
* gcc.target/mips/gcc-have-sync-compare-and-swap-1.c: Expect
__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 and
__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 to be defined.
* gcc.target/mips/gcc-have-sync-compare-and-swap-2.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134695 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134692 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/mingw32.h (SUBTARGET_INIT_BUILTINS): New.
* config/i386/i386.c (ix86_init_builtins): Use of
SUBTARGET_INIT_BUILTINS.
Add include of c-common.h for builtin.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134691 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/mingw32.h (SUBTARGET_INIT_BUILTINS): New.
* config/i386/i386.c (ix86_init_builtins): Use of
SUBTARGET_INIT_BUILTINS.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134683 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* cfgexpand.c (pass_expand): Turn into RTL pass.
* passes.c (execute_one_pass): Do pass typechecking after execution.
* tree-pass.h (pass_expand): Turn into RTL pass.
* function.h (struct rtl_data): Move here fields
accesses_prior_frames, calls_eh_return, saves_all_registers,
has_nonlocal_goto, has_asm_statement, is_thunk,
all_throwers_are_sibcalls, limit_stack, profile, uses_const_pool,
uses_pic_offset_table, uses_eh_lsda, tail_call_emit,
arg_pointer_save_area_init from struct function; turn into bool.
(struct function): Move
calls_eh_return, saves_all_registers, has_nonlocal_goto,
has_asm_statement, is_thunk, all_throwers_are_sibcalls, limit_stack,
profile, uses_const_pool, uses_pic_offset_table, uses_eh_lsda,
tail_call_emit, arg_pointer_save_area_init
into struct rtl_data. Remove recursive_call_emit and gimplified flags.
(current_function_returns_struct, current_function_returns_pcc_struct,
current_function_calls_setjmp, current_function_calls_alloca,
current_function_accesses_prior_frames,
current_function_calls_eh_return, current_function_is_thunk,
current_function_stdarg, current_function_profile,
current_function_limit_stack, current_function_uses_pic_offset_table,
current_function_uses_const_pool, current_function_has_nonlocal_label,
current_function_saves_all_registers,
current_function_has_nonlocal_goto,
current_function_has_asm_statement): Remove accesor macros.
* ra-conflict.c (global_conflicts): Update.
* tree-tailcall.c (suitable_for_tail_opt_p): Update.
(suitable_for_tail_call_opt_p): Update.
* builtins.c (expand_builtin_return_addr): Update.
(expand_builtin_setjmp_setup): Update.
(expand_builtin_nonlocal_goto): Update.
* final.c (final_start_function): Update.
(profile_function): Update.
(leaf_function_p): Update.
(only_leaf_regs_used): Update.
* df-scan.c (df_get_exit_block_use_set): Update.
* dojump.c (clear_pending_stack_adjust): Update.
* tree-stdarg.c (gate_optimize_stdarg): Update.
* gimple-low.c (lower_function_body): Update.
* global.c (compute_regsets): Update.
(global_alloc): Update.
* dwarf2out.c (dwarf2out_begin_prologue): Update.
* expr.c (expand_assignment): Update.
* dse.c (dse_step0): Update.
(dse_step1): Update.
* c-decl.c (store_parm_decls): Update.
* local-alloc.c (combine_regs): Update.
(find_free_reg): Update.
* function.c (assign_parms_augmented_arg_list): Update.
(assign_parm_find_data_types): Update.
(assign_parms): Update.
(allocate_struct_function): Update.
(expand_function_start): Update.
(expand_function_end): Update.
(get_arg_pointer_save_area): Update.
(thread_prologue_and_epilogue_insns): Update.
(rest_of_match_asm_constraints): Update.
* stor-layout.c (variable_size): Update.
* gcse.c (gcse_main): Update.
(bypass_jumps): Update.
* gimplify.c (gimplify_function_tree): Update.
* calls.c (emit_call_1): Update.
(expand_call): Update.
* bt-load.c (compute_defs_uses_and_gen): Update.
* except.c (sjlj_assign_call_site_values): Update.
(sjlj_emit_function_enter): Update.
(can_throw_external): Update.
(set_nothrow_function_flags): Update.
(expand_builtin_unwind_init): Update.
(expand_eh_return): Update.
(convert_to_eh_region_ranges): Update.
(output_function_exception_table): Update.
* emit-rtl.c (gen_tmp_stack_mem): Update.
* cfgexpand.c (expand_used_vars): Update.
(tree_expand_cfg): Update.
* cfgcleanup.c (rest_of_handle_jump): Update.
* explow.c (allocate_dynamic_stack_space): Update.
* varasm.c (assemble_start_function): Update.
(force_const_mem): Update.
(mark_constant_pool): Update.
* tree-optimize.c (tree_rest_of_compilation): Update.
* stack-ptr-mod.c (notice_stack_pointer_modification): Update.
* tree-cfg.c (notice_special_calls): Update.
(is_ctrl_altering_stmt): Update.
(tree_can_make_abnormal_goto): Update.
(tree_purge_dead_abnormal_call_edges): Update.
* config/alpha/predicates.md: Update.
* config/alpha/alpha.c (alpha_sa_mask): Update.
(alpha_sa_size): Update.
(alpha_does_function_need_gp): Update.
(alpha_expand_prologue): Update.
(alpha_start_function): Update.
(alpha_output_function_end_prologue): Update.
(alpha_expand_epilogue): Update.
* config/frv/frv.c (frv_stack_info): Update.
(frv_expand_epilogue): Update.
* config/s390/s390.c (s390_regs_ever_clobbered): Update.
(s390_register_info): Update.
(s390_frame_info): Update.
(s390_init_frame_layout): Update.
(s390_can_eliminate): Update.
(save_gprs): Update.
* config/spu/spu.c (spu_split_immediate): Update.
(need_to_save_reg): Update.
(spu_expand_prologue): Update.
(spu_expand_epilogue): Update.
* config/sparc/sparc.md: Update.
* config/sparc/sparc.c (eligible_for_return_delay): Update.
(sparc_tls_got): Update.
(legitimize_pic_address): Update.
(sparc_emit_call_insn): Update.
(sparc_expand_prologue): Update.
(output_return): Update.
(print_operand): Update.
(sparc_function_ok_for_sibcall): Update.
* config/sparc/sparc.h (EXIT_IGNORE_STACK): Update.
* config/m32r/m32r.md: Update.
* config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Update.
(m32r_compute_frame_size): Update.
(m32r_expand_prologue): Update.
(m32r_expand_epilogue): Update.
(m32r_legitimize_pic_address): Update.
* config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Update.
* config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
* config/i386/i386.c (ix86_frame_pointer_required): Update.
(gen_push): Update.
(ix86_save_reg): Update.
(ix86_compute_frame_layout): Update.
(ix86_expand_prologue): Update.
(ix86_expand_epilogue): Update.
* config/sh/sh.c (output_stack_adjust): Update.
(calc_live_regs): Update.
(sh5_schedule_saves): Update.
(sh_expand_prologue): Update.
(sh_expand_epilogue): Update.
(sh_setup_incoming_varargs): Update.
(sh_allocate_initial_value): Update.
(sh_get_pr_initial_val): Update.
* config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): Update.
* config/sh/sh.md (label:): Update.
* config/avr/avr.c (out_movhi_mr_r): Update.
* config/crx/crx.h (enum): Update.
* config/xtensa/xtensa.h (along): Update.
* config/stormy16/stormy16.c Update.
(xstormy16_compute_stack_layout): Update.
* config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Update.
(fr30_expand_prologue): Update.
* config/cris/cris.c (cris_conditional_register_usage): Update.
(cris_reg_saved_in_regsave_area): Update.
(cris_initial_frame_pointer_offset): Update.
(cris_simple_epilogue): Update.
(cris_expand_prologue): Update.
(cris_expand_epilogue): Update.
(cris_expand_pic_call_address): Update.
(cris_asm_output_symbol_ref): Update.
(cris_asm_output_label_ref): Update.
* config/cris/cris.md Update.
* config/iq2000/iq2000.c (compute_frame_size): Update.
(iq2000_expand_epilogue): Update.
* config/mt/mt.h (save_direction): Update.
* config/mn10300/mn10300.c (mn10300_function_value): Update.
* config/ia64/ia64.c (ia64_compute_frame_size): Update.
(ia64_secondary_reload_class): Update.
* config/m68k/m68k.c (m68k_save_reg): Update.
(m68k_expand_prologue): Update.
(m68k_expand_epilogue): Update.
(legitimize_pic_address): Update.
* config/rs6000/rs6000.c (rs6000_got_register): Update.
(first_reg_to_save): Update.
(first_altivec_reg_to_save): Update.
(compute_vrsave_mask): Update.
(compute_save_world_info): Update.
(rs6000_stack_info): Update.
(spe_func_has_64bit_regs_p): Update.
(rs6000_ra_ever_killed): Update.
(rs6000_emit_eh_reg_restore): Update.
(rs6000_emit_allocate_stack): Update.
(rs6000_emit_prologue): Update.
(rs6000_emit_epilogue): Update.
(rs6000_output_function_epilogue): Update.
(output_profile_hook): Update.
(rs6000_elf_declare_function_name): Update.
* config/rs6000/rs6000.h (rs6000_args): Update.
* config/rs6000/rs6000.md: Update.
* config/mcore/mcore.c (mcore_expand_prolog): Update.
* config/arc/arc.c (arc_output_function_epilogue): Update.
* config/arc/arc.h (FRAME_POINTER_REQUIRED): Update.
* config/darwin.c (machopic_function_base_name): Update.
* config/score/score3.c (score3_compute_frame_size): Update.
(rpush): Update.
(rpop): Update.
(score3_epilogue): Update.
* config/score/score7.c (score7_compute_frame_size): Update.
(score7_prologue): Update.
(score7_epilogue): Update.
* config/score/score.h (FRAME_POINTER_REQUIRED): Update.
* config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Update.
* config/arm/arm.c (use_return_insn): Update.
(require_pic_register): Update.
(arm_load_pic_register): Update.
(arm_compute_save_reg0_reg12_mask): Update.
(arm_compute_save_reg_mask): Update.
(thumb1_compute_save_reg_mask): Update.
(output_return_instruction): Update.
(arm_output_function_prologue): Update.
(arm_output_epilogue): Update.
(arm_get_frame_offsets): Update.
(arm_expand_prologue): Update.
(thumb_pushpop): Update.
(thumb_exit): Update.
(thumb1_expand_prologue): Update.
(thumb1_expand_epilogue): Update.
(arm_unwind_emit): Update.
(arm_output_fn_unwind): Update.
* config/arm/arm.h (FRAME_POINTER_REQUIRED): Update.
* config/arm/arm.md: Update.
* config/pa/pa.md: Update.
* config/pa/pa.c (legitimize_pic_address): Update.
(compute_frame_size): Update.
(hppa_expand_prologue): Update.
(hppa_expand_epilogue): Update.
(borx_reg_operand): Update.
* config/pa/pa.h (FRAME_POINTER_REQUIRED): Update.
(HARD_REGNO_RENAME_OK): Update.
* config/mips/mips.c (mips_global_pointer): Update.
(mips_save_reg_p): Update.
(mips_compute_frame_info): Update.
(mips_frame_pointer_required): Update.
(mips_expand_prologue): Update.
(mips_expand_epilogue): Update.
(mips_can_use_return_insn): Update.
(mips_reorg_process_insns): Update.
* config/v850/v850.c (compute_register_save_size): Update.
* config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Update.
* config/mmix/mmix.c (along): Update.
(mmix_expand_epilogue): Update.
* config/bfin/bfin.c (legitimize_pic_address): Update.
(must_save_p): Update.
(stack_frame_needed_p): Update.
(add_to_reg): Update.
(bfin_expand_prologue): Update.
* stmt.c (expand_asm_operands): Update.
* reload1.c (reload): Update.
(init_elim_table): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134682 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/sse.md (mov<mode>): Replace SSEMODEI with
SSEMODE.
(*mov<mode>_internal): Likewise. Support V4SF and V2DF.
(mov<mode>): Removed.
(*movv4sf_internal): Likewise.
(*movv2df_internal): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134664 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
| |
__gcc_deregister_frame with atexit.
(deregister_frame_dtor): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134656 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
| |
(misel): Likewise.
* config/rs6000/rs6000.h (rs6000_spe): Declare.
(rs6000_isel): Likewise.
* config/rs6000/rs6000.c (rs6000_spe): New variable.
(rs6000_isel): New variable.
(rs6000_handle_option): Handle OPT_mspe and OPT_misel.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134643 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* c-common.c (handle_vector_size_attribute): Call
lang_hooks.types.reconstruct_complex_type instead of
reconstruct_complex_type.
* config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Likewise.
* config/spu/spu.c (spu_handle_vector_attribute): Likewise.
* langhooks.h (struct lang_hooks_for_types): Add
reconstruct_complex_type hook.
* langhooks-def.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
* cp-tree.h (cp_reconstruct_complex_type): New prototype.
* cp-objcp-common.h (LANG_HOOKS_RECONSTRUCT_COMPLEX_TYPE): Define.
* decl2.c (is_late_template_attribute): Only make vector_size
late tmpl attribute if argument is type or value dependent.
(cp_reconstruct_complex_type): New function.
* g++.dg/ext/vector14.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134639 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* c-format.c (check_format_info_main): Use strncmp rather than a magic prefix
to handle multichar length specs.
* config/i386/msformat-c.c (format_length_info ms_printf_length_specs):
Don't prefix "I64" and "I32" with '\0'.
testsuite
* gcc.dg/format/ms-warnI64-1.c: New file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134623 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (init_cumulative_args): Don't pass anything
in registers for -m32 only if stdarg_p (fntype).
* gcc.dg/pr36015.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134621 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
of LR/CTR moves for Power6.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134565 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
builtin functions to generate faster code.
(_mm_cvtpu16_ps): Ditto.
(_mm_cvtpi32x2_ps): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134558 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
| |
(frv_expand_builtin_va_start): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134554 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
| |
argument register count.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134553 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Improve scheduling of multiplication instructions.
* config/m68k/m68k.md (cpu): Add cfv1 and cfv3. Rename cf_v2 to cfv1.
(mac): New instruction attribute.
* config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
(m68k_sched_mac): New variable.
(m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
Handle cfv1 and cfv3.
(max_insn_size): New static variable.
(struct _sched_ib): New type.
(sched_ib): New static variable.
(sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
to fields of 'struct _sched_ib sched_ib'. Update all uses.
(m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
Update.
(m68k_sched_md_init_global, m68k_sched_md_finish_global,
m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3. Init
new variables. Update.
(m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
Add modeling of cfv3 instruction buffer. Update.
* config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
* config/m68k/m68k.h (TUNE_CFV3): New macro.
* config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
(cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
a particular reservation applies to.
(type2): Reorganize attribute values. Rename alu to alu_reg,
alu_l to alu, move_l to omove. Join move to alu. Split mul
to mul_l and mul_w.
(cf_ib_*): Simplify description of instruction buffer.
(cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
(cf_mem): Split into cf_mem1 and cf_mem2.
(cf_v2_move_??): Rename to cfv12_alu_??.
(cf_v2_move_l_??): Rename to cfv12_omove_??.
(cf_v2_mul_??): Remove reservations.
(cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
cfv12_emac_??, cfv12_emac_w_i0): New reservations.
(cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
appropriate place.
(cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
(cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
expansions of the above reservations for instructions of sizes
1, 2 and 3 words.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134552 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
sjlj_size_of_call_site_table): Use vector API for call_site_record.
* cgraphbuild.c (build_cgraph_edges): Update.
* tree-pass.h: Update comment.
* final.c (leaf_function_p): Update.
(leaf_renumber_regs): Update.
(rest_of_clean_state): Update.
* omp-low.c (expand_omp_parallel): Update.
* ipa-reference.c (analyze_function): Update.
* reorg.c (find_end_label): Update.
(optimize_skip): Update.
(fill_simple_delay_slots): Update.
(fill_simple_delay_slots): Update.
(make_return_insns): Update.
(dbr_schedule): Update.
* gimple-low.c (record_vars_into): Update.
* cfgbuild.c (make_edges): Update.
* function.c (assign_stack_local): Update.
(assign_parm_adjust_stack_rtl): Update.
(locate_and_pad_parm): Update.
(allocate_struct_function): Do not initialize stack_alignment_needed
and preferred_stack_boundary here.
(stack_protect_prologue): Update.
(stack_protect_epilogue): Update.
(expand_function_start): Initialize stack_alignment_needed,
preferred_stack_boundary and max_jumptable_ents.
(expand_function_end): Update.
(free_after_compilation): Do not NULLify epilogue_delay_list.
* function.h (struct rtl_data): Add stack_protect_guard,
stack_alignment_needed,
preferred_stack_boundary, epilogue_delay_list.
(struct function): Remove value_histograms, stack_alignment_needed,
preferred_stack_boundary, epilogue_delay_list, max_jumptable_ents,
last_label_uid,
unexpanded_var_list, stack_protect_guard.
(current_function_epilogue_delay_list): Remove.
* ipa-type-escape.c (analyze_function): Update.
* gimplify.c (pop_gimplify_context): Update comment.
* calls.c (expand_call): Update.
(emit_library_call_value_1): Update.
* except.c (set_nothrow_function_flags): Update.
* cfgexpand.c (get_decl_align_unit): Update.
(create_stack_guard): Update.
(estimated_stack_frame_size): Update.
(expand_used_vars): Update.
(tree_expand_cfg): Free histogram earliers, init expansion variables.
* explow.c (allocate_dynamic_stack_space): Update.
* tree-ssa-live.c (remove_unused_locals): Update.
* varasm.c (mark_constant_pool): Update.
* tree-inline.c (remap_decls): Update.
(initialize_cfun): Update.
(declare_return_variable): Update.
(inline_forbidden_p): Update.
(expand_call_inline): Update.
(declare_inline_vars): Update.
(tree_function_versioning): Update.
* tree-flow.h (value_histograms): New.
(VALUE_HISTOGRAMS): New macro.
* basic-block.h (control_flow_graph): Add max_jumptable_ents,
last_label_uid.
* tree-cfg.c (set_bb_for_stmt): Update.
(replace_by_duplicate_decl): Update.
(move_block_to_fn): Update.
(new_label_mapper): Update.
(dump_function_to_file): Update.
* ipa-struct-reorg.c (build_data_structure): Update.
* cfgrtl.c (print_rtl_with_bb): Update.
* reload1.c (reload): Update.
(reload): Update.
* config/i386/i386.c (setup_incoming_varargs_64,
ix86_compute_frame_layout): Update.
* config/arc/arc.c (arc_output_function_epilogue): Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134425 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to split_ti instead of three separate calls with single member arrays.
(subti3 splitter): Ditto.
(adddi3 splitter): Ditto with split_di.
(subdi3 splitter): Ditto.
(negti2 splitter): Pass arrays of 2 operands to split_ti instead of
two separate calls with single member arrays. Swap match_dup
operands 1 and 2 to better fit into the array.
(negdi2 splitter): Ditto with split_di.
(movdfcc splitter): Pass arrays of 2 operands to split_di instead of
two separate calls with single member arrays. Swap match_dup operands
6 and 7 to better fit into the array.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134403 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.c (sse_builtin_type): New.
(bdesc_sse_args): Likewise.
(bdesc_sse_3arg): Removed.
(bdesc_2arg): Remove IX86_BUILTIN_AESKEYGENASSIST128.
(bdesc_1arg): Remove IX86_BUILTIN_ROUNDPD and
IX86_BUILTIN_ROUNDPS.
(ix86_init_mmx_sse_builtins): Handle bdesc_sse_args. Remove
bdesc_sse_3arg. Remove IX86_BUILTIN_ROUNDPD and
IX86_BUILTIN_ROUNDPS.
(ix86_expand_sse_4_operands_builtin): Removed.
(ix86_expand_sse_operands_builtin): New.
(ix86_expand_unop_builtin): Remove CODE_FOR_sse4_1_roundpd
and CODE_FOR_sse4_1_roundps.
(ix86_expand_builtin): Remove IX86_BUILTIN_AESKEYGENASSIST128.
Handle bdesc_sse_args. Remove bdesc_sse_3arg.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134391 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
|
| |
* config/rs6000/rs6000.c (rs6000_emit_epilogue): Restore vr and vrsave
regs before frame pop when needed. If use_backchain_to_restore_sp
then load backchain into a temp reg to restore vr and vrsave. Add
code to restore vr after frame pop if possible.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134387 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
| |
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134380 138bc75d-0d04-0410-961f-82ee72b054a4
|
|
|
|
|
|
|
|
|
|
| |
* config/i386/i386.md (fmodxf3): Copy operand 1 and operand 2 into
temporary registers. Change operand predicate to general_operand.
(remainderxf3): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@134348 138bc75d-0d04-0410-961f-82ee72b054a4
|