summaryrefslogtreecommitdiffstats
path: root/libitm/config/x86
Commit message (Collapse)AuthorAgeFilesLines
* libitm: Remove unused PAGE_SIZE macrosrth2014-04-021-4/+0
| | | | | | | | * config/alpha/target.h (PAGE_SIZE, FIXED_PAGE_SIZE): Remove. * config/arm/target.h, config/sh/target.h: Likewise. * config/sparc/target.h, config/x86/target.h: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209027 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright years in libitm/rsandifo2014-01-025-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206298 138bc75d-0d04-0410-961f-82ee72b054a4
* Add custom HTM fast path for RTM on x86_64.torvald2013-08-302-12/+93
| | | | | | | | | | | | | | | | | | * libitm_i.h (gtm_thread): Assign an asm name to serial_lock. (htm_fastpath): Assign an asm name. * libitm.h (_ITM_codeProperties): Add non-ABI flags used by custom HTM fast paths. (_ITM_actions): Likewise. * config/x86/target.h (HTM_CUSTOM_FASTPATH): Enable custom fastpath on x86_64. * config/x86/sjlj.S (_ITM_beginTransaction): Add custom HTM fast path. * config/posix/rwlock.h (gtm_rwlock): Update comments. Move summary field to the start of the structure. * config/linux/rwlock.h (gtm_rwlock): Update comments. * beginend.cc (gtm_thread::begin_transaction): Add retry policy handling for custom HTM fast paths. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202101 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Handle HTM fastpath in status query functions.torvald2013-06-201-0/+7
| | | | | | | | * query.cc (_ITM_inTransaction): Abort when using the HTM fastpath. (_ITM_getTransactionId): Same. * config/x86/target.h (htm_transaction_active): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200251 138bc75d-0d04-0410-961f-82ee72b054a4
* Update copyright in libitm.rsandifo2013-02-035-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@195697 138bc75d-0d04-0410-961f-82ee72b054a4
* Add HTM fastpath and use Intel RTM for it on x86.torvald2012-11-091-15/+66
| | | | | | | | | | | | | | | | | | | * beginend.cc (htm_fastpath): New. (gtm_thread::begin_transaction, _ITM_commitTransaction, _ITM_commitTransactionEH): Add HTM fastpath handling. * config/linux/rwlock.h (gtm_rwlock.is_write_locked): New. * config/posix/rwlock.h (gtm_rwlock.is_write_locked): New. * config/x86/target.h (htm_available, htm_init, htm_begin_success, htm_begin, htm_commit, htm_abort, htm_abort_should_retry): New. * configure.tgt: Add -mrtm to XCFLAGS. * method-serial.cc (htm_mg, o_htm_mg, htm_dispatch, dispatch_htm): New. (gtm_thread::serialirr_mode): Add HTM fastpath handling. * libitm_i.h (htm_fastpath, dispatch_htm): Declare. * retry.cc (parse_default_method): Add HTM method parsing. (gtm_thread::number_of_threads_changed): Use HTM by default if available. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193369 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/x86/target.h (struct gtm_jmpbuf): Merge x86_64uros2012-10-022-8/+3
| | | | | | | | | and ia32 declarations some more. * config/x86/sjlj.S (_ITM_beginTransaction): Move ret to common code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@191955 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/uros2012-07-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | 2012-07-03 Uros Bizjak <ubizjak@gmail.com> * config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause. libgomp/ 2012-07-03 Uros Bizjak <ubizjak@gmail.com> * config/linux/x86/futex.h (cpu_relax): Use __builtin_ia32_pause. * testsuite/libgomp.c/sort-1.c (busy_wait): Ditto. libitm/ 2012-07-03 Uros Bizjak <ubizjak@gmail.com> * config/x86/target.h (cpu_relax): Use __builtin_ia32_pause. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189194 138bc75d-0d04-0410-961f-82ee72b054a4
* Use long long in gtm_jmpbuf for x86-64hjl2012-04-041-7/+7
| | | | | | | | | | | 2012-04-04 H.J. Lu <hongjiu.lu@intel.com> PR libitm/52854 * config/x86/target.h (gtm_jmpbuf): Replace long with long long for x86-64. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@186140 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/x86/target.h (GTM_longjmp): Correct the .cfi corrections.rth2012-02-141-5/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184227 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/x86/target.h (GTM_longjmp): Correct .cfi directives.uros2012-02-141-3/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184220 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/x86/target.h (GTM_longjmp): Jump indirect from memory address.uros2012-02-141-6/+4
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184198 138bc75d-0d04-0410-961f-82ee72b054a4
* * config/x86/target.h (gtm_jmpbuf) [__x86_64__]: Move rip to theuros2012-01-242-19/+17
| | | | | | | | | | | | end of structure. * config/x86/sjlj.S (_ITM_beginTransaction) [__x86_64__]: Update offset values. Do not copy return address. Decrement stack by 56 bytes only. (GTM_longjump) [__x86_64__]: Update offset values. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183467 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libitm/51830uros2012-01-231-0/+1
| | | | | | | | | | | | | | | * builtin-types.def (BT_FN_UINT_UINT_VAR): New. * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR. libitm/ChangeLog: PR libitm/51830 * config/x86/sjlj.S (_ITM_beginTransaction) [!__x86_64__]: Load the first function argument to %eax. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183435 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Conversion to c++11 atomics.rth2011-12-131-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | * local_atomic: New file. * libitm_i.h: Include it. (gtm_thread::shared_state): Use atomic template. * beginend.cc (GTM::gtm_clock): Use atomic template. (global_tid): Use atomic template if 64-bit atomics available. (gtm_thread::gtm_thread): Update shared_state access. (gtm_thread::trycommit): Likewise. (choose_code_path): Update global_tid access. * method-gl.cc (gl_mg::orec): Use atomic template. Update all users. * stmlock.h (GTM::gtm_clock): Use atomic template. (gtm_get_clock, gtm_inc_clock): Update accesses. * config/linux/rwlock.cc (gtm_rwlock::read_lock): Remove redundant __sync_synchronize after atomic shared_state access. * config/posix/rwlock.cc (gtm_rwlock::read_lock): Likewise. (gtm_rwlock::write_lock_generic): Likewise. (gtm_rwlock::read_unlock): Likewise. * config/alpha/target.h (atomic_read_barrier): Remove. (atomic_write_barrier): Remove. * config/x86/target.h (atomic_read_barrier): Remove. (atomic_write_barrier): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182294 138bc75d-0d04-0410-961f-82ee72b054a4
* Swap the action and jmpbuf arguments to GTM_longjmprth2011-11-301-10/+9
| | | | | | | | | | | | | | On several ABIs, the first register parameter is the same as the return value register. Moving the action parameter first avoids the need for register shuffling on these targets. * libitm_i.h (GTM_longjmp): Swap first and second arguments. * beginend.c (_ITM_abortTransaction): Update to match. (GTM::gtm_thread::restart): Likewise. * config/alpha/sjlj.S (GTM_longjmp): Likewise. * config/x86/sjlj.S (GTM_longjmp): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181863 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm:iains2011-11-221-18/+39
| | | | | | | | | | | | | | | * config/x86/sjlj.S (CONCAT1, CONCAT2, SYM): Respond to __USER_LABEL_PREFIX__ for targets that use it. TYPE, SIZE, HIDDEN): New macros to assist on non-elf targets. (_ITM_beginTransaction): Use SYM, TYPE, SIZE macros to assist in portability to non-elf targets. (GTM_longjmp): LIkewise. * libitm_i.h (begin_transaction): Apply __USER_LABEL_PREFIX__ where required. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181612 138bc75d-0d04-0410-961f-82ee72b054a4
* Support libitm on Solaris 8 and 9/x86 with Sun asro2011-11-181-0/+12
| | | | | | | | | | * config/generic/asmcfi.h: Fix comment. * config/x86/sjlj.S (_ITM_beginTransaction): Provide ELF PIC code sequence without .hidden support, error for non-ELF targets. (GTM_longjmp) [__ELF__]: Only use .hidden if HAVE_ATTRIBUTE_VISIBILITY. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181481 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Don't add -mavx if the assembler doesn't support avx.rth2011-11-101-12/+8
| | | | | | | | | * config/x86/x86_avx.cc: Remove #undef __AVX__ hack. Tidy comments. * Makefile.am (x86_avx.lo): Only add -mavx if ARCH_X86_AVX. * configure.ac (ARCH_X86_AVX): New conditional. * Makefile.in, configure: Rebuild. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181261 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Work around assembler missing AVX insns.rth2011-11-101-0/+59
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181246 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Remove unused code.rth2011-11-095-569/+2
| | | | | | In particular, unused code that's presenting portability problems. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181241 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Avoid non-portable x86 branch prediction mnemonic.rth2011-11-091-3/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181233 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: de-ELF-ize x86/sjlj.S.rth2011-11-091-5/+14
| | | | | | | * config/x86/sjlj.S: Protect elf directives with __ELF__. Protect .note.GNU-stack with __linux__. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181229 138bc75d-0d04-0410-961f-82ee72b054a4
* libitm: Configure for gas cfi pseudo ops.rth2011-11-091-12/+15
| | | | | | | | | | | * asmcfi.m4: New file. * configure.ac (GCC_AS_CFI_PSEUDO_OP): Test it. * configure, aclocal.m4, config.h.in: Rebuild. * config/generic/asmcfi.h: New file. * config/x86/sjlj.S: Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181224 138bc75d-0d04-0410-961f-82ee72b054a4
* Merge from transactional-memory branch.aldyh2011-11-087-0/+972
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181154 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud