aboutsummaryrefslogtreecommitdiff
path: root/libgcc
AgeCommit message (Collapse)AuthorFilesLines
2019-11-01RISC-V: Build soft-float divide routines for -mno-fdiv.Jim Wilson2-0/+21
Using -mno-fdiv gives linker errors unless we build the missing divide routines in libgcc always. There is at least one university project designing RISC-V parts without FP divide that wants to use the option. libgcc/ * config/riscv/t-softfp32 (softfp_extra): Add FP divide routines From-SVN: r277723
2019-10-23lib2hw_mul.S: Fix wrong syntax in branch instruction.Jozef Lawrynowicz3-67/+118
2019-10-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> * config/msp430/lib2hw_mul.S: Fix wrong syntax in branch instruction. s/RESULT_LO/RESLO, s/RESULT_HI/RESHI, s/MPY_OP1/MPY, s/MPY_OP1_S/MPYS, s/MAC_OP1/MAC, s/MPY_OP2/OP2, s/MAC_OP2/OP2. Define symbols for 32-bit and f5series hardware multiply register addresses. Replace hard-coded register addresses with symbols. Fix "_mspabi*" typo. Fix whitespace. * config/msp430/lib2mul.c: Add comment. From-SVN: r277340
2019-10-15fptr.c (_dl_read_access_allowed): Change argument to unsigned int.John David Anglin2-6/+18
* config/pa/fptr.c (_dl_read_access_allowed): Change argument to unsigned int. Adjust callers. (__canonicalize_funcptr_for_compare): Change plabel type to volatile unsigned int *. Load relocation offset before function pointer. Add barrier to ensure ordering. From-SVN: r277015
2019-10-12lib2funcs.S (__gcc_plt_call): Load branch target to %r21.John David Anglin3-14/+30
* config/pa/lib2funcs.S (__gcc_plt_call): Load branch target to %r21. Load PIC register after branch target. Fix white space. * config/pa/milli64.S ($$dyncall): Separate LINUX and non LINUX implementations. Load PIC register after branch target. Don't clobber function pointer when it points to function descriptor. Use nullification instead of branch in LINUX implementation. From-SVN: r276925
2019-10-03fptr.c: Disable -Warray-bounds warning.John David Anglin2-0/+9
* config/pa/fptr.c: Disable -Warray-bounds warning. From-SVN: r276556
2019-09-25libgcc: Rebuild autoconf filesRichard Henderson2-18/+9
* config.in, configure: Re-rebuild with stock autoconf 2.69, not the ubuntu modified 2.69. From-SVN: r276135
2019-09-25aarch64: Configure for sys/auxv.h in libgcc for lse-init.cRichard Henderson5-9/+37
PR target/91833 * config/aarch64/lse-init.c: Include auto-target.h. Disable initialization if !HAVE_SYS_AUXV_H. * configure.ac (AC_CHECK_HEADERS): Add sys/auxv.h. * config.in, configure: Rebuild. From-SVN: r276134
2019-09-25aarch64: Fix store-exclusive in load-operate LSE helpersRichard Henderson2-2/+8
PR target/91834 * config/aarch64/lse.S (LDNM): Ensure STXR output does not overlap the inputs. From-SVN: r276133
2019-09-25[AARCH64] Add support for new control bits CTR_EL0.DIC and CTR_EL0.IDCShaokun Zhang2-21/+41
The DCache clean & ICache invalidation requirements for instructions to be data coherence are discoverable through new fields in CTR_EL0. Let's support the two bits if they are enabled, the CPU core will not execute the unnecessary DCache clean or Icache Invalidation instructions. 2019-09-25 Shaokun Zhang <zhangshaokun@hisilicon.com> * config/aarch64/sync-cache.c (__aarch64_sync_cache_range): Add support for CTR_EL0.IDC and CTR_EL0.DIC. From-SVN: r276122
2019-09-20Revert [ARM/FDPIC v6 13/24] [ARM] FDPIC: Force LSB bit for PC in Cortex-M ↵Christophe Lyon2-5/+9
architecture This is causing regressions when mixing with user code compiled in ARM mode. 2019-09-20 Christophe Lyon <christophe.lyon@st.com> Revert: 2019-09-10 Christophe Lyon <christophe.lyon@st.com> Mickaël Guêné <mickael.guene@st.com> * config/arm/unwind-arm.c (_Unwind_VRS_Set): Handle thumb-only architecture. From-SVN: r276001
2019-09-19aarch64: Add out-of-line functions for LSE atomicsRichard Henderson5-0/+335
This is the libgcc part of the interface -- providing the functions. Rationale is provided at the top of libgcc/config/aarch64/lse.S. * config/aarch64/lse-init.c: New file. * config/aarch64/lse.S: New file. * config/aarch64/t-lse: New file. * config.host: Add t-lse to all aarch64 tuples. From-SVN: r275967
2019-09-10[ARM/FDPIC v6 13/24] [ARM] FDPIC: Force LSB bit for PC in Cortex-M architectureChristophe Lyon2-1/+11
Without this, when we are unwinding across a signal frame we can jump to an even address which leads to an exception. This is needed in __gnu_persnality_sigframe_fdpic() when restoring the PC from the signal frame since the PC saved by the kernel has the LSB bit set to zero. 2019-09-10 Christophe Lyon <christophe.lyon@st.com> Mickaël Guêné <mickael.guene@st.com> libgcc/ * config/arm/unwind-arm.c (_Unwind_VRS_Set): Handle thumb-only architecture. Co-Authored-By: Mickaël Guêné <mickael.guene@st.com> From-SVN: r275575
2019-09-10[ARM/FDPIC v6 11/24] [ARM] FDPIC: Add support to unwind FDPIC signal frameChristophe Lyon2-0/+135
2019-09-10 Christophe Lyon <christophe.lyon@st.com> Mickaël Guêné <mickael.guene@st.com> libgcc/ * unwind-arm-common.inc (ARM_SET_R7_RT_SIGRETURN) (THUMB2_SET_R7_RT_SIGRETURN, FDPIC_LDR_R12_WITH_FUNCDESC) (FDPIC_LDR_R9_WITH_GOT, FDPIC_LDR_PC_WITH_RESTORER) (FDPIC_FUNCDESC_OFFSET, ARM_NEW_RT_SIGFRAME_UCONTEXT) (ARM_UCONTEXT_SIGCONTEXT, ARM_SIGCONTEXT_R0, FDPIC_T2_LDR_R12_WITH_FUNCDESC) (FDPIC_T2_LDR_R9_WITH_GOT, FDPIC_T2_LDR_PC_WITH_RESTORER): New. (__gnu_personality_sigframe_fdpic): New. (get_eit_entry): Add FDPIC signal frame support. Co-Authored-By: Mickaël Guêné <mickael.guene@st.com> From-SVN: r275573
2019-09-10[ARM/FDPIC v6 06/24] [ARM] FDPIC: Add support for c++ exceptionsChristophe Lyon5-3/+214
The main difference with existing support is that function addresses are function descriptor addresses instead. This means that all code dealing with function pointers now has to cope with function descriptors instead. For the same reason, Linux kernel helpers can no longer be called by dereferencing their address, so we implement wrappers that directly call the kernel helpers. When restoring a function address, we also have to restore the FDPIC register value (r9). 2019-09-10 Christophe Lyon <christophe.lyon@st.com> Mickaël Guêné <mickael.guene@st.com> gcc/ * ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5 field. libgcc/ * config/arm/linux-atomic.c (__kernel_cmpxchg): Add FDPIC support. (__kernel_dmb): Likewise. (__fdpic_cmpxchg): New function. (__fdpic_dmb): New function. * config/arm/unwind-arm.h (FDPIC_REGNUM): New define. (gnu_Unwind_Find_got): New function. (_Unwind_decode_typeinfo_ptr): Add FDPIC support. * unwind-arm-common.inc (UCB_PR_GOT): New. (funcdesc_t): New struct. (get_eit_entry): Add FDPIC support. (unwind_phase2): Likewise. (unwind_phase2_forced): Likewise. (__gnu_Unwind_RaiseException): Likewise. (__gnu_Unwind_Resume): Likewise. (__gnu_Unwind_Backtrace): Likewise. * unwind-pe.h (read_encoded_value_with_base): Likewise. libstdc++/ * libsupc++/eh_personality.cc (get_ttype_entry): Add FDPIC support. Co-Authored-By: Mickaël Guêné <mickael.guene@st.com> From-SVN: r275568
2019-09-10[ARM/FDPIC v6 05/24] [ARM] FDPIC: Fix __do_global_dtors_aux and frame_dummy ↵Christophe Lyon2-1/+22
generation In FDPIC, we need to make sure __do_global_dtors_aux and frame_dummy are referenced by their address, not by pointers to the function descriptors. 2019-09-10 Christophe Lyon <christophe.lyon@st.com> Mickaël Guêné <mickael.guene@st.com> libgcc/ * libgcc/crtstuff.c: Add support for FDPIC. Co-Authored-By: Mickaël Guêné <mickael.guene@st.com> From-SVN: r275567
2019-09-10[ARM/FDPIC v6 02/24] [ARM] FDPIC: Handle arm*-*-uclinuxfdpiceabi in ↵Christophe Lyon2-2/+6
configure scripts The new arm-uclinuxfdpiceabi target behaves pretty much like arm-linux-gnueabi. In order to enable the same set of features, we have to update several configure scripts that generally match targets like *-*-linux*: in most places, we add *-uclinux* where there is already *-linux*, or uclinux* when there is already linux*. In gcc/config.gcc and libgcc/config.host we use *-*-uclinuxfdpiceabi because there is already a different behaviour for *-*uclinux* target. In libtool.m4, we use uclinuxfdpiceabi in cases where ELF shared libraries support is required, as uclinux does not guarantee that. 2019-09-10 Christophe Lyon <christophe.lyon@st.com> config/ * futex.m4: Handle *-uclinux*. * tls.m4 (GCC_CHECK_TLS): Likewise. gcc/ * config.gcc: Handle *-*-uclinuxfdpiceabi. libatomic/ * configure.tgt: Handle arm*-*-uclinux*. * configure: Regenerate. libgcc/ * config.host: Handle *-*-uclinuxfdpiceabi. libitm/ * configure.tgt: Handle *-*-uclinux*. * configure: Regenerate. * libtool.m4: Handle uclinuxfdpiceabi. From-SVN: r275564
2019-09-09GCC port for eBPFJose E. Marchesi5-0/+37
This patch series introduces a port of GCC to eBPF, which is a virtual machine that resides in the Linux kernel. Initially intended for user-level packet capture and filtering, eBPF is nowadays generalized to serve as a general-purpose infrastructure also for non-networking purposes. The binutils support is already upstream. See https://sourceware.org/ml/binutils/2019-05/msg00306.html. ChangeLog: * MAINTAINERS: Add myself as the maintainer of the eBPF port. Remove myself from Write After Approval section. * configure.ac: Support for bpf-*-* targets. * configure: Regenerate. contrib/ChangeLog: * config-list.mk (LIST): Disable go in bpf-*-* targets. gcc/ChangeLog: * doc/invoke.texi (Option Summary): Cover eBPF. (eBPF Options): New section. * doc/extend.texi (BPF Built-in Functions): Likewise. (BPF Kernel Helpers): Likewise. * config.gcc: Support for bpf-*-* targets. * common/config/bpf/bpf-common.c: New file. * config/bpf/t-bpf: Likewise. * config/bpf/predicates.md: Likewise. * config/bpf/constraints.md: Likewise. * config/bpf/bpf.opt: Likewise. * config/bpf/bpf.md: Likewise. * config/bpf/bpf.h: Likewise. * config/bpf/bpf.c: Likewise. * config/bpf/bpf-protos.h: Likewise. * config/bpf/bpf-opts.h: Likewise. * config/bpf/bpf-helpers.h: Likewise. * config/bpf/bpf-helpers.def: Likewise. gcc/testsuite/ChangeLog: * gcc.dg/builtins-config.h: eBPF doesn't support C99 standard functions. * gcc.c-torture/compile/20101217-1.c: Add a function prototype for printf. * gcc.c-torture/compile/20000211-1.c: Skip if target bpf-*-*. * gcc.c-torture/compile/poor.c: Likewise. * gcc.c-torture/compile/pr25311.c: Likewise. * gcc.c-torture/compile/pr39928-1.c: Likewise. * gcc.c-torture/compile/pr70061.c: Likewise. * gcc.c-torture/compile/920501-7.c: Likewise. * gcc.c-torture/compile/20000403-1.c: Likewise. * gcc.c-torture/compile/20001226-1.c: Likewise. * gcc.c-torture/compile/20030903-1.c: Likewise. * gcc.c-torture/compile/20031125-1.c: Likewise. * gcc.c-torture/compile/20040101-1.c: Likewise. * gcc.c-torture/compile/20040317-2.c: Likewise. * gcc.c-torture/compile/20040726-1.c: Likewise. * gcc.c-torture/compile/20051216-1.c: Likewise. * gcc.c-torture/compile/900313-1.c: Likewise. * gcc.c-torture/compile/920625-1.c: Likewise. * gcc.c-torture/compile/930421-1.c: Likewise. * gcc.c-torture/compile/930623-1.c: Likewise. * gcc.c-torture/compile/961004-1.c: Likewise. * gcc.c-torture/compile/980504-1.c: Likewise. * gcc.c-torture/compile/980816-1.c: Likewise. * gcc.c-torture/compile/990625-1.c: Likewise. * gcc.c-torture/compile/DFcmp.c: Likewise. * gcc.c-torture/compile/HIcmp.c: Likewise. * gcc.c-torture/compile/HIset.c: Likewise. * gcc.c-torture/compile/QIcmp.c: Likewise. * gcc.c-torture/compile/QIset.c: Likewise. * gcc.c-torture/compile/SFset.c: Likewise. * gcc.c-torture/compile/SIcmp.c: Likewise. * gcc.c-torture/compile/SIset.c: Likewise. * gcc.c-torture/compile/UHIcmp.c: Likewise. * gcc.c-torture/compile/UQIcmp.c: Likewise. * gcc.c-torture/compile/USIcmp.c: Likewise. * gcc.c-torture/compile/consec.c: Likewise. * gcc.c-torture/compile/limits-fndefn.c: Likewise. * gcc.c-torture/compile/lll.c: Likewise. * gcc.c-torture/compile/parms.c: Likewise. * gcc.c-torture/compile/pass.c: Likewise. * gcc.c-torture/compile/pp.c: Likewise. * gcc.c-torture/compile/pr32399.c: Likewise. * gcc.c-torture/compile/pr34091.c: Likewise. * gcc.c-torture/compile/pr34688.c: Likewise. * gcc.c-torture/compile/pr37258.c: Likewise. * gcc.c-torture/compile/pr37327.c: Likewise. * gcc.c-torture/compile/pr37381.c: Likewise. * gcc.c-torture/compile/pr37669-2.c: Likewise. * gcc.c-torture/compile/pr37669.c: Likewise. * gcc.c-torture/compile/pr37742-3.c: Likewise. * gcc.c-torture/compile/pr44063.c: Likewise. * gcc.c-torture/compile/pr48596.c: Likewise. * gcc.c-torture/compile/pr51856.c: Likewise. * gcc.c-torture/compile/pr54428.c: Likewise. * gcc.c-torture/compile/pr54713-1.c: Likewise. * gcc.c-torture/compile/pr54713-2.c: Likewise. * gcc.c-torture/compile/pr54713-3.c: Likewise. * gcc.c-torture/compile/pr55921.c: Likewise. * gcc.c-torture/compile/pr70240.c: Likewise. * gcc.c-torture/compile/pr70355.c: Likewise. * gcc.c-torture/compile/pr82052.c: Likewise. * gcc.c-torture/compile/pr83487.c: Likewise. * gcc.c-torture/compile/pr86122.c: Likewise. * gcc.c-torture/compile/pret-arg.c: Likewise. * gcc.c-torture/compile/regs-arg-size.c: Likewise. * gcc.c-torture/compile/structret.c: Likewise. * gcc.c-torture/compile/uuarg.c: Likewise. * gcc.dg/20001009-1.c: Likewise. * gcc.dg/20020418-1.c: Likewise. * gcc.dg/20020426-2.c: Likewise. * gcc.dg/20020430-1.c: Likewise. * gcc.dg/20040306-1.c: Likewise. * gcc.dg/20040622-2.c: Likewise. * gcc.dg/20050603-2.c: Likewise. * gcc.dg/20050629-1.c: Likewise. * gcc.dg/20061026.c: Likewise. * gcc.dg/Warray-bounds-3.c: Likewise. * gcc.dg/Warray-bounds-30.c: Likewise. * gcc.dg/Wframe-larger-than-2.c: Likewise. * gcc.dg/Wframe-larger-than.c: Likewise. * gcc.dg/Wrestrict-11.c: Likewise. * gcc.c-torture/compile/20000804-1.c: Likewise. * lib/target-supports.exp (check_effective_target_trampolines): Adapt to eBPF. (check_effective_target_indirect_jumps): Likewise. (check_effective_target_nonlocal_goto): Likewise. (check_effective_target_global_constructor): Likewise. (check_effective_target_return_address): Likewise. * gcc.target/bpf/bpf.exp: New file. * gcc.target/bpf/builtin-load.c: Likewise. * cc.target/bpf/constant-calls.c: Likewise. * gcc.target/bpf/diag-funargs.c: Likewise. * gcc.target/bpf/diag-funargs-2.c: Likewise. * gcc.target/bpf/diag-funargs-3.c: Likewise. * gcc.target/bpf/diag-indcalls.c: Likewise. * gcc.target/bpf/helper-bind.c: Likewise. * gcc.target/bpf/helper-bpf-redirect.c: Likewise. * gcc.target/bpf/helper-clone-redirect.c: Likewise. * gcc.target/bpf/helper-csum-diff.c: Likewise. * gcc.target/bpf/helper-csum-update.c: Likewise. * gcc.target/bpf/helper-current-task-under-cgroup.c: Likewise. * gcc.target/bpf/helper-fib-lookup.c: Likewise. * gcc.target/bpf/helper-get-cgroup-classid.c: Likewise. * gcc.target/bpf/helper-get-current-cgroup-id.c: Likewise. * gcc.target/bpf/helper-get-current-comm.c: Likewise. * gcc.target/bpf/helper-get-current-pid-tgid.c: Likewise. * gcc.target/bpf/helper-get-current-task.c: Likewise. * gcc.target/bpf/helper-get-current-uid-gid.c: Likewise. * gcc.target/bpf/helper-get-hash-recalc.c: Likewise. * gcc.target/bpf/helper-get-listener-sock.c: Likewise. * gcc.target/bpf/helper-get-local-storage.c: Likewise. * gcc.target/bpf/helper-get-numa-node-id.c: Likewise. * gcc.target/bpf/helper-get-prandom-u32.c: Likewise. * gcc.target/bpf/helper-get-route-realm.c: Likewise. * gcc.target/bpf/helper-get-smp-processor-id.c: Likewise. * gcc.target/bpf/helper-get-socket-cookie.c: Likewise. * gcc.target/bpf/helper-get-socket-uid.c: Likewise. * gcc.target/bpf/helper-getsockopt.c: Likewise. * gcc.target/bpf/helper-get-stack.c: Likewise. * gcc.target/bpf/helper-get-stackid.c: Likewise. * gcc.target/bpf/helper-ktime-get-ns.c: Likewise. * gcc.target/bpf/helper-l3-csum-replace.c: Likewise. * gcc.target/bpf/helper-l4-csum-replace.c: Likewise. * gcc.target/bpf/helper-lwt-push-encap.c: Likewise. * gcc.target/bpf/helper-lwt-seg6-action.c: Likewise. * gcc.target/bpf/helper-lwt-seg6-adjust-srh.c: Likewise. * gcc.target/bpf/helper-lwt-seg6-store-bytes.c: Likewise. * gcc.target/bpf/helper-map-delete-elem.c: Likewise. * gcc.target/bpf/helper-map-lookup-elem.c: Likewise. * gcc.target/bpf/helper-map-peek-elem.c: Likewise. * gcc.target/bpf/helper-map-pop-elem.c: Likewise. * gcc.target/bpf/helper-map-push-elem.c: Likewise. * gcc.target/bpf/helper-map-update-elem.c: Likewise. * gcc.target/bpf/helper-msg-apply-bytes.c: Likewise. * gcc.target/bpf/helper-msg-cork-bytes.c: Likewise. * gcc.target/bpf/helper-msg-pop-data.c: Likewise. * gcc.target/bpf/helper-msg-pull-data.c: Likewise. * gcc.target/bpf/helper-msg-push-data.c: Likewise. * gcc.target/bpf/helper-msg-redirect-hash.c: Likewise. * gcc.target/bpf/helper-msg-redirect-map.c: Likewise. * gcc.target/bpf/helper-override-return.c: Likewise. * gcc.target/bpf/helper-perf-event-output.c: Likewise. * gcc.target/bpf/helper-perf-event-read.c: Likewise. * gcc.target/bpf/helper-perf-event-read-value.c: Likewise. * gcc.target/bpf/helper-perf-prog-read-value.c: Likewise. * gcc.target/bpf/helper-probe-read.c: Likewise. * gcc.target/bpf/helper-probe-read-str.c: Likewise. * gcc.target/bpf/helper-probe-write-user.c: Likewise. * gcc.target/bpf/helper-rc-keydown.c: Likewise. * gcc.target/bpf/helper-rc-pointer-rel.c: Likewise. * gcc.target/bpf/helper-rc-repeat.c: Likewise. * gcc.target/bpf/helper-redirect-map.c: Likewise. * gcc.target/bpf/helper-set-hash.c: Likewise. * gcc.target/bpf/helper-set-hash-invalid.c: Likewise. * gcc.target/bpf/helper-setsockopt.c: Likewise. * gcc.target/bpf/helper-skb-adjust-room.c: Likewise. * gcc.target/bpf/helper-skb-cgroup-id.c: Likewise. * gcc.target/bpf/helper-skb-change-head.c: Likewise. * gcc.target/bpf/helper-skb-change-proto.c: Likewise. * gcc.target/bpf/helper-skb-change-tail.c: Likewise. * gcc.target/bpf/helper-skb-change-type.c: Likewise. * gcc.target/bpf/helper-skb-ecn-set-ce.c: Likewise. * gcc.target/bpf/helper-skb-get-tunnel-key.c: Likewise. * gcc.target/bpf/helper-skb-get-tunnel-opt.c: Likewise. * gcc.target/bpf/helper-skb-get-xfrm-state.c: Likewise. * gcc.target/bpf/helper-skb-load-bytes.c: Likewise. * gcc.target/bpf/helper-skb-load-bytes-relative.c: Likewise. * gcc.target/bpf/helper-skb-pull-data.c: Likewise. * gcc.target/bpf/helper-skb-set-tunnel-key.c: Likewise. * gcc.target/bpf/helper-skb-set-tunnel-opt.c: Likewise. * gcc.target/bpf/helper-skb-store-bytes.c: Likewise. * gcc.target/bpf/helper-skb-under-cgroup.c: Likewise. * gcc.target/bpf/helper-skb-vlan-pop.c: Likewise. * gcc.target/bpf/helper-skb-vlan-push.c: Likewise. * gcc.target/bpf/helper-skc-lookup-tcp.c: Likewise. * gcc.target/bpf/helper-sk-fullsock.c: Likewise. * gcc.target/bpf/helper-sk-lookup-tcp.c: Likewise. * gcc.target/bpf/helper-sk-lookup-upd.c: Likewise. * gcc.target/bpf/helper-sk-redirect-hash.c: Likewise. * gcc.target/bpf/helper-sk-redirect-map.c: Likewise. * gcc.target/bpf/helper-sk-release.c: Likewise. * gcc.target/bpf/helper-sk-select-reuseport.c: Likewise. * gcc.target/bpf/helper-sk-storage-delete.c: Likewise. * gcc.target/bpf/helper-sk-storage-get.c: Likewise. * gcc.target/bpf/helper-sock-hash-update.c: Likewise. * gcc.target/bpf/helper-sock-map-update.c: Likewise. * gcc.target/bpf/helper-sock-ops-cb-flags-set.c: Likewise. * gcc.target/bpf/helper-spin-lock.c: Likewise. * gcc.target/bpf/helper-spin-unlock.c: Likewise. * gcc.target/bpf/helper-strtol.c: Likewise. * gcc.target/bpf/helper-strtoul.c: Likewise. * gcc.target/bpf/helper-sysctl-get-current-value.c: Likewise. * gcc.target/bpf/helper-sysctl-get-name.c: Likewise. * gcc.target/bpf/helper-sysctl-get-new-value.c: Likewise. * gcc.target/bpf/helper-sysctl-set-new-value.c: Likewise. * gcc.target/bpf/helper-tail-call.c: Likewise. * gcc.target/bpf/helper-tcp-check-syncookie.c: Likewise. * gcc.target/bpf/helper-tcp-sock.c: Likewise. * gcc.target/bpf/helper-trace-printk.c: Likewise. * gcc.target/bpf/helper-xdp-adjust-head.c: Likewise. * gcc.target/bpf/helper-xdp-adjust-meta.c: Likewise. * gcc.target/bpf/helper-xdp-adjust-tail.c: Likewise. * gcc.target/bpf/skb-ancestor-cgroup-id.c: Likewise. * gcc.target/bpf/sync-fetch-and-add.c: Likewise. libgcc/ChangeLog: * config.host: Set cpu_type for bpf-*-* targets. * config/bpf/t-bpf: Likewise. * config/bpf/crtn.S: Likewise. * config/bpf/crti.S: New file. From-SVN: r275506
2019-09-06RISC-V: Re-enable -msave-restore for shared libraries.Jim Wilson2-2/+7
This re-enables -msave-restore for shared libraries, and uses the t-slibgcc-libgcc file to get the save-restore routines included directly in shared libraries so that we don't need to indirect through the PLT to reach them, which doesn't work. gcc/ * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30 change. libgcc/ * config.host (riscv*-*-linux*): Add t-slibgcc-libgcc to tmake_file. (riscv*-*-freebsd*): Likewise. From-SVN: r275478
2019-09-03Remove Cell Broadband Engine SPU targetsUlrich Weigand17-1518/+5
From-SVN: r275343
2019-08-23re PR target/91306 ([MSP430] libgcc/crtstuff.c: Alignment of frame_dummy ↵Jozef Lawrynowicz2-16/+31
.init_array entry is too big) 2019-08-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> PR target/91306 * crtstuff.c (__CTOR_LIST__): Align to the "__alignof__" the array element type, instead of "sizeof" the element type. (__DTOR_LIST__): Likewise. (__TMC_LIST__): Likewise. (__do_global_dtors_aux_fini_array_entry): Likewise. (__frame_dummy_init_array_entry): Likewise. (__CTOR_END__): Likewise. (__DTOR_END__): Likweise. (__FRAME_END__): Likewise. (__TMC_END__): Likewise. From-SVN: r274846
2019-08-20Add TIGERLAKE and COOPERLAKE to GCC.Hongtao Liu2-0/+7
2019-08-20 Lili Cui <lili.cui@intel.com> gcc/ * common/config/i386/i386-common.c (processor_names): Add tigerlake and cooperlake. (processor_alias_table): Add tigerlake and cooperlake. * config.gcc: Add -march=tigerlake and cooperlake. * config/i386/driver-i386.c (host_detect_local_cpu): Detect tigerlake and cooperlake. Add "has_avx" to classify processor. * config/i386/i386-builtins.c (processor_model): Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE. (arch_names_table): Add tigerlake and cooperlake. (get_builtin_code_for_version) : Handle PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE. * config/i386/i386-c.c (ix86_target_macros_internal): Handle tigerlake and cooperlake. * config/i386/i386-options.c (m_TIGERLAKE) : Define. (m_COOPERLAKE) : Ditto. (m_CORE_AVX512): Ditto. (processor_cost_table): Add cascadelake. (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B. * config/i386/i386.h (ix86_size_cost) : Define TARGET_TIGERLAKE and TARGET_COOPERLAKE. (processor_type) : Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE. (PTA_MOVDIRI): Ditto. (PTA_MOVDIR64B): Ditto. (PTA_COOPERLAKE) : Ditto. (PTA_TIGERLAKE) : Ditto. (processor_type) : Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE. * doc/extend.texi: Add tigerlake and cooperlake. * doc/invoke.texi: Add tigerlake and cooperlake. gcc/testsuite/ * gcc.target/i386/funcspec-56.inc: Handle new march. * g++.target/i386/mv16.C: Handle new march libgcc/ * config/i386/cpuinfo.h: Add INTEL_COREI7_TIGERLAKE and INTEL_COREI7_COOPERLAKE. From-SVN: r274693
2019-07-31config.gcc (hppa*-*-netbsd*): New target.Matt Thomas3-0/+20
gcc/ChangeLog: * config.gcc (hppa*-*-netbsd*): New target. * config/pa/pa-netbsd.h: New file. * config/pa/pa32-netbsd.h: New file. libgcc/ChangeLog: * config.host (hppa*-*-netbsd*): New case. * config/pa/t-netbsd: New file. Co-Authored-By: Matthew Green <mrg@eterna.com.au> Co-Authored-By: Maya Rashish <coypu@sdf.org> Co-Authored-By: Nick Hudson <nick@nthcliff.demon.co.uk> From-SVN: r273933
2019-07-31[Arm][CMSE]Add warn_unused_return attribute to cmse functionsJoel Hutton2-0/+6
At present it is possible to call the CMSE functions for checking addresses (such as cmse_check_address_range) and forget to check/use the return value. This patch makes the interfaces more robust against programmer error by marking these functions with the warn_unused_result attribute. With this set, any use of these functions that does not use the result will produce a warning. This produces a warning on default warn levels when the result of the cmse functions is not used. For the following function: void foo() { int *data; cmse_check_address_range((int*)data, 0, 0); } The following warning is emitted: warning: ignoring return value of 'cmse_check_address_range' declared with attribute 'warn_unused_result' [-Wunused-result] 6 | cmse_check_address_range((int*)data, 0, 0); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ gcc/ChangeLog: 2019-07-31 Joel Hutton <Joel.Hutton@arm.com> * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add warn_unused_result attribute. (cmse_check_address_range): Add warn_unused_result attribute. libgcc/ChangeLog: 2019-07-31 Joel Hutton <Joel.Hutton@arm.com> * config/arm/cmse.c (cmse_check_address_range): Add warn_unused_result attribute. 2019-07-31 Joel Hutton <Joel.Hutton@arm.com> * gcc.target/arm/cmse/cmse-17.c: New test. From-SVN: r273924
2019-07-22Do not emit __gnu_lto_v1 symbol.Martin Liska3-9/+6
2019-07-22 Martin Liska <mliska@suse.cz> * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update comment. * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol. 2019-07-22 Martin Liska <mliska@suse.cz> * config/pa/stublib.c: Remove stub symbol __gnu_lto_v1. * config/pa/t-stublib: Likewise. 2019-07-22 Martin Liska <mliska@suse.cz> * simple-object-elf.c (simple_object_elf_copy_lto_debug_sections): Do not search for gnu_lto_v1, but search for first '\0'. From-SVN: r273662
2019-07-21or1k: Fix issues with msoft-divStafford Horne2-3/+11
Fixes bad assembly logic with software divide as reported by Richard Selvaggi. Also, add a basic test to verify the soft math works when enabled. gcc/testsuite/ChangeLog: PR target/90362 * gcc.target/or1k/div-mul-3.c: New test. libgcc/ChangeLog: PR target/90362 * config/or1k/lib1funcs.S (__udivsi3): Change l.sfeqi to l.sfeq and l.sfltsi to l.sflts equivalents as the immediate instructions are not available on every processor. Change a l.bnf to l.bf to fix logic issue. From-SVN: r273648
2019-07-08PR middle-end/71924 - missing -Wreturn-local-addr returning alloca resultMartin Sebor1-0/+2
PR middle-end/71924 - missing -Wreturn-local-addr returning alloca result PR middle-end/90549 - missing -Wreturn-local-addr maybe returning an address of a local array plus offset gcc/ChangeLog: PR middle-end/71924 PR middle-end/90549 * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update comment. (args_loc_t): New type. (args_loc_t, locmap_t): same. (diag_returned_locals): New function. (is_addr_local): Same. (handle_return_addr_local_phi_arg, warn_return_addr_local): Same. (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg. (find_explicit_erroneous_behavior): Call warn_return_addr_local. gcc/testsuite/ChangeLog: PR middle-end/71924 PR middle-end/90549 * gcc.c-torture/execute/return-addr.c: New test. * gcc.dg/Wreturn-local-addr-2.c: New test. * gcc.dg/Wreturn-local-addr-4.c: New test. * gcc.dg/Wreturn-local-addr-5.c: New test. * gcc.dg/Wreturn-local-addr-6.c: New test. * gcc.dg/Wreturn-local-addr-7.c: New test. * gcc.dg/Wreturn-local-addr-8.c: New test. * gcc.dg/Wreturn-local-addr-9.c: New test. * gcc.dg/Wreturn-local-addr-10.c: New test. * gcc.dg/Walloca-4.c: Handle expected warnings. * gcc.dg/pr41551.c: Same. * gcc.dg/pr59523.c: Same. * gcc.dg/tree-ssa/pr88775-2.c: Same. * gcc.dg/tree-ssa/alias-37.c: Same. * gcc.dg/winline-7.c: Same. From-SVN: r273261
2019-07-04[Darwin] Revert one hunk from r273016 (TLC for older Darwin versions).Iain Sandoe2-3/+5
t-darwin8 is nolonger needed (or present) for pre-10.4 powerpc, so remove the reference. 2019-07-04 Iain Sandoe <iain@sandoe.co.uk> * config.host: Remove reference to t-darwin8. From-SVN: r273091
2019-07-03[Darwin] Some TLC for older Darwin versions.Iain Sandoe5-24/+30
The library handling and some of the options for creating the crts for the older PPC Darwin versions had bit-rotted somewhat. This adjusts the build criteria for the crts to avoid newer ld64 versions warnings about mismatches in build and object versions. Added to some of the comments that it's documented why the specs are as they are. 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> gcc/ * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin. (STARTFILE_SPEC): Split crt3 into a separate spec. (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec. (DARWIN_CRT2_SPEC): New. (DARWIN_CRT3_SPEC): New. (MIN_LD64_OMIT_STUBS): Revise to 62.1. * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions. (DARWIN_CRT3_SPEC): New. libgcc/ 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> * config.host (powerpc-*-darwin*,powerpc64-*-darwin*): Revise crt list. * config/rs6000/t-darwin: Build crt3_2 for older systems. Revise mmacosx-version-min for crts to run across all system versions. * config/rs6000/t-darwin64 (LIB2ADD): Remove. * config/t-darwin: Revise mmacosx-version-min for crts to run across system versions >= 10.4. From-SVN: r273016
2019-07-03Rename SINGE_VALUE to TOPN_VALUES counters.Martin Liska6-44/+64
2019-07-03 Martin Liska <mliska@suse.cz> * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove. (GCOV_COUNTER_V_TOPN): New. (GCOV_COUNTER_V_INDIR): Use _topn. * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove. (GCOV_TOPN_VALUES): New. (GCOV_SINGLE_VALUE_COUNTERS): Remove. (GCOV_TOPN_VALUES_COUNTERS): New. * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES. * tree-profile.c: (gimple_init_gcov_profiler): Rename variables from one_value to topn_values. (gimple_gen_one_value_profiler): Remove. (gimple_gen_topn_values_profiler): New function. * value-prof.c (dump_histogram_value): Use TOPN_VALUES names instead of SINGLE_VALUE. (stream_out_histogram_value): Likewise. (stream_in_histogram_value): Likewise. (get_most_common_single_value): Likewise. (gimple_divmod_fixed_value_transform): Likewise. (gimple_stringops_transform): Likewise. (gimple_divmod_values_to_profile): Likewise. (gimple_stringops_values_to_profile): Likewise. (gimple_find_values_to_profile): Likewise. * value-prof.h (enum hist_type): Rename to TOPN. (gimple_gen_one_value_profiler): Remove. (gimple_gen_topn_values_profiler): New. 2019-07-03 Martin Liska <mliska@suse.cz> * Makefile.in: Use topn_values instead of one_value names. * libgcov-merge.c (__gcov_merge_single): Move to ... (__gcov_merge_topn): ... this. (merge_single_value_set): Move to ... (merge_topn_values_set): ... this. * libgcov-profiler.c (__gcov_one_value_profiler_body): Move to ... (__gcov_topn_values_profiler_body): ... this. (__gcov_one_value_profiler_v2): Move to ... (__gcov_topn_values_profiler): ... this. (__gcov_one_value_profiler_v2_atomic): Move to ... (__gcov_topn_values_profiler_atomic): ... this. (__gcov_indirect_call_profiler_v4): Remove. * libgcov-util.c (__gcov_single_counter_op): Move to ... (__gcov_topn_counter_op): ... this. * libgcov.h (L_gcov_merge_single): Remove. (L_gcov_merge_topn): New. (__gcov_merge_single): Remove. (__gcov_merge_topn): New. (__gcov_one_value_profiler_v2): Move to .. (__gcov_topn_values_profiler): ... this. (__gcov_one_value_profiler_v2_atomic): Move to ... (__gcov_topn_values_profiler_atomic): ... this. From-SVN: r273005
2019-07-03Support N values in libgcov for single value counter type.Martin Liska3-31/+64
2019-07-03 Martin Liska <mliska@suse.cz> * gcc.dg/tree-prof/val-prof-2.c: Update scanned pattern as we do now better. 2019-07-03 Martin Liska <mliska@suse.cz> * libgcov-merge.c (merge_single_value_set): Support N values. * libgcov-profiler.c (__gcov_one_value_profiler_body): Likewise. From-SVN: r273004
2019-06-27Add --disable-tm-clone-registry libgcc configure option.Ilia Diachkov4-1/+35
This patch adds libgcc configuration option to disable TM clone registry. This option helps to reduce code size for embedded targets which do not need transactional memory support. gcc/ * doc/install.texi: Document --disable-tm-clone-registry. libgcc/ * Makefile.in (USE_TM_CLONE_REGISTRY): New. (CRTSTUFF_CFLAGS): Use USE_TM_CLONE_REGISTRY. * configure.ac: Add --disable-tm-clone-registry option. * configure: Regenerate. From-SVN: r272769
2019-06-27Remove quite obvious dead assignments.Martin Liska3-5/+8
2019-06-27 Martin Liska <mliska@suse.cz> * asan.c (asan_emit_allocas_unpoison): Remove obviously dead assignments. * bt-load.c (move_btr_def): Likewise. * builtins.c (expand_builtin_apply_args_1): Likewise. (expand_builtin_apply): Likewise. * cfgexpand.c (expand_asm_stmt): Likewise. (construct_init_block): Likewise. * cfghooks.c (verify_flow_info): Likewise. * cfgloopmanip.c (remove_path): Likewise. * cfgrtl.c (rtl_verify_bb_layout): Likewise. * cgraph.c (cgraph_node::set_pure_flag): Likewise. * combine.c (simplify_if_then_else): Likewise. * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise. (choose_basereg): Likewise. (ix86_expand_prologue): Likewise. (ix86_preferred_output_reload_class): Likewise. * cselib.c (cselib_record_sets): Likewise. * df-scan.c (df_scan_alloc): Likewise. * dojump.c (do_jump_by_parts_greater_rtx): Likewise. * early-remat.c (early_remat::record_equiv_candidates): Likewise. * emit-rtl.c (try_split): Likewise. * graphite-scop-detection.c (assign_parameter_index_in_region): Likewise. * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise. * ira-color.c (setup_profitable_hard_regs): Likewise. * ira.c (rtx_moveable_p): Likewise. * lra-eliminations.c (eliminate_regs_in_insn): Likewise. * read-rtl.c (read_subst_mapping): Likewise. * regrename.c (scan_rtx): Likewise. * reorg.c (fill_slots_from_thread): Likewise. * tree-inline.c (tree_function_versioning): Likewise. * tree-ssa-reassoc.c (optimize_ops_list): Likewise. * tree-ssa-sink.c (statement_sink_location): Likewise. * tree-ssa-threadedge.c (thread_across_edge): Likewise. * tree-vect-loop.c (vect_get_loop_niters): Likewise. (vect_create_epilog_for_reduction): Likewise. * tree.c (build_nonstandard_integer_type): Likewise. 2019-06-27 Martin Liska <mliska@suse.cz> * class.c (adjust_clone_args): Remove obviously dead assignments. (dump_class_hierarchy_r): Likewise. * decl.c (check_initializer): Likewise. * parser.c (cp_parser_lambda_expression): Likewise. * pt.c (unify_bound_ttp_args): Likewise. (convert_template_argument): Likewise. * rtti.c (build_headof): Likewise. * typeck.c (convert_for_initialization): Likewise. 2019-06-27 Martin Liska <mliska@suse.cz> * libgcov-driver-system.c (gcov_exit_open_gcda_file): Remove obviously dead assignments. * libgcov-util.c: Likewise. From-SVN: r272744
2019-06-27Fix misc stuff seen by clang-static-analyzer.Martin Liska2-0/+11
2019-06-27 Martin Liska <mliska@suse.cz> * lto-dump.c (struct symbol_entry): Add default dtor. (struct variable_entry): Likewise. (struct function_entry): Likewise. (dump_list_functions): Release memory. (dump_list_variables): Likewise. 2019-06-27 Martin Liska <mliska@suse.cz> * libgcov-util.c (gcov_profile_merge): Release allocated memory. (calculate_overlap): Likewise. From-SVN: r272733
2019-06-25Darwin, add a missed file changeIain Sandoe1-2/+2
From the last commit. 2019-06-25 Iain Sandoe <iain@sandoe.co.uk> * config.host: Add libef_ppc.a to the extra files for powerpc-darwin. From-SVN: r272660
2019-06-25[Darwin, PPC] Move the out of line register save/restore to an endfile.Iain Sandoe3-9/+44
We have been including this in libgcc, which means that we have to append -lgcc even when using shared libgcc. In preparation for revision of libgcc split this into an endfile. gcc/ 2019-06-25 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/darwin.h (ENDFILE_SPEC): New. libgcc/ 2019-06-25 Iain Sandoe <iain@sandoe.co.uk> * config.host: Add libef_ppc.a to the extra files for powerpc-darwin. * config/rs6000/t-darwin: (PPC_ENDFILE_SRC, PPC_ENDFILE_OBJS): New. Build objects for the out of line save/restore register functions so that they can be used for any supported Darwin version. * config/t-darwin: Default the build Darwin version to Darwin8 (MacOS 10.4). From-SVN: r272659
2019-06-25Do not call strlen with NULL argument in libgcov.Martin Liska2-2/+8
2019-06-25 Martin Liska <mliska@suse.cz> * libgcov-driver-system.c (replace_filename_variables): Do not call strlen with NULL argument. From-SVN: r272650
2019-06-25Stub implementation of unwinding for AMD GCN.Andrew Stubbs3-1/+44
2019-06-25 Andrew Stubbs <ams@codesourcery.com> libgcc/ * config/gcn/t-amdgcn (LIB2ADD): Add unwind-gcn.c. * config/gcn/unwind-gcn.c: New file. From-SVN: r272648
2019-06-25Create GCN-specific gthreadsKwok Cheung Yeung3-0/+170
2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com> Andrew Stubbs <ams@codesourcery.com> gcc/ * config.gcc (thread_file): Set to gcn for AMD GCN. * config/gcn/gcn.c (gcn_emutls_var_init): New function. (TARGET_EMUTLS_VAR_INIT): New hook. config/ * gthr.m4 (GCC_AC_THREAD_HEADER): Add case for gcn. libgcc/ * configure: Regenerate. * config/gcn/gthr-gcn.h: New. Co-Authored-By: Andrew Stubbs <ams@codesourcery.com> From-SVN: r272647
2019-06-18[nvptx] Fix __main missing prototype warning in crt0.cTom de Vries2-1/+7
Atm we see: ... libgcc/config/nvptx/crt0.c:36:1: warning: no previous prototype for \ ‘__main’ [-Wmissing-prototypes] ... Fix this by adding the prototype. Build and reg-tested on nvptx. Build and reg-tested on x86_64 with nvptx accelerator. 2019-06-18 Tom de Vries <tdevries@suse.de> * config/nvptx/crt0.c (__main): Declare. From-SVN: r272412
2019-06-17[netbsd][aarch64] add netbsd/aarch64 targetMatthew Green2-0/+11
Initial support for AArch64 running NetBSD. Matthew Green <mrg@eterna.com.au> Maya Rashish <coypu@sdf.org> gcc: * config.gcc (aarch64*-*-netbsd*): New target. * config/aarch64/aarch64-netbsd.h: New file. * config/aarch64/t-aarch64-netbsd: Likewise. libgcc: * config.host (aarch64*-*-netbsd*): New case. Co-Authored-By: Maya Rashish <coypu@sdf.org> From-SVN: r272387
2019-06-16MSP430: Implement 64-bit shifts in assembly codeJozef Lawrynowicz4-0/+111
gcc/ChangeLog: 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which describe how to perform MSPABI compliant 64-bit shift. * config/msp430/msp430.md (ashldi3): New define_expand. (ashrdi3): New define_expand. (lshrdi3): New define_expand. libgcc/ChangeLog: 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> * config/msp430/slli.S (__mspabi_sllll): New library function for performing a logical left shift of a 64-bit value. * config/msp430/srai.S (__mspabi_srall): New library function for performing a arithmetic right shift of a 64-bit value. * config/msp430/srll.S (__mspabi_srlll): New library function for performing a logical right shift of a 64-bit value. gcc/testsuite/ChangeLog: 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> * gcc.target/msp430/mspabi_sllll.c: New test. * gcc.target/msp430/mspabi_srall.c: New test. * gcc.target/msp430/mspabi_srlll.c: New test. * gcc.c-torture/execute/shiftdi-2.c: New test. From-SVN: r272360
2019-06-14[NetBSD] Add support for the Arm EABI.Matt Thomas4-1/+46
This is a roll-up of a set of changes needed to support the Arm EABI on NetBSD. 2019-06-14 Matt Thomas <matt@3am-software.com> Matthew Green <mrg@eterna.com.au> Nick Hudson <skrll@netbsd.org> Maya Rashish <coypu@sdf.org> Richard Earnshaw <rearnsha@arm.com> gcc: * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration. * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD. * config/arm/netbsd-eabi.h: New file. * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before redefining. (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler. * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define. (NETBSD_SUBTARGET_EXTRA_SPECS): New define. (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS. libatomic: * configure.tgt (arm*): Handle NetBSD in the same way as FreeBSD. libgcc: * config.host (arm*-*-netbsdelf*): Add support for EABI configurations. * config/arm/t-netbsd (LIB1ASMFUNCS): Add some additional assembler functions to build. * config/arm/t-netbsd-eabi: New file. Co-Authored-By: Matthew Green <mrg@eterna.com.au> Co-Authored-By: Maya Rashish <coypu@sdf.org> Co-Authored-By: Nick Hudson <skrll@netbsd.org> Co-Authored-By: Richard Earnshaw <rearnsha@arm.com> From-SVN: r272290
2019-06-12Initial TI PRU libgcc portDimitar Dimitrov24-0/+1272
libgcc/ChangeLog: 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu> * config.host: Add PRU target. * config/pru/asri.c: New file. * config/pru/eqd.c: New file. * config/pru/eqf.c: New file. * config/pru/ged.c: New file. * config/pru/gef.c: New file. * config/pru/gtd.c: New file. * config/pru/gtf.c: New file. * config/pru/led.c: New file. * config/pru/lef.c: New file. * config/pru/lib2bitcountHI.c: New file. * config/pru/lib2divHI.c: New file. * config/pru/lib2divQI.c: New file. * config/pru/lib2divSI.c: New file. * config/pru/libgcc-eabi.ver: New file. * config/pru/ltd.c: New file. * config/pru/ltf.c: New file. * config/pru/mpyll.S: New file. * config/pru/pru-abi.h: New file. * config/pru/pru-asm.h: New file. * config/pru/pru-divmod.h: New file. * config/pru/sfp-machine.h: New file. * config/pru/t-pru: New file. From-SVN: r272204
2019-06-11* libgcov-merge.c (__gcov_merge_single): Revert previous change.Jakub Jelinek2-3/+6
From-SVN: r272143
2019-06-10Add missing ATTR_UNUSED (PR bootstrap/90808).Martin Liska2-1/+6
2019-06-10 Martin Liska <mliska@suse.cz> PR bootstrap/90808 * libgcov.h: Add ATTRIBUTE_UNUSED. From-SVN: r272114
2019-06-10Implement N disk counters for single value and indirect call counters.Martin Liska5-49/+126
2019-06-10 Martin Liska <mliska@suse.cz> * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New. (GCOV_SINGLE_VALUE_COUNTERS): Likewise. * ipa-profile.c (ipa_profile_generate_summary): Use get_most_common_single_value. * tree-profile.c (gimple_init_gcov_profiler): Instrument with __gcov_one_value_profiler_v2 and __gcov_indirect_call_profiler_v4. * value-prof.c (dump_histogram_value): Print all values for HIST_TYPE_SINGLE_VALUE. (stream_out_histogram_value): Update assert for N values. (stream_in_histogram_value): Set number of counters for HIST_TYPE_SINGLE_VALUE. (get_most_common_single_value): New. (gimple_divmod_fixed_value_transform): Use get_most_common_single_value. (gimple_ic_transform): Likewise. (gimple_stringops_transform): Likewise. (gimple_find_values_to_profile): Set number of counters for HIST_TYPE_SINGLE_VALUE. * value-prof.h (get_most_common_single_value): New. 2019-06-10 Martin Liska <mliska@suse.cz> * Makefile.in: Add __gcov_one_value_profiler_v2, __gcov_one_value_profiler_v2_atomic and __gcov_indirect_call_profiler_v4. * libgcov-merge.c (__gcov_merge_single): Change function signature. (merge_single_value_set): New. * libgcov-profiler.c (__gcov_one_value_profiler_body): Update functionality. (__gcov_one_value_profiler): Remove. (__gcov_one_value_profiler_v2): ... this. (__gcov_one_value_profiler_atomic): Rename to ... (__gcov_one_value_profiler_v2_atomic): this. (__gcov_indirect_call_profiler_v3): Rename to ... (__gcov_indirect_call_profiler_v4): ... this. * libgcov.h (__gcov_one_value_profiler): Remove. (__gcov_one_value_profiler_atomic): Remove. (__gcov_one_value_profiler_v2_atomic): New. (__gcov_indirect_call_profiler_v3): Remove. (__gcov_one_value_profiler_v2): New. (__gcov_indirect_call_profiler_v4): New. (gcov_get_counter_ignore_scaling): New function. From-SVN: r272106
2019-06-07Remove indirect call top N counter type.Martin Liska7-304/+22
2019-06-07 Martin Liska <mliska@suse.cz> * doc/invoke.texi: Remove param. * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): Remove. * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise. (GCOV_ICALL_TOPN_NCOUNTS): Likewise. * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise. * profile.c (instrument_values): Remove HIST_TYPE_INDIR_CALL_TOPN. * tree-profile.c (init_ic_make_global_vars): Always build __gcov_indirect_call only. (gimple_init_gcov_profiler): Remove usage of PARAM_INDIR_CALL_TOPN_PROFILE. (gimple_gen_ic_profiler): Likewise. * value-prof.c (dump_histogram_value): Likewise. (stream_in_histogram_value): Likewise. (gimple_indirect_call_to_profile): Likewise. (gimple_find_values_to_profile): Likewise. * value-prof.h (enum hist_type): Likewise. 2019-06-07 Martin Liska <mliska@suse.cz> * Makefile.in: Remove usage of _gcov_merge_icall_topn. * libgcov-driver.c (gcov_sort_n_vals): Remove. (gcov_sort_icall_topn_counter): Likewise. (gcov_sort_topn_counter_arrays): Likewise. (dump_one_gcov): Remove call to gcov_sort_topn_counter_arrays. * libgcov-merge.c (__gcov_merge_icall_topn): Remove. * libgcov-profiler.c (__gcov_topn_value_profiler_body): Likewise. (GCOV_ICALL_COUNTER_CLEAR_THRESHOLD): Remove. (struct indirect_call_tuple): Remove. (__gcov_indirect_call_topn_profiler): Remove. * libgcov-util.c (__gcov_icall_topn_counter_op): Remove. * libgcov.h (gcov_sort_n_vals): Remove. (L_gcov_merge_icall_topn): Likewise. (__gcov_merge_icall_topn): Likewise. (__gcov_indirect_call_topn_profiler): Likewise. From-SVN: r272030
2019-06-06Darwin, PowerPC, libgcc - Ensure unwinder is built with altivec enabled.Iain Sandoe2-0/+8
When libgcc is built on Darwin, it is usually built for the earliest potential target (Darwin8, 10.4). Build for that revision default to assuming that the processor might be G3 (without vector ops) and there is an outlined function used for save/restore that checks whether the processor is G3 or G4+ at run- time. However, the unwinder itself needs to be built with the assumption of vector usage so that the relevant outlined functions are called. 2019-06-06 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/t-darwin: Ensure that the unwinder is built with altivec enabled. From-SVN: r272017
2019-06-06MSP430: Put libgcc shift functions in their own sectionJozef Lawrynowicz4-6/+34
2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> * config/msp430/slli.S (__mspabi_slli_n): Put function in its own section. (__mspabi_slli): Likewise. (__mspabi_slll_n): Likewise. (__mspabi_slll): Likewise. * config/msp430/srai.S (__mspabi_srai_n): Likewise. (__mspabi_srai): Likewise. (__mspabi_sral_n): Likewise. (__mspabi_sral): Likewise. * config/msp430/srli.S (__mspabi_srli_n): Likewise. (__mspabi_srli): Likewise. (__mspabi_srll_n): Likewise. (__mspabi_srll): Likewise. From-SVN: r271992
2019-06-05config.host (rx-*-linux*): Add t-fdpbit to tmake_file Add appropriate ↵Yoshinori Sato3-2/+8
tm_file clause as well. * config.host (rx-*-linux*): Add t-fdpbit to tmake_file Add appropriate tm_file clause as well. * config/rx/t-rx (HOST_LIBGCC2_CFLAGS): Remove. From-SVN: r271978