From 61afc8f8f0406f00e3020e862bb07c3b48ff26ca Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Thu, 4 Jul 2019 18:28:59 +0000 Subject: [Darwin] Revert one hunk from r273016 (TLC for older Darwin versions). t-darwin8 is nolonger needed (or present) for pre-10.4 powerpc, so remove the reference. 2019-07-04 Iain Sandoe * config.host: Remove reference to t-darwin8. From-SVN: r273091 --- libgcc/ChangeLog | 4 ++++ libgcc/config.host | 4 +--- 2 files changed, 5 insertions(+), 3 deletions(-) (limited to 'libgcc') diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index f9f900b..d5fb54b 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,7 @@ +2019-07-04 Iain Sandoe + + * config.host: Remove reference to t-darwin8. + 2019-07-03 Iain Sandoe * config.host (powerpc-*-darwin*,powerpc64-*-darwin*): Revise crt diff --git a/libgcc/config.host b/libgcc/config.host index e11a065..f5ca779 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -1084,11 +1084,9 @@ powerpc-*-darwin*) case ${host} in *-*-darwin9* | *-*-darwin[12][0-9]*) # libSystem contains unwind information for signal frames since - # Darwin 9. We don't need longcall either. + # Darwin 9. ;; *) - # prepend the fragment forcing darwin8 codegen. - tmake_file="rs6000/t-darwin8 $tmake_file" md_unwind_header=rs6000/darwin-unwind.h ;; esac -- cgit v1.1 From aac9480da1ffd037ceb21790fe341b3ec23283d9 Mon Sep 17 00:00:00 2001 From: Martin Sebor Date: Tue, 9 Jul 2019 04:15:42 +0000 Subject: PR middle-end/71924 - missing -Wreturn-local-addr returning alloca result 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 --- libgcc/generic-morestack.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'libgcc') diff --git a/libgcc/generic-morestack.c b/libgcc/generic-morestack.c index 0f6f000..2dc3733 100644 --- a/libgcc/generic-morestack.c +++ b/libgcc/generic-morestack.c @@ -23,6 +23,8 @@ a copy of the GCC Runtime Library Exception along with this program; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ +#pragma GCC optimize ("no-isolate-erroneous-paths-dereference") + /* powerpc 32-bit not supported. */ #if !defined __powerpc__ || defined __powerpc64__ -- cgit v1.1 From 9c0dba7c451ddd232dc3ba8a5ebc797762c74736 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 21 Jul 2019 20:59:50 +0000 Subject: or1k: Fix issues with msoft-div 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 --- libgcc/ChangeLog | 8 ++++++++ libgcc/config/or1k/lib1funcs.S | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'libgcc') diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index d5fb54b..0a449a7 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,11 @@ +2019-07-22 Stafford Horne + + 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. + 2019-07-04 Iain Sandoe * config.host: Remove reference to t-darwin8. diff --git a/libgcc/config/or1k/lib1funcs.S b/libgcc/config/or1k/lib1funcs.S index d210392..6d05897 100644 --- a/libgcc/config/or1k/lib1funcs.S +++ b/libgcc/config/or1k/lib1funcs.S @@ -68,18 +68,18 @@ __udivmodsi3_internal: is not clobbered by this routine, and use that as to save a return address without creating a stack frame. */ - l.sfeqi r4, 0 /* division by zero; return 0. */ + l.sfeq r4, r0 /* division by zero; return 0. */ l.ori r11, r0, 0 /* initial quotient */ l.bf 9f l.ori r12, r3, 0 /* initial remainder */ /* Given X/Y, shift Y left until Y >= X. */ l.ori r6, r0, 1 /* mask = 1 */ -1: l.sfltsi r4, 0 /* y has msb set */ +1: l.sflts r4, r0 /* y has msb set */ l.bf 2f l.sfltu r4, r12 /* y < x */ l.add r4, r4, r4 /* y <<= 1 */ - l.bnf 1b + l.bf 1b l.add r6, r6, r6 /* mask <<= 1 */ /* Shift Y back to the right again, subtracting from X. */ -- cgit v1.1 From a861990d21a7f495695597e75509a834d44fdb2d Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Mon, 22 Jul 2019 09:34:47 +0200 Subject: Do not emit __gnu_lto_v1 symbol. 2019-07-22 Martin Liska * 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 * config/pa/stublib.c: Remove stub symbol __gnu_lto_v1. * config/pa/t-stublib: Likewise. 2019-07-22 Martin Liska * 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 --- libgcc/ChangeLog | 5 +++++ libgcc/config/pa/stublib.c | 4 ---- libgcc/config/pa/t-stublib | 6 +----- 3 files changed, 6 insertions(+), 9 deletions(-) (limited to 'libgcc') diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 0a449a7..7997ad8 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,8 @@ +2019-07-22 Martin Liska + + * config/pa/stublib.c: Remove stub symbol __gnu_lto_v1. + * config/pa/t-stublib: Likewise. + 2019-07-22 Stafford Horne PR target/90362 diff --git a/libgcc/config/pa/stublib.c b/libgcc/config/pa/stublib.c index b47afe1..7e79dbf 100644 --- a/libgcc/config/pa/stublib.c +++ b/libgcc/config/pa/stublib.c @@ -115,7 +115,3 @@ pthread_once (void) return 0; } #endif - -#ifdef L_gnu_lto_v1 -char gnu_lto_v1; -#endif diff --git a/libgcc/config/pa/t-stublib b/libgcc/config/pa/t-stublib index 0a6223d..8004c1e 100644 --- a/libgcc/config/pa/t-stublib +++ b/libgcc/config/pa/t-stublib @@ -3,8 +3,7 @@ LIBGCCSTUB_OBJS = rfi-stub.o dfi-stub.o ritm-stub.o ditm-stub.o \ pthread_default_stacksize_np-stub.o \ pthread_mutex_lock-stub.o \ pthread_mutex_unlock-stub.o \ - pthread_once-stub.o \ - gnu_lto_v1-stub.o + pthread_once-stub.o rfi-stub.o: $(srcdir)/config/pa/stublib.c $(gcc_compile) -c -O2 -DL_register_frame_info $< @@ -36,9 +35,6 @@ pthread_mutex_unlock-stub.o: $(srcdir)/config/pa/stublib.c pthread_once-stub.o: $(srcdir)/config/pa/stublib.c $(gcc_compile) -c -O2 -DL_pthread_once $< -gnu_lto_v1-stub.o: $(srcdir)/config/pa/stublib.c - $(gcc_compile) -c -O2 -DL_gnu_lto_v1 $< - libgcc_stub.a: $(LIBGCCSTUB_OBJS) -rm -rf $@ $(AR) rc $@ $(LIBGCCSTUB_OBJS) -- cgit v1.1