diff options
Diffstat (limited to 'gcc/config/pa')
-rw-r--r-- | gcc/config/pa/pa-hpux.h | 14 | ||||
-rw-r--r-- | gcc/config/pa/pa.cc | 3 |
2 files changed, 15 insertions, 2 deletions
diff --git a/gcc/config/pa/pa-hpux.h b/gcc/config/pa/pa-hpux.h index 74e30ed..1439447 100644 --- a/gcc/config/pa/pa-hpux.h +++ b/gcc/config/pa/pa-hpux.h @@ -114,3 +114,17 @@ along with GCC; see the file COPYING3. If not see #undef TARGET_LIBC_HAS_FUNCTION #define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function + +/* Assume we have libatomic if sync libcalls are disabled. */ +#undef TARGET_HAVE_LIBATOMIC +#define TARGET_HAVE_LIBATOMIC (!flag_sync_libcalls) + +/* The SYNC operations are implemented as library functions, not + INSN patterns. As a result, the HAVE defines for the patterns are + not defined. We need to define them to generate the corresponding + __GCC_HAVE_SYNC_COMPARE_AND_SWAP_* and __GCC_ATOMIC_*_LOCK_FREE + defines. */ +#define HAVE_sync_compare_and_swapqi (flag_sync_libcalls) +#define HAVE_sync_compare_and_swaphi (flag_sync_libcalls) +#define HAVE_sync_compare_and_swapsi (flag_sync_libcalls) +#define HAVE_sync_compare_and_swapdi (flag_sync_libcalls) diff --git a/gcc/config/pa/pa.cc b/gcc/config/pa/pa.cc index 9542d3b..b63ccf1 100644 --- a/gcc/config/pa/pa.cc +++ b/gcc/config/pa/pa.cc @@ -1123,8 +1123,7 @@ legitimize_tls_address (rtx addr) else emit_insn (gen_tld_load (tmp, addr)); t1 = hppa_tls_call (tmp); - insn = get_insns (); - end_sequence (); + insn = end_sequence (); t2 = gen_reg_rtx (Pmode); emit_libcall_block (insn, t2, t1, gen_rtx_UNSPEC (Pmode, gen_rtvec (1, const0_rtx), |