Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | PR go/59432 | uros | 2014-10-15 | 1 | -45/+11 |
| | | | | | | | | | | | | | | | | | | | | * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword): Remove the second alternative. (regprefix): Remove mode attribute. (atomic_compare_and_swap<mode>): Do not fixup operand 2. * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Remove. Revert: 2013-11-05 Ian Lance Taylor <iant@google.com> * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword): If possible, add .cfi directives to record change to bx. * config/i386/i386.c (ix86_emit_cfi): New function. * config/i386/i386-protos.h (ix86_emit_cfi): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216281 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | Update copyright years in gcc/ | rsandifo | 2014-01-02 | 1 | -1/+1 |
| | | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206289 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword): | ian | 2013-11-06 | 1 | -2/+13 |
| | | | | | | | | | If possible, add .cfi directives to record change to bx. * config/i386/i386.c (ix86_emit_cfi): New function. * config/i386/i386-protos.h (ix86_emit_cfi): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@204433 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | PR target/55981 | uros | 2013-01-17 | 1 | -9/+6 |
| | | | | | | | | | | | | | | | * config/i386/sync.md (atomic_store<mode>): Always generate SWImode store through atomic_store<mode>_1. (atomic_store<mode>_1): Macroize insn using SWI mode iterator. testsuite/ChangeLog: PR target/55981 * gcc.target/pr55981.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195273 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | PR target/55948 | uros | 2013-01-14 | 1 | -2/+14 |
| | | | | | | | | | | | | | | | | * config/i386/sync.md (atomic_store<mode>_1): New pattern. (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE memmodel flag. testsuite/ChangeLog PR target/55948 * gcc.target/i386/hle-clear-rel.c: New file * gcc.target/i386/hle-store-rel.c: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195155 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/sync.md (mem_thread_fence): Mask operands[0] with | uros | 2013-01-13 | 1 | -2/+4 |
| | | | | | | | | | | MEMMODEL_MASK to determine memory model. (atomic_store<mode>): Ditto from operands[2]. * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195137 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | Update copyright years in gcc/ | rsandifo | 2013-01-10 | 1 | -2/+1 |
| | | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195098 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | Update Copyright years for files modified in 2011 and/or 2012. | jakub | 2013-01-04 | 1 | -1/+1 |
| | | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@194903 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/i386.c (TARGET_INSTANTIATE_DECLS): New define. | uros | 2012-11-06 | 1 | -6/+2 |
| | | | | | | | | | | | | | | | | | | | (ix86_instantiate_decls): New function. (ix86_expand_builtin) <case IX86_BUILTIN_LDMXCSR>: Use SLOT_TEMP stack slot instead of SLOT_VIRTUAL. <case IX86_BUILTIN_STMXCSR>: Ditto. (assign_386_stack_local): Do not assert when virtual slot is valid. * config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_VIRTUAL. * config/i386/i386.md (truncdfsf2): Do not use SLOT_VIRTUAL stack slot. (truncxf<mode>2): Ditto. (floatunssi<mode>2): Ditto. (isinf<mode>2): Ditto. * config/i386/sync.md (atomic_load<mode>): Ditto. (atomic_store<mode>): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193244 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword): | uros | 2012-09-02 | 1 | -4/+3 |
| | | | | | | | Improve insn output code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190861 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | PR target/46254 | uros | 2012-08-27 | 1 | -66/+53 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): Return true for TARGET_64BIT or !flag_pic. * config/i386/sync.md (*atomic_compare_and_swap_doubledi_pic): Remove. (atomic_compare_and_swap_double<mode>): Change operand 2 predicate to cmpxchg8b_pic_memory_operand. Use DWIH mode iterator. Add insn constraint. Conditionally emit xchg asm insns. (atomic_compare_and_swap<mode>): Update calls. Check only cmpxchg8b_pic_memory_operand in memory address fixup. (DCASMODE): Remove. (CASHMODE): Rename from DCASHMODE. (doublemodesuffix): Update modes. (regprefix): New mode attribute. (unspecv) <UNSPECV_CMPXCHG_{1,2,3,4}>: Remove. <UNSPECV_CMPXCHG>: New constant. (atomic_compare_and_swap<mode>_1): Rename from atomic_compare_and_swap_single<mode>. Update calls and unspec_volatile constants. (atomic_compare_and_swap<mode>_doubleword): Rename from atomic_compare_and_swap_double<mode>. Update calls and unspec_volatile constants. testsuite/ChangeLog: PR target/46254 * gcc.target/i386/pr46254.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190732 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/i386.h (FP_REG_P): Remove macro. | uros | 2012-08-25 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | | | | | | (FP_REGNO_P): Ditto. (HARD_REGNO_NREGS): Use STACK_REGNO_P instead of FP_REGNO_P. (HARD_REGNO_NREGS_HAS_PADDING): Ditto. (ANY_FP_REGNO_P): Ditto. (HARD_REGNO_RENAME_OK): Use STACK_REGNO_P. * config/i386/i386.c (output_387_ffreep): Use STACK_REGNO_P instead of FP_REGNO_P. (ix86_hard_regno_mode_ok): Ditto. * config/i386/predicates.md (fp_register_operand): Ditto. (register_and_not_fp_reg_operand): Ditto. * config/i386/sync.md (atomic_loaddi_fpu): Use STACK_REG_P instead of FP_REG_P. * reg-stack.c (get_true_reg): Use STACK_REG_P instead of FP_REG_P. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190667 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/sync.md (*atomic_fetch_add_cmp<mode>): Use | uros | 2012-08-03 | 1 | -17/+27 |
| | | | | | | | | | | | | incdec_operand predicate to return INC or DEC insn mnemonic. Add %K operand modifier. (atomic_add<mode>): Use incdec_operand predicate to return INC or DEC insn mnemonic. (atomic_dec<mode>): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190132 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | ChangeLog entry: | kyukhin | 2012-05-02 | 1 | -22/+27 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * coretypes (MEMMODEL_MASK): New. * builtins.c (get_memmodel): Add val. Call target.memmodel_check and return new variable. (expand_builtin_atomic_exchange): Mask memmodel values. (expand_builtin_atomic_compare_exchange): Ditto. (expand_builtin_atomic_load): Ditto. (expand_builtin_atomic_store): Ditto. (expand_builtin_atomic_clear): Ditto. * doc/extend.texi: Mention port-dependent memory model flags. * config/i386/cpuid.h (bit_HLE): New. * config/i386/driver-i386.c (host_detect_local_cpu): Detect HLE support. * config/i386/i386-protos.h (ix86_generate_hle_prefix): New. * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines. (ix86_target_string)<-mhle>: New. (ix86_valid_target_attribute_inner_p)<OPT_mhle>: Ditto. * config/i386/i386.c (ix86_target_string)<OPTION_MASK_ISA_HLE>: New. (ix86_valid_target_attribute_inner_p)<OPT_mhle>: Ditto. (ix86_option_override_internal)<PTA_HLE>: New switch, set it enabled for generic, generic64 and core-avx2. (ix86_print_operand): Generate HLE lock prefixes. (ix86_memmodel_check): New. (TARGET_MEMMODEL_CHECK): Ditto. * config/i386/i386.h (OPTION_ISA_HLE): Ditto. (IX86_HLE_ACQUIRE): Ditto. (IX86_HLE_RELEASE): Ditto. * config/i386/i386.h (ix86_generate_hle_prefix): Ditto. * config/i386/i386.opt (mhle): Ditto. * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass success model to instruction emitter. (atomic_fetch_add<mode>): Ditto. (atomic_exchange<mode>): Ditto. (atomic_add<mode>): Ditto. (atomic_sub<mode>): Ditto. (atomic_<code><mode>): Ditto. (*atomic_compare_and_swap_doubledi_pic): Ditto. (atomic_compare_and_swap_single<mode>): Define and use argument for success model. (atomic_compare_and_swap_double<mode>): Ditto. * configure.ac: Check if assembler support HLE prefixes. * configure: Regenerate. * config.in: Ditto. testsuite/ChangeLog entry: * gcc.target/i386/hle-cmpxchg-acq-1.c: New. * gcc.target/i386/hle-cmpxchg-rel-1.c: Ditto. * gcc.target/i386/hle-add-acq-1.c: Ditto. * gcc.target/i386/hle-add-rel-1.c: Ditto. * gcc.target/i386/hle-and-acq-1.c: Ditto. * gcc.target/i386/hle-and-rel-1.c: Ditto. * gcc.target/i386/hle-or-acq-1.c: Ditto. * gcc.target/i386/hle-or-rel-1.c: Ditto. * gcc.target/i386/hle-sub-acq-1.c: Ditto. * gcc.target/i386/hle-sub-rel-1.c: Ditto. * gcc.target/i386/hle-xadd-acq-1.c: Ditto. * gcc.target/i386/hle-xadd-rel-1.c: Ditto. * gcc.target/i386/hle-xchg-acq-1.c: Ditto. * gcc.target/i386/hle-xchg-rel-1.c: Ditto. * gcc.target/i386/hle-xor-acq-1.c: Ditto. * gcc.target/i386/hle-xor-rel-1.c: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187051 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | PR target/53020 | uros | 2012-04-17 | 1 | -1/+1 |
| | | | | | | | | | * config/i386/sync.md (atomic_<code><mode>): Rename to atomic_<logic><mode>. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186542 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/i386.md: Remove empty predicates and/or constraints. | uros | 2012-03-18 | 1 | -38/+38 |
| | | | | | | | | | | | | * config/i386/sync.md: Ditto. * config/i386/sse.md: Ditto. * config/i386/mmx.md: Ditto. * config/i386/pentium.md: Ditto. * config/i386/athlon.md: Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@185505 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/sync.md (UNSPEC_LDA, UNSPEC_STA): New unspecs. | uros | 2011-11-29 | 1 | -9/+27 |
| | | | | | | | | | | | | | | (movdi_via_fpu): Remove. (loaddi_via_fpu): New insn pattern. (storedi_via_fpu): Ditto. (atomic_loaddi_fpu): Use loaddi_via_fpu and storedi_via_fpu. (atomic_storedi_fpu): Ditto. * reg-stack.c (get_true_reg): Handle UNSPEC_LDA. (subst_stack_regs_pat): Handle UNSPEC_STA. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181812 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/sync.md (movdi_via_fpu): Add %Z insn suffixes. | uros | 2011-11-26 | 1 | -2/+2 |
| | | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181739 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/mmx.md (unspec) <UNSPEC_MOVNTQ, UNSPEC_PFRCP, | uros | 2011-11-21 | 1 | -16/+93 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | UNSPEC_PFRCPIT1, UNSPEC_PFRCPIT2, UNSPEC_PFRSQRT, UNSPEC_PFRSQIT1>: Move from config/i386/i386.md (unspecv) <UNSPECV_EMMS, UNSPECV_FEMMS>: Ditto. * config/i386/sse.md (unspec) <UNSPEC_MOVNT,UNSPEC_MOVU, UNSPEC_LDDQU, UNSPEC_PSHUFB, UNSPEC_PSIGN, UNSPEC_PALIGNR, UNSPEC_EXTRQI, UNSPEC_EXTRQ, UNSPEC_INSERTQI, UNSPEC_INSERTQ, UNSPEC_BLENDV, UNSPEC_INSERTPS, UNSPEC_DP, UNSPEC_MOVNTDQA, UNSPEC_MPSADBW, UNSPEC_PHMINPOSUW, UNSPEC_PTEST, UNSPEC_PCMPESTR, UNSPEC_PCMPISTR, UNSPEC_FMADDSUB, UNSPEC_XOP_UNSIGNED_CMP, UNSPEC_XOP_TRUEFALSE, UNSPEC_XOP_PERMUTE, UNSPEC_FRCZ, UNSPEC_AESENC, UNSPEC_AESENCLAST, UNSPEC_AESDEC, UNSPEC_AESDECLAST, UNSPEC_AESIMC, UNSPEC_AESKEYGENASSIST, UNSPEC_PCLMUL, UNSPEC_PCMP, UNSPEC_VPERMIL, UNSPEC_VPERMIL2, UNSPEC_VPERMIL2F128, UNSPEC_CAST, UNSPEC_VTESTP, UNSPEC_VCVTPH2PS, UNSPEC_VCVTPS2PH, UNSPEC_VPERMSI, UNSPEC_VPERMDF, UNSPEC_VPERMSF, UNSPEC_VPERMTI, UNSPEC_GATHER, UNSPEC_VSIBADDR>: Ditto. (unspecv) <UNSPECV_LDMXCSR, UNSPECV_STMXCSR, UNSPECV_CLFLUSH, UNSPECV_MONITOR, UNSPECV_MWAIT, UNSPECV_VZEROALL, UNSPECV_VZEROUPPER>: Ditto. * config/i386/sync.md (unspec) <UNSPEC_LFENCE, UNSPEC_SFENCE, UNSPEC_MFENCE, UNSPEC_MOVA>: Ditto. (unspecv) <UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2, UNSPECV_CMPXCHG_3, UNSPECV_CMPXCHG_4, UNSPECV_XCHG, UNSPECV_LOCK>: Ditto. (sse2_lfence): Move from config/i386/sse.md. (*sse2_lfence): Ditto. (sse_sfence): Ditto. (*sse_sfence): Ditto. (sse2_mfence): Ditto. (mfence_sse2): Ditto. Rename from *sse2_mfence. Enable also for TARGET_64BIT. (mem_thread_fence): Use mfence_sse2. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181590 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | Check in patch/merge from cxx-mem-model Branch | amacleod | 2011-11-06 | 1 | -129/+326 |
| | | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181031 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | PR target/48986 | jakub | 2011-05-17 | 1 | -2/+59 |
| | | | | | | | | | * config/i386/sync.md (sync_old_add<mode>): Relax operand 2 predicate to allow CONST_INT. (*sync_old_add_cmp<mode>): New insn and peephole2 for it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173816 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | PR target/44074 | ro | 2010-05-17 | 1 | -14/+14 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): New test. * configure: Regenerate. * config.in: Regenerate. * config/i386/i386.c (print_operand) <case ;>: Also print ; if !HAVE_AS_IX86_REP_LOCK_PREFIX. Don't emit whitespace. * config/i386/i386.md (*rep_movdi_rex64): Use {%;} after rep. (*rep_movsi): Likewise. (*rep_movsi_rex64): Likewise. (*rep_movqi): Likewise. (*rep_movqi_rex64): Likewise. (*rep_stosdi_rex64): Likewise. (*rep_stossi): Likewise. (*rep_stossi_rex64): Likewise. (*rep_stosqi): Likewise. (*rep_stosqi_rex64): Likewise. (*cmpstrnqi_nz_1): Use {%;} after repz. (*cmpstrnqi_nz_rex_1): Likewise. (*cmpstrnqi_1): Likewise. (*cmpstrnqi_rex_1): Likewise. (*strlenqi_1): Use {%;} after repnz. (*strlenqi_rex_1): Likewise. * config/i386/sync.md (memory_barrier_nosse): Replace {%;| } by {%;} . (*sync_compare_and_swap<mode>): Likewise. (sync_double_compare_and_swap<mode>): Likewise. (*sync_double_compare_and_swapdi_pic): Likewise. (sync_old_add<mode>): Likewise. (sync_add<mode>): Likewise. (sync_sub<mode>): Likewise. (sync_<code><mode>): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159512 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/i386.md (maxmin_int): Rename code attribute from | uros | 2010-04-14 | 1 | -1/+1 |
| | | | | | | | | | | | | | | | | maxminiprefix and update all users. (maxmin_float): Ditto from maxminfprefix. (logic): Ditto from logicprefix. (absneg_mnemonic): Ditto from absnegprefix. * config/i386/mmx.md: Update all users of maxminiprefix, maxminfprefix and loficprefix for rename. * config/i386/sse.md: Ditto. * config/i386/sync.md (sync_<code><mode>): Update for logicprefix rename. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158350 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/i386-protos.h (x86_maybe_negate_const_int): Declare. | uros | 2010-04-06 | 1 | -0/+3 |
| | | | | | | | | | | | | | | | | | | * config/i386/i386.c (x86_maybe_negate_const_int): New. (x86_output_mi_thunk): Use x86_maybe_negate_const_int. * config/i386/i386.md (*add<mode>_1, *addsi_1_zext, *addhi_1, *addhi_1_lea, *addqi_1, *addqi_1_lea, *addqi_1_slp, *add<mode>_2, *addsi_2_zext, *addhi_2, *addqi_2, *add<mode>_3, *addsi_3_zext, *addhi_3, *addqi_3,*add<mode>_5, *addhi_5, *addqi_5): Use x86_maybe_negate_const_int to output insn mnemonic. (*adddi_4, *addsi_4, *addhi_4, *addqi_4): Ditto. Remove overflow check from instruction predicate. Update comments. * config/i386/sync.md (sync_add<mode>): Use x86_maybe_negate_const_int to output insn mnemonic. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158013 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/sync.md (IMODE): Remove mode iterator. | uros | 2009-12-17 | 1 | -65/+41 |
| | | | | | | | | | | | | | | | | | | | | | | | | (modesuffix): Remove mode attribute. (modeconstraint): Ditto. (immconstraint): Ditto. (*sync_compare_and_swap<mode>): Use SWI mode iterator instead of IMODE mode iterator, imodesuffix mode attribute instead of modesuffix, <r> mode attribute instead of modeconstraint and <i> mode attribute instead of immconstraint. (sync_double_compare_and_swap<mode>): Ditto. (sync_old_add<mode>): Ditto. (sync_lock_test_and_set<mode>): Ditto. (sync_add<mode>): Ditto. (sync_sub<mode>): Ditto. (sync_and<mode>): Ditto. (sync_ior<mode>): Ditto. (sync_xor<mode>): Ditto. (sync_<code><mode>): Macroize insn pattern from sync_{and,ior,xor}<mode> using any_logic code iterator. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155304 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | 2009-04-09 Paolo Bonzini <bonzini@gnu.org> | bonzini | 2009-04-09 | 1 | -102/+16 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config/i386/i386.md (cmpcc): New. * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG. (sync_compare_and_swap_cc*): Delete. * config/s390/s390.c (s390_compare_emitted): Remove. (s390_emit_compare): Handle MODE_CC s390_compare_op0 like s390_compare_emitted used to be handled. Assert that modes match. (s390_emit_compare_and_swap): Use s390_emit_compare, do not refer to sync_compare_and_swap_ccsi. * config/s390/s390.h (s390_compare_emitted): Remove. * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0 instead of s390_compare_emitted. (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0 instead of s390_compare_emitted. * config/s390/s390.md (cmpcc): New. (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber CC_REGNUM, do not pretend it's set. (sync_compare_and_swap_cc*): Delete. * config/s390/predicates.md (cc_reg_operand): New. * expr.c (sync_compare_and_swap_cc): Delete. * optabs.h (sync_compare_and_swap_cc): Delete. * optabs.c (prepare_cmp_insn): Ignore which specific CCmode is being used with can_compare_p. (emit_cmp_and_jump_insn_1): Likewise when looking in the optab. (find_cc_set): New. (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc, look for a MODE_CC set instead. Use emit_store_flag. (expand_compare_and_swap_loop): Likewise, with some additional complication to avoid a force_reg when useless. Use emit_cmp_and_jump_insns. * genopinit.c (optabs): Delete sync_compare_and_swap_cc. * doc/md.texi (sync_compare_and_swap_cc): Merge with sync_compare_and_swap documentation. java: 2009-04-09 Paolo Bonzini <bonzini@gnu.org> * builtins.c (compareAndSwapLong_builtin, compareAndSwapInt_builtin, compareAndSwapObject_builtin, VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145825 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | 2009-04-07 Paolo Bonzini <bonzini@gnu.org> | bonzini | 2009-04-07 | 1 | -3/+2 |
| | | | | | | | | | | | | | | * config/i386/i386.c (ix86_compare_emitted): Remove. (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC ix86_compare_op0 like ix86_compare_emitted used to be handled. * config/i386/i386.h (ix86_compare_emitted): Remove. * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0 instead of ix86_compare_emitted. * config/i386/sync.md (sync_compare_and_swap_cc): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145665 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | PR target/39431 | jakub | 2009-03-12 | 1 | -7/+21 |
| | | | | | | | | | | | | | | | | | * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New predicate. * config/i386/sync.md (sync_compare_and_swap<mode>, sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check if operands[1] is cmpxchg8b_pic_memory_operand, if not force address into a register. (sync_double_compare_and_swapdi_pic, sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be cmpxchg8b_pic_memory_operand instead of just memory_operand. * gcc.target/i386/pr39431.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144825 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | Update Copyright years for files modified in 2008 and/or 2009. | jakub | 2009-02-20 | 1 | -1/+1 |
| | | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144324 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/sync.md (memory_barrier_nosse): Disable also for | uros | 2008-11-26 | 1 | -9/+3 |
| | | | | | | | | | | | TARGET_64BIT. Remove special asm template for TARGET_64BIT case. (memory_barrier): Do not generate memory_barrier_nosse instruction for TARGET_64BIT. * config/i386/sse.md (*sse2_mfence): Also enable for TARGET_64BIT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142224 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | PR target/38256 | uros | 2008-11-25 | 1 | -7/+18 |
| | | | | | | | | | * config/i386/sync.md (memory_barrier_nosse): New insn (memory_barrier): Generate memory_barrier_nosse insn for !TARGET_SSE2. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142177 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/i386.md (UNSPECV_CMPXCHG): Rename from | uros | 2008-11-24 | 1 | -13/+31 |
| | | | | | | | | | | | | | UNSPECV_CMPXCHG_[12]. * config/i386/sync.md: Use UNSPECV_CMPXCHG instead of UNSPECV_CMPXCHG_[12]. PR target/36793 * config/i386/sync.md (memory_barrier): New expander. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142160 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | Eliminate trailing whitespace | meissner | 2007-09-19 | 1 | -1/+1 |
| | | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128605 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/i386.h (PRINT_OPERAND_PUNCT_VALID_P): Add ';' code. | uros | 2007-08-23 | 1 | -16/+16 |
| | | | | | | | | | | | | | | | | | | | | | | * config/i386/i386.c (print_operand): Handle ';' code. Output semicolon for TARGET_MACHO. * config/i386/sync.md (*sync_compare_and_swap<mode>): Use '%;' to emit semicolon after 'lock' prefix. (sync_double_compare_and_swap<mode>): Ditto. (*sync_double_compare_and_swapdi_pic): Ditto. (*sync_compare_and_swap_cc<mode>): Ditto. (sync_double_compare_and_swap_cc<mode>): Ditto. (*sync_double_compare_and_swap_ccdi_pic): Ditto. (sync_old_add<mode>): Ditto. (sync_add<mode>): Ditto. (sync_sub<mode>): Ditto. (sync_ior<mode>): Ditto. (sync_and<mode>): Ditto. (sync_xor<mode>): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127728 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * doc/md.texi (Iterators): Renamed from Macros. All contents | hp | 2007-08-22 | 1 | -3/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | changed to reflect rename of respectively define_code_macro and define_mode_macro to define_code_iterator and define_mode_iterator. (Mode Iterators, Code Iterators): Similar. * read-rtl.c (struct iterator_group, struct iterator_traverse_data) (uses_mode_iterator_p, apply_mode_iterator, uses_code_iterator_p) (apply_iterator_to_string, uses_iterator_p, apply_iterator_traverse) (initialize_iterators, find_iterator, check_code_iterator) (map_attr_string, apply_mode_maps, apply_iterator_to_rtx, add_mapping) (read_mapping, read_rtx_1): Similar. * config/alpha/sync.md, config/alpha/alpha.md, config/frv/frv.md, config/s390/s390.md, config/m32c/blkmov.md, config/m32c/m32c.md, config/spu/spu.md, config/sparc/sparc.md, config/sparc/sync.md, config/i386/i386.md, config/i386/mmx.md, config/i386/sse.md, config/i386/sync.md, config/crx/crx.md, config/xtensa/xtensa.md, config/cris/cris.c, config/cris/cris.md, config/ia64/sync.md, config/ia64/div.md, config/ia64/vect.md, config/ia64/ia64.md, config/m68k/m68k.md, config/rs6000/spe.md, config/rs6000/altivec.md, config/rs6000/sync.md, config/rs6000/rs6000.md, config/arm/vec-common.md, config/arm/neon.md, config/arm/iwmmxt.md, config/arm/arm.md, config/mips/mips-dsp.md, config/mips/mips.md, config/vax/vax.md, config/bfin/bfin.md: Similar. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127715 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/i386.md (*rep_movdi_rex64): Emit "rep" prefix on | uros | 2007-08-16 | 1 | -16/+16 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the same line as the instruction for all asm dialects. (*rep_movsi): Ditto. (*rep_movsi_rex64): Ditto. (*rep_movqi): Ditto. (*rep_movqi_rex64): Ditto. (*rep_stosdi_rex64): Ditto. (*rep_stossi): Ditto. (*rep_stossi_rex64): Ditto. (*rep_stosqi): Ditto. (*rep_stosqi_rex64): Ditto. (*cmpstrnqi_nz_1): Ditto. (*cmpstrnqi_nz_rex_1): Ditto. (*cmpstrnqi_1): Ditto. (*cmpstrnqi_rex_1): Ditto. (*strlenqi_1): Ditto. (*strlenqi_rex_1): Ditto. * config/i386/sync.md (*sync_compare_and_swap<mode>): Emit "lock" prefix on the same line as the instruction for all asm dialects. (sync_double_compare_and_swap<mode>): Ditto. (*sync_double_compare_and_swapdi_pic): Ditto. (*sync_compare_and_swap_cc<mode>): Ditto. (sync_double_compare_and_swap_cc<mode>): Ditto. (*sync_double_compare_and_swap_ccdi_pic): Ditto. (sync_old_add<mode>): Ditto. (sync_add<mode>): Ditto. (sync_sub<mode>): Ditto. (sync_ior<mode>): Ditto. (sync_and<mode>): Ditto. (sync_xor<mode>): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127558 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/host-hpux.c: Change copyright header to refer to version 3 of the GNU | nickc | 2007-08-02 | 1 | -5/+4 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | General Public License and to point readers at the COPYING3 file and the FSF's license web page. * config/alpha/predicates.md, config/alpha/vms-ld.c, config/alpha/linux.h, config/alpha/alpha.opt, config/alpha/linux-elf.h, config/alpha/vms.h, config/alpha/elf.h, config/alpha/vms-unwind.h, config/alpha/ev4.md, config/alpha/ev6.md, config/alpha/alpha.c, config/alpha/vms-cc.c, config/alpha/alpha.h, config/alpha/sync.md, config/alpha/openbsd.h, config/alpha/alpha.md, config/alpha/alpha-modes.def, config/alpha/ev5.md, config/alpha/alpha-protos.h, config/alpha/freebsd.h, config/alpha/osf5.h, config/alpha/netbsd.h, config/alpha/vms64.h, config/alpha/constraints.md, config/alpha/osf.h, config/alpha/xm-vms.h, config/alpha/unicosmk.h, config/linux.h, config/frv/predicates.md, config/frv/frv.h, config/frv/linux.h, config/frv/frv.md, config/frv/frv.opt, config/frv/frv-modes.def, config/frv/frv-asm.h, config/frv/frv-protos.h, config/frv/frv-abi.h, config/frv/frv.c, config/s390/tpf.h, config/s390/s390.c, config/s390/predicates.md, config/s390/s390.h, config/s390/linux.h, config/s390/tpf.md, config/s390/tpf.opt, config/s390/2064.md, config/s390/2084.md, config/s390/s390.md, config/s390/s390.opt, config/s390/s390-modes.def, config/s390/fixdfdi.h, config/s390/constraints.md, config/s390/s390-protos.h, config/s390/s390x.h, config/elfos.h, config/dbxcoff.h, config/m32c/predicates.md, config/m32c/cond.md, config/m32c/m32c.c, config/m32c/minmax.md, config/m32c/blkmov.md, config/m32c/m32c-pragma.c, config/m32c/m32c.h, config/m32c/prologue.md, config/m32c/m32c.abi, config/m32c/muldiv.md, config/m32c/bitops.md, config/m32c/mov.md, config/m32c/addsub.md, config/m32c/m32c.md, config/m32c/m32c.opt, config/m32c/t-m32c, config/m32c/m32c-modes.def, config/m32c/jump.md, config/m32c/shift.md, config/m32c/m32c-protos.h, config/libgloss.h, config/spu/spu-protos.h, config/spu/predicates.md, config/spu/spu-builtins.h, config/spu/spu.c, config/spu/spu-builtins.def, config/spu/spu-builtins.md, config/spu/spu.h, config/spu/spu-elf.h, config/spu/constraints.md, config/spu/spu.md, config/spu/spu-c.c, config/spu/spu.opt, config/spu/spu-modes.def, config/spu/t-spu-elf, config/interix.h, config/sparc/hypersparc.md, config/sparc/predicates.md, config/sparc/linux.h, config/sparc/sp64-elf.h, config/sparc/supersparc.md, config/sparc/cypress.md, config/sparc/openbsd1-64.h, config/sparc/openbsd64.h, config/sparc/niagara.md, config/sparc/sparc.md, config/sparc/long-double-switch.opt, config/sparc/ultra3.md, config/sparc/sparc.opt, config/sparc/sync.md, config/sparc/sp-elf.h, config/sparc/sparc-protos.h, config/sparc/ultra1_2.md, config/sparc/biarch64.h, config/sparc/sparc.c, config/sparc/little-endian.opt, config/sparc/sysv4-only.h, config/sparc/sparc.h, config/sparc/linux64.h, config/sparc/freebsd.h, config/sparc/sol2.h, config/sparc/rtemself.h, config/sparc/netbsd-elf.h, config/sparc/vxworks.h, config/sparc/sparc-modes.def, config/sparc/sparclet.md, config/sparc/sysv4.h, config/vx-common.h, config/netbsd-aout.h, config/flat.h, config/m32r/m32r.md, config/m32r/predicates.md, config/m32r/little.h, config/m32r/m32r.c, config/m32r/m32r.opt, config/m32r/linux.h, config/m32r/constraints.md, config/m32r/m32r.h, config/m32r/m32r-protos.h, config/vxworks.opt, config/darwin-c.c, config/darwin.opt, config/i386/i386.h, config/i386/cygming.h, config/i386/linux.h, config/i386/cygwin.h, config/i386/i386.md, config/i386/netware-crt0.c, config/i386/sco5.h, config/i386/mmx.md, config/i386/vx-common.h, config/i386/kaos-i386.h, config/i386/winnt-stubs.c, config/i386/netbsd64.h, config/i386/djgpp.h, config/i386/gas.h, config/i386/sol2.h, config/i386/constraints.md, config/i386/netware-libgcc.c, config/i386/sysv5.h, config/i386/predicates.md, config/i386/geode.md, config/i386/x86-64.h, config/i386/kfreebsd-gnu.h, config/i386/freebsd64.h, config/i386/vxworksae.h, config/i386/pentium.md, config/i386/lynx.h, config/i386/i386elf.h, config/i386/rtemself.h, config/i386/netbsd-elf.h, config/i386/ppro.md, config/i386/k6.md, config/i386/netware.c, config/i386/netware.h, config/i386/i386-modes.def, config/i386/sysv4-cpp.h, config/i386/i386-interix.h, config/i386/cygwin1.c, config/i386/djgpp.opt, config/i386/uwin.h, config/i386/unix.h, config/i386/ptx4-i.h, config/i386/xm-djgpp.h, config/i386/att.h, config/i386/winnt.c, config/i386/beos-elf.h, config/i386/sol2-10.h, config/i386/darwin64.h, config/i386/sse.md, config/i386/i386.opt, config/i386/bsd.h, config/i386/cygming.opt, config/i386/xm-mingw32.h, config/i386/linux64.h, config/i386/openbsdelf.h, config/i386/xm-cygwin.h, config/i386/sco5.opt, config/i386/darwin.h, config/i386/mingw32.h, config/i386/winnt-cxx.c, config/i386/i386-interix3.h, config/i386/nwld.c, config/i386/nwld.h, config/i386/host-cygwin.c, config/i386/cygwin2.c, config/i386/i386-protos.h, config/i386/sync.md, config/i386/openbsd.h, config/i386/host-mingw32.c, config/i386/i386-aout.h, config/i386/nto.h, config/i386/biarch64.h, config/i386/i386-coff.h, config/i386/freebsd.h, config/i386/driver-i386.c, config/i386/knetbsd-gnu.h, config/i386/host-i386-darwin.c, config/i386/vxworks.h, config/i386/crtdll.h, config/i386/i386.c, config/i386/sysv4.h, config/darwin-protos.h, config/linux.opt, config/sol2.c, config/sol2.h, config/sh/symbian.c, config/sh/sh-protos.h, config/sh/linux.h, config/sh/elf.h, config/sh/superh.h, config/sh/sh4.md, config/sh/coff.h, config/sh/newlib.h, config/sh/embed-elf.h, config/sh/symbian-pre.h, config/sh/rtems.h, config/sh/kaos-sh.h, config/sh/sh4a.md, config/sh/constraints.md, config/sh/sh64.h, config/sh/sh.opt, config/sh/symbian-post.h, config/sh/sh-c.c, config/sh/predicates.md, config/sh/sh.c, config/sh/sh.h, config/sh/shmedia.md, config/sh/sh-modes.def, config/sh/little.h, config/sh/sh1.md, config/sh/sh4-300.md, config/sh/superh64.h, config/sh/rtemself.h, config/sh/netbsd-elf.h, config/sh/sh.md, config/sh/vxworks.h, config/usegas.h, config/svr3.h, config/pdp11/pdp11-protos.h, config/pdp11/2bsd.h, config/pdp11/pdp11.md, config/pdp11/pdp11.c, config/pdp11/pdp11.opt, config/pdp11/pdp11-modes.def, config/pdp11/pdp11.h, config/avr/rtems.h, config/avr/avr-protos.h, config/avr/predicates.md, config/avr/constraints.md, config/avr/avr.md, config/avr/avr.c, config/avr/avr.opt, config/avr/avr.h, config/sol2-protos.h, config/dbxelf.h, config/lynx.opt, config/crx/crx.h, config/crx/crx-protos.h, config/crx/crx.md, config/crx/crx.c, config/crx/crx.opt, config/c4x/c4x-c.c, config/c4x/c4x.c, config/c4x/c4x.opt, config/c4x/c4x-modes.def, config/c4x/rtems.h, config/c4x/predicates.md, config/c4x/c4x.h, config/c4x/c4x-protos.h, config/c4x/c4x.md, config/kfreebsd-gnu.h, config/xtensa/predicates.md, config/xtensa/xtensa.c, config/xtensa/linux.h, config/xtensa/xtensa.h, config/xtensa/elf.h, config/xtensa/xtensa.md, config/xtensa/xtensa.opt, config/xtensa/constraints.md, config/xtensa/xtensa-protos.h, config/dbx.h, config/stormy16/predicates.md, config/stormy16/stormy16.md, config/stormy16/stormy16.c, config/stormy16/stormy16.opt, config/stormy16/stormy16.h, config/stormy16/stormy16-protos.h, config/host-solaris.c, config/fr30/fr30.h, config/fr30/predicates.md, config/fr30/fr30-protos.h, config/fr30/fr30.md, config/fr30/fr30.c, config/fr30/fr30.opt, config/vxworksae.h, config/sol2-c.c, config/lynx.h, config/m68hc11/m68hc11-protos.h, config/m68hc11/predicates.md, config/m68hc11/m68hc11.md, config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.opt, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h, config/openbsd-oldgas.h, config/host-linux.c, config/interix3.h, config/cris/cris.c, config/cris/predicates.md, config/cris/linux.h, config/cris/cris.h, config/cris/aout.h, config/cris/cris.md, config/cris/linux.opt, config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt, config/cris/cris-protos.h, config/vxworks-dummy.h, config/netbsd.h, config/netbsd-elf.h, config/iq2000/iq2000.h, config/iq2000/predicates.md, config/iq2000/iq2000-protos.h, config/iq2000/iq2000.md, config/iq2000/iq2000.c, config/iq2000/iq2000.opt, config/host-darwin.c, config/mt/mt.md, config/mt/mt.c, config/mt/mt.opt, config/mt/t-mt, config/mt/mt.h, config/mt/mt-protos.h, config/svr4.h, config/host-darwin.h, config/chorus.h, config/mn10300/mn10300.c, config/mn10300/mn10300.opt, config/mn10300/predicates.md, config/mn10300/mn10300.h, config/mn10300/linux.h, config/mn10300/constraints.md, config/mn10300/mn10300-protos.h, config/mn10300/mn10300.md, config/ia64/predicates.md, config/ia64/itanium1.md, config/ia64/unwind-ia64.h, config/ia64/ia64-c.c, config/ia64/sync.md, config/ia64/ia64.c, config/ia64/itanium2.md, config/ia64/ia64.h, config/ia64/vect.md, config/ia64/freebsd.h, config/ia64/ia64.md, config/ia64/ia64-modes.def, config/ia64/constraints.md, config/ia64/hpux.h, config/ia64/ia64-protos.h, config/windiss.h, config/gofast.h, config/rtems.h, config/sol2-10.h, config/m68k/predicates.md, config/m68k/m68k.md, config/m68k/linux.h, config/m68k/m68k-modes.def, config/m68k/print-sysroot-suffix.sh, config/m68k/m68k-protos.h, config/m68k/coff.h, config/m68k/m68k-none.h, config/m68k/ieee.opt, config/m68k/openbsd.h, config/m68k/m68k-aout.h, config/m68k/m68k.opt, config/m68k/m68020-elf.h, config/m68k/m68kelf.h, config/m68k/m68k-devices.def, config/m68k/uclinux-oldabi.h, config/m68k/m68k.c, config/m68k/constraints.md, config/m68k/rtemself.h, config/m68k/netbsd-elf.h, config/m68k/m68k.h, config/m68k/uclinux.h, config/rs6000/power4.md, config/rs6000/host-darwin.c, config/rs6000/6xx.md, config/rs6000/linux.h, config/rs6000/eabi.h, config/rs6000/aix41.opt, config/rs6000/xcoff.h, config/rs6000/secureplt.h, config/rs6000/linuxspe.h, config/rs6000/eabialtivec.h, config/rs6000/8540.md, config/rs6000/darwin8.h, config/rs6000/kaos-ppc.h, config/rs6000/windiss.h, config/rs6000/603.md, config/rs6000/aix41.h, config/rs6000/cell.md, config/rs6000/mpc.md, config/rs6000/aix43.h, config/rs6000/beos.h, config/rs6000/gnu.h, config/rs6000/rtems.h, config/rs6000/aix.opt, config/rs6000/darwin.md, config/rs6000/darwin64.h, config/rs6000/default64.h, config/rs6000/7xx.md, config/rs6000/darwin.opt, config/rs6000/spe.md, config/rs6000/rs6000.opt, config/rs6000/rs6000-c.c, config/rs6000/rios2.md, config/rs6000/linuxaltivec.h, config/rs6000/7450.md, config/rs6000/linux64.h, config/rs6000/constraints.md, config/rs6000/440.md, config/rs6000/darwin.h, config/rs6000/host-ppc64-darwin.c, config/rs6000/rs6000.c, config/rs6000/aix52.h, config/rs6000/rs6000.h, config/rs6000/power6.md, config/rs6000/predicates.md, config/rs6000/altivec.md, config/rs6000/aix64.opt, config/rs6000/rios1.md, config/rs6000/rs6000-modes.def, config/rs6000/rs64.md, config/rs6000/eabisim.h, config/rs6000/sysv4le.h, config/rs6000/darwin7.h, config/rs6000/dfp.md, config/rs6000/linux64.opt, config/rs6000/sync.md, config/rs6000/vxworksae.h, config/rs6000/power5.md, config/rs6000/lynx.h, config/rs6000/biarch64.h, config/rs6000/rs6000.md, config/rs6000/sysv4.opt, config/rs6000/eabispe.h, config/rs6000/e500.h, config/rs6000/freebsd.h, config/rs6000/rs6000-protos.h, config/rs6000/netbsd.h, config/rs6000/e500-double.h, config/rs6000/aix.h, config/rs6000/vxworks.h, config/rs6000/40x.md, config/rs6000/aix51.h, config/rs6000/sysv4.h, config/arc/arc-protos.h, config/arc/arc.md, config/arc/arc.c, config/arc/arc.opt, config/arc/arc-modes.def, config/arc/arc.h, config/mcore/mcore-elf.h, config/mcore/mcore-protos.h, config/mcore/predicates.md, config/mcore/mcore.md, config/mcore/mcore.c, config/mcore/mcore.opt, config/mcore/mcore.h, config/mcore/mcore-pe.h, config/darwin.c, config/freebsd-nthr.h, config/score/predicates.md, config/score/score-version.h, config/score/score-protos.h, config/score/misc.md, config/score/elf.h, config/score/score.c, config/score/mac.md, config/score/score7.md, config/score/score.h, config/score/score-conv.h, config/score/score-mdaux.c, config/score/score.md, config/score/score.opt, config/score/score-modes.def, config/score/score-mdaux.h, config/score/mul-div.S, config/arm/uclinux-elf.h, config/arm/semi.h, config/arm/ecos-elf.h, config/arm/arm1020e.md, config/arm/symbian.h, config/arm/linux-elf.h, config/arm/arm1026ejs.md, config/arm/arm1136jfs.md, config/arm/elf.h, config/arm/aout.h, config/arm/arm.c, config/arm/thumb2.md, config/arm/vec-common.md, config/arm/coff.h, config/arm/strongarm-pe.h, config/arm/arm.h, config/arm/cortex-a8-neon.md, config/arm/semiaof.h, config/arm/cortex-a8.md, config/arm/uclinux-eabi.h, config/arm/arm-modes.def, config/arm/linux-eabi.h, config/arm/rtems-elf.h, config/arm/neon-schedgen.ml, config/arm/arm-cores.def, config/arm/arm-protos.h, config/arm/vfp.md, config/arm/aof.h, config/arm/linux-gas.h, config/arm/wince-pe.h, config/arm/neon.md, config/arm/constraints.md, config/arm/neon.ml, config/arm/xscale-elf.h, config/arm/strongarm-coff.h, config/arm/arm.opt, config/arm/arm926ejs.md, config/arm/predicates.md, config/arm/iwmmxt.md, config/arm/arm_neon.h, config/arm/unknown-elf.h, config/arm/kaos-arm.h, config/arm/bpabi.h, config/arm/pe.opt, config/arm/neon-testgen.ml, config/arm/arm.md, config/arm/xscale-coff.h, config/arm/pe.c, config/arm/arm-generic.md, config/arm/pe.h, config/arm/kaos-strongarm.h, config/arm/freebsd.h, config/arm/neon-docgen.ml, config/arm/netbsd.h, config/arm/fpa.md, config/arm/strongarm-elf.h, config/arm/cirrus.md, config/arm/netbsd-elf.h, config/arm/vxworks.h, config/arm/neon-gen.ml, config/kaos.h, config/darwin-driver.c, config/pa/predicates.md, config/pa/pa64-hpux.h, config/pa/pa-hpux.opt, config/pa/som.h, config/pa/pa-hpux1010.opt, config/pa/pa-hpux1111.opt, config/pa/pa-pro-end.h, config/pa/elf.h, config/pa/fptr.c, config/pa/pa64-linux.h, config/pa/pa.md, config/pa/pa.opt, config/pa/pa-hpux.h, config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, config/pa/pa-hpux1010.h, config/pa/pa-protos.h, config/pa/pa-osf.h, config/pa/pa-hpux1111.h, config/pa/pa-64.h, config/pa/milli64.S, config/pa/pa.c, config/pa/pa-linux.h, config/pa/pa.h, config/pa/pa32-linux.h, config/pa/pa64-hpux.opt, config/pa/pa64-regs.h, config/pa/pa-modes.def, config/pa/constraints.md, config/darwin9.h, config/mips/4100.md, config/mips/linux.h, config/mips/elfoabi.h, config/mips/elf.h, config/mips/sdb.h, config/mips/windiss.h, config/mips/rtems.h, config/mips/3000.md, config/mips/iris5.h, config/mips/5000.md, config/mips/7000.md, config/mips/9000.md, config/mips/4600.md, config/mips/linux64.h, config/mips/elforion.h, config/mips/constraints.md, config/mips/generic.md, config/mips/predicates.md, config/mips/4300.md, config/mips/mips-ps-3d.md, config/mips/iris.h, config/mips/24k.md, config/mips/mips.md, config/mips/mips.opt, config/mips/4k.md, config/mips/5k.md, config/mips/vr4120-div.S, config/mips/openbsd.h, config/mips/iris6.h, config/mips/4000.md, config/mips/mips-protos.h, config/mips/6000.md, config/mips/mips.c, config/mips/mips.h, config/mips/r3900.h, config/mips/74k.md, config/mips/netbsd.h, config/mips/vxworks.h, config/mips/mips-modes.def, config/mips/vr.h, config/soft-fp/t-softfp, config/openbsd.h, config/ptx4.h, config/freebsd-spec.h, config/vax/vax.c, config/vax/openbsd.h, config/vax/vax.h, config/vax/elf.h, config/vax/vax.md, config/vax/bsd.h, config/vax/vax.opt, config/vax/vax-modes.def, config/vax/openbsd1.h, config/vax/netbsd.h, config/vax/vax-protos.h, config/vax/netbsd-elf.h, config/vax/vaxv.h, config/vax/ultrix.h, config/freebsd.h, config/h8300/rtems.h, config/h8300/predicates.md, config/h8300/h8300.c, config/h8300/h8300.h, config/h8300/elf.h, config/h8300/h8300.md, config/h8300/h8300.opt, config/h8300/coff.h, config/h8300/h8300-protos.h, config/v850/v850.md, config/v850/predicates.md, config/v850/v850-c.c, config/v850/v850.c, config/v850/v850.opt, config/v850/v850.h, config/v850/v850-protos.h, config/vxworks.c, config/knetbsd-gnu.h, config/sol2-6.h, config/vxworks.h, config/mmix/mmix.h, config/mmix/predicates.md, config/mmix/mmix-protos.h, config/mmix/mmix.md, config/mmix/mmix.c, config/mmix/mmix.opt, config/mmix/mmix-modes.def, config/bfin/bfin.opt, config/bfin/rtems.h, config/bfin/bfin-modes.def, config/bfin/predicates.md, config/bfin/bfin-protos.h, config/bfin/bfin.c, config/bfin/bfin.h, config/bfin/bfin.md: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@127157 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * builtins.c (expand_builtin_sync_operation, | matz | 2007-03-19 | 1 | -2/+13 |
| | | | | | | | | | | | | | expand_builtin_compare_and_swap, expand_builtin_lock_test_and_set): Care for extending CONST_INTs correctly. * config/i386/sync.md (sync_double_compare_and_swapdi_pic, sync_double_compare_and_swap_ccdi_pic): Use "SD" as constraint for operand 3. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123064 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | PR target/28909 | uros | 2006-10-25 | 1 | -12/+32 |
| | | | | | | | | | | | | | | | | | | | | | | | * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>"): Use inc and dec instructions for TARGET_USE_INCDEC. ("*sync_compare_and_swap<mode>"): Fix -masm=intel template. ("sync_double_compare_and_swap<mode>"): Likewise. ("*sync_double_compare_and_swapdi_pic"): Likewise. ("*sync_compare_and_swap_cc<mode>"): Likewise. ("sync_double_compare_and_swap_cc<mode>"): Likewise. ("*sync_double_compare_and_swap_ccdi_pic"): Likewise. ("sync_old_add<mode>"): Likewise. ("sync_lock_test_and_set<mode>"): Likewise. ("sync_lock_test_and_set<mode>"): Likewise. ("sync_add<mode>"): Likewise. ("sync_sub<mode>"): Likewise. ("sync_ior<mode>"): Likewise. ("sync_and<mode>"): Likewise. ("sync_xor<mode>"): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118028 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/sync.md ("sync_add<mode>", "sync_sub<mode>", | uros | 2006-10-06 | 1 | -5/+5 |
| | | | | | | | | | "sync_ior<mode>", "sync_and<mode>", "sync_xor<mode>"): Use <modeconstraint> instead of "r" as operand 1 constraint. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117499 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/sync.md (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, | bernds | 2006-02-06 | 1 | -6/+6 |
| | | | | | | | | sync_and<mode>, sync_xor<mode>): Operand 0 is in-out. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110645 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | Merge from gomp-branch. | rth | 2005-12-23 | 1 | -7/+132 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * builtins.def: Move all DEF_SYNC_BUILTIN to ... * sync-builtins.def: ... new file. (BUILT_IN_FETCH_AND_ADD_16, BUILT_IN_FETCH_AND_SUB_16, BUILT_IN_FETCH_AND_OR_16, BUILT_IN_FETCH_AND_AND_16, BUILT_IN_FETCH_AND_XOR_16, BUILT_IN_FETCH_AND_NAND_16, BUILT_IN_ADD_AND_FETCH_16, BUILT_IN_SUB_AND_FETCH_16, BUILT_IN_OR_AND_FETCH_16, BUILT_IN_AND_AND_FETCH_16, BUILT_IN_XOR_AND_FETCH_16, BUILT_IN_NAND_AND_FETCH_16, BUILT_IN_BOOL_COMPARE_AND_SWAP_16, BUILT_IN_VAL_COMPARE_AND_SWAP_16, BUILT_IN_LOCK_TEST_AND_SET_16, BUILT_IN_LOCK_RELEASE_16): New builtins. * builtin-types.def (BT_I16, BT_FN_I16_VPTR_I16, BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add. * builtins.c (expand_builtin): Handle sync BUILT_IN_*_16 builtins. * c-common.c (enum c_builtin_type): Move to top-level from c_common_nodes_and_builtins enum builtin_type. (builtin_types): Move from c_common_nodes_and_builtins. (def_fn_type): New. (c_common_nodes_and_builtins): Use it. (def_builtin_1): Check for error_mark_node. (sync_resolve_size): Handle also 128 bit sync builtins. * Makefile.in (BUILTINS_DEF): New. Use it instead of builtins.def. * config/i386/i386.h (x86_cmpxchg8b, x86_cmpxchg16b): New decls. (TARGET_CMPXCHG8B, TARGET_CMPXCHG16B): Define. * config/i386/i386.c (x86_cmpxchg8b, x86_cmpxchg16b): New variables. * config/i386/sync.md (CASMODE, DCASMODE): New mode macros. (doublemodesuffix, DCASHMODE): New mode attrs. (sync_compare_and_swap<mode>): Change into expand, use CASMODE instead of IMODE, if mode is wider than a word, expand into sync_double_compare_and_swap*. (*sync_compare_and_swap<mode>): New insn. (sync_double_compare_and_swap<mode>): Likewise. (*sync_double_compare_and_swapdi_pic): Likewise. (sync_compare_and_swap_cc<mode>): Use CASMODE instead of IMODE, if mode is wider than a word, expand into sync_double_compare_and_swap_cc*. (sync_double_compare_and_swap_cc<mode>): New insn. (*sync_double_compare_and_swap_ccdi_pic): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108997 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | Update FSF address. | kcook | 2005-06-25 | 1 | -2/+2 |
| | | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101314 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * builtins.c (expand_builtin_sync_operation): Revert last change. | rth | 2005-04-20 | 1 | -16/+13 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * optabs.c (expand_bool_compare_and_swap): Compare vs old value, not vs new value. (expand_compare_and_swap_loop): Likewise. (expand_sync_operation): Remove fallback from NAND to AND; invert memory operand when expanding from cmpxchg. (expand_sync_fetch_operation): Likewise. * doc/extend.texi (Atomic Builtins): Fix docs for nand and compare-and-swap. * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand when implementing NAND. Fix double-add for AFTER. * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand. (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise. (sync_compare_and_swap<I48MODE>): Fix compare vs zero. Return old memory value. (sync_lock_test_and_set<I48MODE>): Remove extra label and last memory barrier. * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern to return old memory value. (sync_compare_and_swap_cc<IMODE>): Likewise. * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early return pre-reload. Don't consider output or anti dependencies. * config/ia64/sync.md (IMODE): New. (modesuffix): Add QI and HI. (memory_barrier): Simplify expansion. (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE. (cmpxchg_acq_<IMODE>): Likewise. (sync_lock_test_and_set<IMODE>): Likewise. (sync_lock_release<IMODE>): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98436 138bc75d-0d04-0410-961f-82ee72b054a4 | ||||
* | * config/i386/i386.c (x86_cmpxchg, x86_xadd): New. | rth | 2005-04-14 | 1 | -0/+158 |
(ix86_compare_emitted): New. (ix86_expand_compare): Use ix86_compare_emitted if set. (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0 and ix86_compare_op0 are set. * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare. (TARGET_CMPXCHG, TARGET_XADD): New. (ix86_compare_emitted): Declare. * config/i386/i386.md: Include sync.md (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New. (UNSPECV_XCHG, UNSPECV_LOCK): New. * config/i386/sync.md: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98155 138bc75d-0d04-0410-961f-82ee72b054a4 |