Re: [PATCH] rs6000: Optimise SImode cstore on 64-bit

2015-12-01 Thread Alan Modra
On Wed, Dec 02, 2015 at 01:55:17AM +, Segher Boessenkool wrote: > + emit_insn (gen_subdi3 (tmp, op1, op2)); > + emit_insn (gen_lshrdi3 (tmp2, tmp, GEN_INT (63))); > + emit_insn (gen_anddi3 (tmp3, tmp2, const1_rtx)); Why the AND? The top 63 bits are already clear. -- Alan Modra

Fix endian issue in pr91656 testcases

2019-09-27 Thread Alan Modra
4 @@ int d (u16 e, u64 f) { b |= e; +#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ __builtin_memset (&f, e, 2); +#elif (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ \ + || __BYTE_ORDER__ == __ORDER_PDP_ENDIAN__) + __builtin_memset ((char *) &f + sizeof (f) - 2, e, 2); +#else +#error "endian

Re: [RFC, Darwin, PPC] Fix PR 65342.

2019-10-16 Thread Alan Modra
Alan, can you have a look as well please? It looks reasonable to me. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] Fix slowness in demangler

2019-11-20 Thread Alan Modra
he gcc repo. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] V7, #4 of 7, Add explicit (0),1 to @pcrel references

2019-11-25 Thread Alan Modra
Probably not, but we might want something similar to generate the high part of a 64-bit pcrel offset. pli 11,(foo-1f)@highera34 sldi 11,11,34 1: pla 12,foo@pcrel add 12,11,12 We don't have the necessary relocs at the moment, and in any case we might be better off with other code sequences. -- Alan Modra Australia Development Lab, IBM

[PATCH] Fix pr80044, -static and -pie insanity, and pr81170

2017-06-22 Thread Alan Modra
mnewlib ecrtn.o%s selection substituted for crtn.o%s. */ +#if defined HAVE_LD_PIE +#define ENDFILE_LINUX_SPEC \ + "%{fvtable-verify=none:%s; \ + fvtable-verify=preinit:vtv_end_preinit.o%s; \ + fvtable-verify=std:vtv_end.o%s} \ + %{static:crtend.o%s; \ + shared|" PIE_SPEC ":crtendS.o%s; \ + :crtend.o%s} \ + %{mnewlib:ecrtn.o%s;:crtn.o%s} \ + " CRTOFFLOADEND +#else +#define ENDFILE_LINUX_SPEC \ + "%{fvtable-verify=none:%s; \ + fvtable-verify=preinit:vtv_end_preinit.o%s; \ + fvtable-verify=std:vtv_end.o%s} \ + %{static:crtend.o%s; \ + shared|pie:crtendS.o%s; \ + :crtend.o%s} \ + %{mnewlib:ecrtn.o%s;:crtn.o%s} \ + " CRTOFFLOADEND +#endif #define LINK_START_LINUX_SPEC "" -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] Fix pr80044, -static and -pie insanity, and pr81170

2017-06-29 Thread Alan Modra
Ping? Linux startfile and endfile specs. https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01678.html -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] Fix PR83452

2017-12-19 Thread Alan Modra
ot; and "___gnu_lto_slim".. So another possibility would be for gcc to switch to using "__gnu__LTO_v1", with the replacement being "__LTO_v1". Or emit an entirely new symbol just to use as a replacement.) -- Alan Modra Australia Development Lab, IBM

Re: [PATCH 0/5] x86: CVE-2017-5715, aka Spectre

2018-01-08 Thread Alan Modra
ight be hiding in code when executed at an offset from the start of the "real" instructions. Which is why x86 is more at risk from this attack than other processors, and why x86 needs something like the posted variant 2 mitigation, slowing down all indirect branches. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH 0/5] x86: CVE-2017-5715, aka Spectre

2018-01-11 Thread Alan Modra
On Wed, Jan 10, 2018 at 05:13:36PM -0700, Jeff Law wrote: > On 01/08/2018 07:23 AM, Alan Modra wrote: > > On Sun, Jan 07, 2018 at 04:36:20PM -0700, Jeff Law wrote: > >> On 01/07/2018 03:58 PM, H.J. Lu wrote: > >>> This set of patches for GCC 8 mitigates

PR84033, powerpc64le -moptimize-swaps bad code with vec_vbpermq

2018-01-25 Thread Alan Modra
.m) != 3) + __builtin_abort (); + return 0; +} -- Alan Modra Australia Development Lab, IBM

Re: [SFN+LVU+IEPM v4 9/9] [IEPM] Introduce inline entry point markers

2018-02-08 Thread Alan Modra
tch" when compiling libdecnumber. -- Alan Modra Australia Development Lab, IBM

PR84300, ICE in dwarf2cfi on ppc64le

2018-02-08 Thread Alan Modra
dg-do compile } */ +/* { dg-require-effective-target split_stack } */ +/* { dg-options "-g -O2 -fsplit-stack -fno-omit-frame-pointer" } */ + +void trap () { __builtin_trap (); } -- Alan Modra Australia Development Lab, IBM

Re: [SFN+LVU+IEPM v4 9/9] [IEPM] Introduce inline entry point markers

2018-02-09 Thread Alan Modra
On Fri, Feb 09, 2018 at 08:34:08AM -0200, Alexandre Oliva wrote: > * config/rs6000/rs6000.md (blockage): Set length to zero. Thanks! This fixed the ppc64le libdecnumber error for me. -- Alan Modra Australia Development Lab, IBM

Re: PR84300, ICE in dwarf2cfi on ppc64le

2018-02-09 Thread Alan Modra
On Fri, Feb 09, 2018 at 08:11:44AM -0600, Segher Boessenkool wrote: > On Fri, Feb 09, 2018 at 04:12:47PM +1030, Alan Modra wrote: > > ;; Use r0 to stop regrename twiddling with lr restore insns emitted > > ;; after the call to __morestack. > > (define_ins

gcc testsuite changes for new linker messages

2018-02-27 Thread Alan Modra
ub -all "(^|\n)\[^\n\]*: (recursively )?required \[^\n\]*" $text "" text regsub -all "(^|\n)\[^\n\]*: . skipping \[0-9\]* instantiation contexts \[^\n\]*" $text "" text -- Alan Modra Australia Development Lab, IBM

Re: [PATCH][GCC][mid-end] Allow larger copies when target supports unaligned access [Patch (1/2)]

2018-03-29 Thread Alan Modra
ted bit-field can exceed the source size. That will result in rubbish being read into a register. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH][GCC][mid-end] Allow larger copies when target supports unaligned access [Patch (1/2)]

2018-04-03 Thread Alan Modra
On Tue, Apr 03, 2018 at 01:01:23PM +0200, Richard Biener wrote: > On Fri, 30 Mar 2018, Peter Bergner wrote: > > > On 3/29/18 9:35 AM, Alan Modra wrote: > > > On Thu, Nov 16, 2017 at 03:27:01PM +, Tamar Christina wrote: > > >> --- a/gcc/expr.c > > >&g

Re: [PATCH][GCC][mid-end] Allow larger copies when target supports unaligned access [Patch (1/2)]

2018-04-03 Thread Alan Modra
On Tue, Apr 03, 2018 at 02:30:23PM +0200, Richard Biener wrote: > On Tue, 3 Apr 2018, Alan Modra wrote: > > > On Tue, Apr 03, 2018 at 01:01:23PM +0200, Richard Biener wrote: > > > On Fri, 30 Mar 2018, Peter Bergner wrote: > > > > > > > On 3/29/18 9:35 A

Re: [PATCH][GCC][mid-end] Fix PR85123 incorrect copies

2018-04-05 Thread Alan Modra
___ | 0 | 0 | s0 | s1 | | s2 | s3 | s4 | s5 | ~~~ ~~~ So we will have xbitpos=16 first time around the loop. That means your new code will attempt to store 32 bits into a bit-field starting at bit 16 in the first 32-bit

PR85532, crtend.o built without --enable-initfini-array has bad .eh_frame

2018-04-26 Thread Alan Modra
after libgcc.a. See PR45053. -CRTSTUFF_T_CFLAGS = -msdata=none -O2 +CRTSTUFF_T_CFLAGS = -msdata=none -O2 -fno-asynchronous-unwind-tables -- Alan Modra Australia Development Lab, IBM

ATTRIBUTE_NONSTRING

2018-04-26 Thread Alan Modra
RSION >= 8000 +# define ATTRIBUTE_NONSTRING __attribute__ ((nonstring)) +# else +# define ATTRIBUTE_NONSTRING +# endif +#endif + /* We use __extension__ in some places to suppress -pedantic warnings about GCC extensions. This feature didn't work properly before gcc 2.8. */ --

Re: PR85532, crtend.o built without --enable-initfini-array has bad .eh_frame

2018-04-27 Thread Alan Modra
On Fri, Apr 27, 2018 at 09:31:37AM +0200, Jakub Jelinek wrote: > On Fri, Apr 27, 2018 at 02:27:40AM -0500, Segher Boessenkool wrote: > > Hi Alan, > > > > On Fri, Apr 27, 2018 at 10:49:14AM +0930, Alan Modra wrote: > > > This patch is aimed at removing bogus .e

Re: ATTRIBUTE_NONSTRING

2018-04-27 Thread Alan Modra
On Fri, Apr 27, 2018 at 06:24:28PM -0400, Hans-Peter Nilsson wrote: > On Fri, 27 Apr 2018, Alan Modra wrote: > > > This patch adds ATTRIBUTE_NONSTRING, which will be used to curb > > -Wstringop-truncation warnings in binutils. OK to apply? > > > > * ansidecl.h

libffi PowerPC64 ELFv1 fp arg fixes

2018-05-04 Thread Alan Modra
The attached patch has been accepted into upstream libffi. It fixes powerpc64-linux problems shown up by Bruno Haible's new libffi testsuite tests. Bootstrapped and regression tested powerpc64-linux and powerpc64le-linux. OK mainline and active branches? -- Alan Modra Australia Develo

Re: libffi PowerPC64 ELFv1 fp arg fixes

2018-05-04 Thread Alan Modra
On Fri, May 04, 2018 at 06:02:27AM -0500, Segher Boessenkool wrote: > On Fri, May 04, 2018 at 07:40:20PM +0930, Alan Modra wrote: > > The attached patch has been accepted into upstream libffi. It fixes > > powerpc64-linux problems shown up by Bruno Haible's new libffi

Re: [PATCH][PR debug/60655] Power/GCC: Reject cross-section symbol subtraction

2014-09-02 Thread Alan Modra
I does not appear to have a relocation defined > > to support taking a difference of two symbols in different sections each. > > This is seen as a failure in gcc.c-torture/compile/pr60655-2.c: -- Alan Modra Australia Development Lab, IBM

Re: [PATCH][PR debug/60655] Power/GCC: Reject cross-section symbol subtraction

2014-09-04 Thread Alan Modra
On Wed, Sep 03, 2014 at 03:01:17PM +0930, Alan Modra wrote: > In fact if you look at the corresponding location expression for > -fno-section-anchors code you get something quite screwy too. > > 018f 0108 0114 (DW_OP_breg10 (r10): 0; DW_OP_addr: 144; > DW_OP_plus; DW

Re: [PATCH][PR debug/60655] Power/GCC: Reject cross-section symbol subtraction

2014-09-04 Thread Alan Modra
On Thu, Sep 04, 2014 at 10:05:38PM +0100, Maciej W. Rozycki wrote: > On Thu, 4 Sep 2014, Alan Modra wrote: > > > > In fact if you look at the corresponding location expression for > > > -fno-section-anchors code you get something quite screwy too. > > >

[RS6000] Mangling of IBM long double template literals

2013-11-12 Thread Alan Modra
Ping this patch: http://gcc.gnu.org/ml/gcc-patches/2013-06/msg00686.html -- Alan Modra Australia Development Lab, IBM

Re: [PATCH, rs6000] ELFv2 ABI 1/8: Add options and infrastructure

2013-11-13 Thread Alan Modra
x registers. This means work in gcc, in glibc, in gdb, and likely other places, and as Uli has already said, we have time and resource constraints. -- Alan Modra Australia Development Lab, IBM

[PowerPC] libffi fixes and support for PowerPC64 ELFv2

2013-11-16 Thread Alan Modra
and powerpc64le-linux by gcc bootstrap and regression testing. I guess the normal procedure would be to wait for upstream approval before applying here, but since Uli's gcc support for ELFv2 is in, it would be nice to have a working libffi along with that. -- Alan Modra Australia Developmen

Reinstate powerpc bounce buffer copying in ffi.c

2013-11-16 Thread Alan Modra
ize +left-padded in r3/r4. */ + else if (rsize <= 8) + memcpy (rvalue, (char *) smst_buffer + 8 - rsize, rsize); + else +#endif + memcpy (rvalue, smst_buffer, rsize); +} } -- Alan Modra Australia Development Lab, IBM

libffi doc fixes

2013-11-16 Thread Alan Modra
if (ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1, - &ffi_type_uint, args) == FFI_OK) + &ffi_type_sint, args) == FFI_OK) @{ /* Initialize the closure, setting stream to stdout */ if (ffi_prep_closure_loc(closure, &cif, puts_binding, -- Alan Modra Australia Development Lab, IBM

Pass floating point values on powerpc64 as per ABI

2013-11-16 Thread Alan Modra
ut "\nres: 4" } */ - /* The call to cls_longdouble_va_fn is static, so have to use a normal prep_cif */ - CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2, &ffi_type_sint, - arg_types) == FFI_OK); + CHECK(ffi_prep_closure_loc(pcl, &cif, cls_longdou

Support PowerPC64 ELFv2 ABI

2013-11-16 Thread Alan Modra
blr +.Lsmalldown: + addi %r5, %r5, FFI_V2_TYPE_SMALL_STRUCT + 7 + mtlr %r0 + sldi %r5, %r5, 3 + addi %r1, %r1, STACKFRAME + srd %r3, %r3, %r5 + blr +# endif + .LFE1: .long 0 .byte 0,12,0,1,128,0,0,0 -#ifdef _CALL_LINUX +# if _CALL_ELF == 2 + .size ffi_closure_LINUX64,.-ffi_closure_LINUX64 +# else +# ifdef _CALL_LINUX .size ffi_closure_LINUX64,.-.L.ffi_closure_LINUX64 -#else +# else .size .ffi_closure_LINUX64,.-.ffi_closure_LINUX64 -#endif +# endif +# endif .section.eh_frame,EH_FRAME_FLAGS,@progbits .Lframe1: -- Alan Modra Australia Development Lab, IBM

Tidy powerpc linux64_closure.S with defines for stack offsets

2013-11-16 Thread Alan Modra
E1: -#endif -#if defined __ELF__ && defined __linux__ +# if defined __ELF__ && defined __linux__ .section.note.GNU-stack,"",@progbits +# endif #endif -- Alan Modra Australia Development Lab, IBM

Align powerpc64 structs passed by value as per ABI

2013-11-16 Thread Alan Modra
ENDIAN__ /* Structures with size less than eight bytes are passed left-padded. */ -- Alan Modra Australia Development Lab, IBM

Re: [PowerPC] libffi fixes and support for PowerPC64 ELFv2

2013-11-16 Thread Alan Modra
On Sat, Nov 16, 2013 at 10:18:05PM +1030, Alan Modra wrote: > The following six patches correspond to patches posted to the libffi > mailing list a few days ago to add support for PowerPC64 ELFv2. The The ChangeLog just became easier to write. :) * src/powerpc/ffitarget.h: Impor

Re: [PowerPC] libffi fixes and support for PowerPC64 ELFv2

2013-11-17 Thread Alan Modra
On Sun, Nov 17, 2013 at 07:53:59AM -0500, David Edelsohn wrote: > On Sun, Nov 17, 2013 at 1:25 AM, Alan Modra wrote: > > On Sat, Nov 16, 2013 at 10:18:05PM +1030, Alan Modra wrote: > >> The following six patches correspond to patches posted to the libffi > >> mailing

Re: Pass floating point values on powerpc64 as per ABI

2013-11-18 Thread Alan Modra
On Mon, Nov 18, 2013 at 10:10:39AM +0100, Andreas Schwab wrote: > Alan Modra writes: > > > - /* The call to cls_double_va_fn is static, so have to use a normal > > prep_cif */ > > - CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2, &ffi_type_sint, arg_types)

Re: Pass floating point values on powerpc64 as per ABI

2013-11-18 Thread Alan Modra
On Tue, Nov 19, 2013 at 01:27:39AM +0100, Andreas Schwab wrote: > Alan Modra writes: > > > On Mon, Nov 18, 2013 at 10:10:39AM +0100, Andreas Schwab wrote: > >> Alan Modra writes: > >> > >> > -/* The call to cls_double_va_fn is static

Re: Pass floating point values on powerpc64 as per ABI

2013-11-18 Thread Alan Modra
On Tue, Nov 19, 2013 at 11:16:26AM +1030, Alan Modra wrote: > On Tue, Nov 19, 2013 at 01:27:39AM +0100, Andreas Schwab wrote: > > Where does it call a varargs function? > > printf Sorry that wasn't such a helpful response. Here, really: res = ((int(*)(char*,

Re: [RS6000] strict alignment for little-endian

2013-11-18 Thread Alan Modra
On Mon, Jun 10, 2013 at 03:14:04PM -0400, Michael Meissner wrote: > On Fri, Jun 07, 2013 at 10:54:39AM +0930, Alan Modra wrote: > > I'd like to remove -mstrict-align for little-endian powerpc, because > > the assumption that mis-aligned accesses are massively slow isn&#x

Re: [PATCH] Use libbacktrace as libsanitizer's symbolizer

2013-11-18 Thread Alan Modra
ror 1 > > brgds, H-P > PS. Host is Fedora 12, x86_64. Likewise on powerpc-linux. Fixed here by #include in atomic.c. -- Alan Modra Australia Development Lab, IBM

Re: [PowerPC] libffi fixes and support for PowerPC64 ELFv2

2013-11-21 Thread Alan Modra
c_closure.S +nodist_libffi_la_SOURCES += src/powerpc/ffi.c src/powerpc/ffi_sysv.c src/powerpc/sysv.S src/powerpc/ppc_closure.S endif if AARCH64 nodist_libffi_la_SOURCES += src/aarch64/sysv.S src/aarch64/ffi.c -- Alan Modra Australia Development Lab, IBM

Re: [PATCH, rs6000] power8 patches, revised patch #8, power8 load fusion

2013-11-22 Thread Alan Modra
ch_operand:P 3 "int_reg_operand" "") (match_dup 0] - "TARGET_P8_FUSION" + "TARGET_VSX && TARGET_P8_FUSION" "li %0,%1\t\t\t# vector load fusion\;lxx %x2,%0,%3" [(set_attr "length" "8") (set_attr "type" "vecload")]) -- Alan Modra Australia Development Lab, IBM

Re: Pass floating point values on powerpc64 as per ABI

2013-11-25 Thread Alan Modra
On Tue, Nov 19, 2013 at 10:16:31AM +0100, Andreas Schwab wrote: > Alan Modra writes: > > > On Tue, Nov 19, 2013 at 11:16:26AM +1030, Alan Modra wrote: > >> On Tue, Nov 19, 2013 at 01:27:39AM +0100, Andreas Schwab wrote: > >> > Where does it call a va

gcc's obvious patch policy

2013-11-25 Thread Alan Modra
tch rule just apply to non-maintainers? /no-rant Can I recommend gdb's obvious patch policy? It even tickles my sense of humour. "will the person who hates my work the most be able to find fault with the change" - if so, then it's not obvious.. -- Alan Modra Australia Development Lab, IBM

Re: libgo patch committed: Only call varargs from C

2013-11-26 Thread Alan Modra
rt calls to functions with no prototype in scope, including variable argument functions. -- Alan Modra Australia Development Lab, IBM

Re: Fix pr61848, linux kernel miscompile

2014-10-15 Thread Alan Modra
On Thu, Sep 18, 2014 at 10:02:25PM -0600, Jeff Law wrote: > On 09/16/14 00:03, Alan Modra wrote: > >gcc testsuite additions? I decline. It is too soon. If you had read > >my patch submission you'll see that at some stage gcc was supposed to > >warn on conflicting sect

Re: PR debug/60655, debug loc expressions

2014-10-15 Thread Alan Modra
Ping? https://gcc.gnu.org/ml/gcc-patches/2014-09/msg00704.html -- Alan Modra Australia Development Lab, IBM

Re: PR debug/60655, debug loc expressions

2014-10-20 Thread Alan Modra
XEXP (tem, 0)) == ncode + && XEXP (XEXP (tem, 0), 0) == lhs + && XEXP (XEXP (tem, 0), 1) == rhs) + break; lneg &= rneg; if (GET_CODE (tem) == NEG) tem = XEXP (tem, 0), lneg = !lneg; -- Alan Modra Australia Development Lab, IBM

Fix 63615 - FAIL: gcc.target/i386/addr-sel-1.c

2014-10-22 Thread Alan Modra
canonicalized |= this_neg; + canonicalized |= this_neg || i != n_ops - 2; break; case NEG: -- Alan Modra Australia Development Lab, IBM

Re: [RS6000] PR61300 K&R incoming args

2014-06-05 Thread Alan Modra
at leaves just the comment near the start of the file, and since it says "If REG_PARM_STACK_SPACE is defined" that is still true and reads best for someone coming from a target that doesn't define INCOMING_REG_PARM_STACK_SPACE. > OK to apply. Thanks for reviewing! Committed revision 211296. -- Alan Modra Australia Development Lab, IBM

PR61583, stage2 and stage3 compare failure due to value range loss

2014-06-23 Thread Alan Modra
tin_unreachable (); + + for (j = 0; j < n; j++) +f2 (j); +} -- Alan Modra Australia Development Lab, IBM

Re: Warn when returning the address of a temporary (middle-end) v2

2014-07-02 Thread Alan Modra
rameter save area, returning the address of something in the parameter save area merits a warning. The ABIs explicitly state that the parameter save area is not preserved over function calls. Also note that anything left in a caller allocated parameter save area will potentially be trashed by arguments written for the next call. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] Power/GCC: Subword atomic operation endianness check bug fix

2014-07-02 Thread Alan Modra
>emit_insn (gen_rlwinm (shift, addr, GEN_INT (3), GEN_INT (shift_mask))); > - if (WORDS_BIG_ENDIAN) > + if (BYTES_BIG_ENDIAN) > shift = expand_simple_binop (SImode, XOR, shift, GEN_INT (shift_mask), >shift, 1, OPTAB_LIB_WIDEN); >*pshift =

[Patch 0/4] PowerPC64 Linux split stack support

2015-05-17 Thread Alan Modra
The following series of patches add -fsplit-stack support for powerpc64-linux. Each was cumulatively bootstrapped and regression tested powerpc64-linux and powerpc64le-linux. -- Alan Modra Australia Development Lab, IBM

[PATCH 1/4] rs6000_stack_info changes for -fsplit-stack

2015-05-17 Thread Alan Modra
gt;total_size + (info->lr_save_p +? info->lr_save_offset +: 0) > 32767 || (cfun->calls_alloca && !frame_pointer_needed)); restore_lr = (info->lr_save_p -- Alan Modra Australia Development Lab, IBM

[PATCH 2/4] prologue and epilogue tidy and -mno-vrsave bug fix

2015-05-17 Thread Alan Modra
_emit_epilogue (int sibcall) /* Restore VRSAVE if we have not done so already. */ if (!ALWAYS_RESTORE_ALTIVEC_BEFORE_POP - && TARGET_ALTIVEC - && TARGET_ALTIVEC_VRSAVE - && info->vrsave_mask != 0 + && info->vrsave_size != 0 && (DEFAULT_ABI == ABI_V4 || !offset_below_red_zone_p (info->vrsave_save_offset))) { -- Alan Modra Australia Development Lab, IBM

[PATCH 4/4] Split-stack arg pointer init refinement

2015-05-17 Thread Alan Modra
t frame. */ - if (frame_off != 0 || REGNO (frame_reg_rtx) != 12) + if (sp_adjust) + { + rtx r12 = gen_rtx_REG (Pmode, 12); + rtx set_r12 = gen_rtx_SET (r12, sp_reg_rtx); + emit_insn_before (set_r12, sp_adjust); + } + else if (frame_off != 0 || REGNO (fra

Re: [PATCH 3/4] split-stack for powerpc64

2015-05-17 Thread Alan Modra
On Mon, May 18, 2015 at 12:24:51PM +0930, Alan Modra wrote: > +error ("%<-fsplit-stack%> currently only supported on PowerPC64 > GNU/Linux with glibc-2.18 or later"); I forgot to comment on this. 2.19 is actually when __private_ss appeared in the ppc tcbhead_t, but I m

[PATCH, RS6000] gpc_reg_operand

2015-05-18 Thread Alan Modra
perand:CC 4 "cc_reg_operand" "=x") (compare:CC (zero_extract:DI (match_operand:DI 1 "gpc_reg_operand" "r") (match_operand:SI 2 "const_int_operand" "i") (match_operand:SI 3 "const_int_operand" "i")) Index: gcc/config/rs6000/vsx.md === --- gcc/config/rs6000/vsx.md(revision 223208) +++ gcc/config/rs6000/vsx.md(working copy) @@ -1199,7 +1199,8 @@ ;; the fprs because we don't want to add the altivec registers to movdi/movsi. ;; For the unsigned tests, there isn't a generic double -> unsigned conversion ;; in rs6000.md so don't test VECTOR_UNIT_VSX_P, just test against VSX. -;; Don't use vsx_register_operand here, use gpc_reg_operand to match rs6000.md. +;; Don't use vsx_register_operand here, use gpc_reg_operand to match rs6000.md +;; in allowing virtual registers. (define_insn "vsx_float2" [(set (match_operand:VSX_F 0 "gpc_reg_operand" "=,?") (float:VSX_F (match_operand: 1 "gpc_reg_operand" ",")))] -- Alan Modra Australia Development Lab, IBM

Re: [patch, gcc 5 regression] re-enable biarch for powerpc-linux-gnu

2015-05-19 Thread Alan Modra
On Tue, May 19, 2015 at 02:18:23PM -0400, David Edelsohn wrote: > This seems reasonable to me. > > Alan, any thoughts from you? Looks good. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH 3/4] split-stack for powerpc64

2015-05-19 Thread Alan Modra
split-stack being honoured. > - The comments say that the gold linker is used for some > situations but I don't see any reference in the code to enabling > the gold linker for ppc64le, ppc64, or x86. Is the user expected > to add the option for the gold linker if needed? At t

Re: [PATCH 1/4] rs6000_stack_info changes for -fsplit-stack

2015-05-19 Thread Alan Modra
On Mon, May 18, 2015 at 02:05:59PM -0400, David Edelsohn wrote: > On Sun, May 17, 2015 at 10:54 PM, Alan Modra wrote: > > This patch changes rs6000_stack_info to keep save areas offsets even > > when not used. I need lr_save_offset valid for split-stack, and it > > seemed re

Re: [PATCH 4/4] Split-stack arg pointer init refinement

2015-05-19 Thread Alan Modra
field in the TCB, available with glibc-2.18. */ writing /* -fsplit-stack uses a field in the TCB, available with glibc-2.19. We also allow 2.18 because alignment padding guarantees that the space is available there too. */ because it's a lie to say the field was there in 2.18. --

Re: [PATCH 1/4] rs6000_stack_info changes for -fsplit-stack

2015-05-20 Thread Alan Modra
On Wed, May 20, 2015 at 09:02:40AM -0400, David Edelsohn wrote: > On Tue, May 19, 2015 at 9:09 PM, Alan Modra wrote: > > On Mon, May 18, 2015 at 02:05:59PM -0400, David Edelsohn wrote: > >> On Sun, May 17, 2015 at 10:54 PM, Alan Modra wrote: > >> > This patch cha

Re: [PATCH 3/4] split-stack for powerpc64

2015-05-20 Thread Alan Modra
ne PARAMS 48 #endif #define MORESTACK_FRAMESIZE (PARAMS+96) -- Alan Modra Australia Development Lab, IBM

[PATCH] Combine related fail of gcc.target/powerpc/ti_math1.c

2015-05-21 Thread Alan Modra
= i; } - while (changed); + /* If nothing changed, fail. */ + if (!not_canonical) +return NULL_RTX; + /* Create (minus -C X) instead of (neg (const (plus X C))). */ if (n_ops == 2 && CONST_INT_P (ops[1].op) -- Alan Modra Australia Development Lab, IBM

[PATCH] Don't combine param and return value copies

2015-05-23 Thread Alan Modra
(use_insn)) >= 0) continue; @@ -1124,6 +1213,16 @@ create_log_links (void) } } + /* Repair BLOCK_FOR_INSN. */ + + bb = ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb; + twiddle_first_block (bb, bb); + if (!hard_reg_set_empty_p (return_regs)) +{ + bb = EXIT_B

Re: [PATCH] Don't combine param and return value copies

2015-05-24 Thread Alan Modra
&& HARD_REGISTER_NUM_P (regno) && REG_NREGS (x) > 1) { unsigned int ourend = END_REGNO (x); @@ -13588,7 +13588,7 @@ reg_bitfield_target_p (rtx x, rtx body) return 0; tregno = REGNO (target), regno = REGNO (x); - if (tregno >= FIRST_PSEUDO_REGISTER || regno >= FIRST_PSEUDO_REGISTER) + if (!HARD_REGISTER_NUM_P (tregno) || !HARD_REGISTER_NUM_P (regno)) return target == x; endtregno = end_hard_regno (GET_MODE (target), tregno); @@ -13922,7 +13922,7 @@ distribute_notes (rtx notes, rtx_insn *from_insn, TEM_INSN is doing. If so, delete TEM_INSN. Otherwise, make this into a REG_UNUSED note instead. Don't delete sets to global register vars. */ - if ((REGNO (XEXP (note, 0)) >= FIRST_PSEUDO_REGISTER + if ((!HARD_REGISTER_P (XEXP (note, 0)) || !global_regs[REGNO (XEXP (note, 0))]) && reg_set_p (XEXP (note, 0), PATTERN (tem_insn))) { -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] Don't combine param and return value copies

2015-05-24 Thread Alan Modra
On Mon, May 25, 2015 at 10:26:35AM +0930, Alan Modra wrote: > looking at gcc/*.o I haven't yet seen any regressions in code quality.) Well that didn't last very long. There are regressions, and just from looking at disassembled object files it would appear to be frame pointer rel

Re: [PATCH] Don't combine param and return value copies

2015-05-26 Thread Alan Modra
SET_DEST (reg_reg)), + REGNO (SET_DEST (reg_reg))); + } + else if (can_combine_use_p (use)) + next_use[DF_REF_REGNO (use)] = insn; + } } + CLEAR_HARD_REG_SET (hard_regs); } free (next_use); -- Alan Modra Australia Development Lab, IBM

Re: [PATCH 3/4] split-stack for powerpc64

2015-05-29 Thread Alan Modra
", global_regs_decl[29]); +} + allocate = info->total_size; if (allocate > (unsigned HOST_WIDE_INT) 1 << 31) { -- Alan Modra Australia Development Lab, IBM

[RS6000] vsx_extract_v4sf

2015-05-31 Thread Alan Modra
t; ",") +(match_operand:V4SF 1 "vsx_register_operand" "wa,wa") (parallel [(match_operand:QI 2 "u5bit_cint_operand" "O,i")]))) (clobber (match_scratch:V4SF 3 "=X,0"))] "VECTOR_UNIT_VSX_P (V4SFmode)" -- Alan Modra Australia Development Lab, IBM

[Patch] pr65779 - [5/6 Regression] undefined local symbol on powerpc

2015-04-19 Thread Alan Modra
+ 8, 9, 10, 11, 12, 13, 14, 15, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x55, 0xaa }; +int +main () +{ + unsigned long x = adler32 (0, buf, sizeof bu

Re: [Patch] pr65779 - [5/6 Regression] undefined local symbol on powerpc

2015-04-20 Thread Alan Modra
On Mon, Apr 20, 2015 at 09:35:07AM +0200, Jakub Jelinek wrote: > On Mon, Apr 20, 2015 at 12:40:49PM +0930, Alan Modra wrote: > > with the log for the ubsan fails > > /src/gcc-5/gcc/testsuite/c-c++-common/ubsan/object-size-10.c:19:11: runtime > > error: index 128 out of bound

Re: [Patch] pr65779 - [5/6 Regression] undefined local symbol on powerpc

2015-04-20 Thread Alan Modra
On Mon, Apr 20, 2015 at 10:55:56AM +0200, Jakub Jelinek wrote: > On Mon, Apr 20, 2015 at 06:12:26PM +0930, Alan Modra wrote: > > I had it that way in my first patch, then decided to try deleting.. > > > > I can certainly change it back even if only to do it the standard way

[RS6000] pr65810, powerpc64 alignment of r2

2015-04-20 Thread Alan Modra
lse - return false; - if (dsize > 32768) - return false; - - return dalign / BITS_PER_UNIT >= dsize; - } -} - /* Find how many bits of the alignment we know for this access. */ mask = dalign / BITS_PER_UNIT - 1; lsb = offset & -o

Re: [RS6000] pr65810, powerpc64 alignment of r2

2015-04-20 Thread Alan Modra
r9) is bad. The patch I submitted changes this to addis r9,r2,-2 addir9,r9,32760 lfd f24,0(r9) lfd f25,8(r9) -- Alan Modra Australia Development Lab, IBM

Re: [Patch] pr65779 - [5/6 Regression] undefined local symbol on powerpc

2015-04-20 Thread Alan Modra
ch to fix some of the things I've discovered. -- Alan Modra Australia Development Lab, IBM

Re: [Patch] pr65779 - [5/6 Regression] undefined local symbol on powerpc

2015-04-21 Thread Alan Modra
On Mon, Apr 20, 2015 at 03:17:21PM +0200, Jakub Jelinek wrote: > On Mon, Apr 20, 2015 at 10:30:32PM +0930, Alan Modra wrote: > Zapping is conservatively correct, if you don't know where the var lives in > or how to compute it, you tell the debugger you don't know it. > Of cou

Re: [RS6000] pr65810, powerpc64 alignment of r2

2015-04-23 Thread Alan Modra
ot;0[[[:xdigit:]]]*", a); print strtonum ("0x" substr(a[[0]], length(a[[0]])-3)) }'` + fi + rm -f conftest conftest.o conftest.s +fi +]) +if test -n "$gcc_cv_ld_toc_align" && test $gcc_cv_ld_toc_align -gt 8; then + AC_DEFINE_UNQUOTED(POWERPC64_TOC_POINTER_ALIGNMENT, $gcc_cv_ld_toc_align, +[Define to .TOC. alignment forced by your linker.]) +fi ;; esac -- Alan Modra Australia Development Lab, IBM

Re: [RFC][PATCH][X86_64] Eliminate PLT stubs for specified external functions via -fno-plt=

2015-04-30 Thread Alan Modra
o-0x4 11: 90 nop 12: e9 00 00 00 00 jmpq 0x17 13: R_X86_64_PC32 foo-0x4 17: 90 nop You may need to have gcc or gas add a marker reloc to say exactly where an instruction starts. -- Alan Modra Australia Development Lab, IBM

Re: [Patch] pr65779 - [5/6 Regression] undefined local symbol on powerpc

2015-05-01 Thread Alan Modra
+ s1 %= 65521L; + s2 %= 65521L; +} + return (s2 << 16) | s1; +} + +unsigned char buf[] = { 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, + 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, + 0x55, 0xaa }; +int +main () +{ + unsigned long x = adler32 (0, buf, sizeof buf); + if (x != 0x640409efUL) +__builtin_abort (); + return 0; +} -- Alan Modra Australia Development Lab, IBM

Re: [rs6000] Fix compare debug failure on AIX

2015-05-01 Thread Alan Modra
else if (TARGET_XCOFF) info_ptr->push_p = 1; If no, then the correct change is to delete those lines from rs6000_stack_info, and fix the comment. https://gcc.gnu.org/ml/gcc-patches/2003-03/msg01693.html -- Alan Modra Australia Development Lab, IBM

[RS6000] Fix PR66020, -mprofile-kernel related

2015-05-06 Thread Alan Modra
address(0); sp = sp->backchain; - + if (sp->slot[4].l != MAKE_SLOT (1, 2) || sp->slot[6].l != MAKE_SLOT (5, 6)) abort(); @@ -310,12 +307,12 @@ fcvevv (char *s, vector int x, ...) } int __attribute__((no_instrument_function, noinline)) -main1() -{ +main1() +{ char *s = "vv"; vector int v = {1, 2, 3, 4}; vector int w = {5, 6, 7, 8}; - + fcvi (s, v, 2); fcvv (s, v, w); fcivv (s, 1, v, w); @@ -325,7 +322,7 @@ int __attribute__((no_instrument_function, noinlin return 0; } -int __attribute__((no_instrument_function)) +int __attribute__((no_instrument_function)) main() { /* Exit on systems without altivec. */ @@ -370,12 +367,12 @@ fnp_c (char *s, vector int v, vector int w, abort (); a = vec_add (v,w); - a = vec_add (a,x); - a = vec_add (a,y); - + a = vec_add (a,x); + a = vec_add (a,y); + if (!vec_all_eq (a, c)) abort (); - + v0.v = lparms.vrs[0]; v1.v = lparms.vrs[1]; v2.v = lparms.vrs[2]; @@ -401,11 +398,10 @@ fnp_c (char *s, vector int v, vector int w, sp = __builtin_frame_address(0); sp = sp->backchain; - + if (sp->slot[8].l != v3.l[0]) abort (); if (sp->slot[9].l != v3.l[1]) abort (); -} - +} -- Alan Modra Australia Development Lab, IBM

[RS6000] Fix PR66033, nop pattern

2015-05-06 Thread Alan Modra
emit_insn (gen_divdi3 (op3, op3, op4)); emit_insn (gen_vsx_concat_v2di (op0, op5, op3)); + DONE; }" [(set_attr "type" "div")]) @@ -844,6 +846,7 @@ emit_insn (gen_vsx_extract_v2di (op4, op2, GEN_INT (1))); emit_insn (gen_udivdi3 (op3, op3, op4)); emit_insn (gen_vsx_concat_v2di (op0, op5, op3)); + DONE; }" [(set_attr "type" "div")]) -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] PR target/65248: [5 Regression] Copy relocation in PIE against protected symbol

2015-03-01 Thread Alan Modra
ation should be talking about .dynbss copies of variables rather than copy relocations, which are just a way of initializing such variables. *) I should have fixed the name of the linker option added here: https://sourceware.org/ml/binutils/2001-09/msg00506.html -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] PR target/65248: [5 Regression] Copy relocation in PIE against protected symbol

2015-03-02 Thread Alan Modra
level we only had one definition of the variable, but at run time we'd end up using two different locations. *) Except by avoiding .dynbss copies and hence requiring dynamic text relocations. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] PR target/65248: [5 Regression] Copy relocation in PIE against protected symbol

2015-03-03 Thread Alan Modra
reasonable if that gives better code, but I can see distros turning it off if you manage to convince Uros and others that the default should be on. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] PR target/65248: [5 Regression] Copy relocation in PIE against protected symbol

2015-03-03 Thread Alan Modra
f (foo)" effectively becomes either "if (0)" or "if (1)" at link time, unless you emit dynamic text relocations or edit the code. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] target/65286 - Disable multilib for ppc64le

2015-03-04 Thread Alan Modra
are in the C library but return -ENOSYS, ie. that aren't really supported. Does a gcc build really depend on the typical functions that turn up in gnu/stubs.h? If not, can't gcc supply the wretched thing? -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] target/65286 - Disable multilib for ppc64le

2015-03-05 Thread Alan Modra
s)\ rs6000_alignment_flags = MASK_ALIGN_NATURAL;\ - if (TARGET_64BIT)\ + if (rs6000_isa_flags & OPTION_MASK_64BIT)\ { \ if (DEFAULT_ABI != ABI_AIX) \ { \ -- Alan Modra Australia Development Lab, IBM

Re: RFC: PATCHES: Properly handle reference to protected data on x86

2015-03-05 Thread Alan Modra
n fact it would be good to prove that all variations of either a reference, a default visibility definition or a protected visibility definition worked in the exe plus two libs case. -- Alan Modra Australia Development Lab, IBM

Re: RFC: PATCHES: Properly handle reference to protected data on x86

2015-03-06 Thread Alan Modra
On Fri, Mar 06, 2015 at 05:04:56AM -0800, H.J. Lu wrote: > On Thu, Mar 5, 2015 at 8:19 PM, Alan Modra wrote: > > On Wed, Mar 04, 2015 at 03:26:10PM -0800, H.J. Lu wrote: > >> Protected symbol means that it can't be pre-emptied. It > >> doesn't mean its add

Re: RFC: PATCHES: Properly handle reference to protected data on x86

2015-03-07 Thread Alan Modra
On Fri, Mar 06, 2015 at 05:03:21PM -0800, H.J. Lu wrote: > I updated the testcase to Thanks, that's good to see. -- Alan Modra Australia Development Lab, IBM

Re: [PATCH] target/65286 - Disable multilib for ppc64le

2015-03-10 Thread Alan Modra
bit surprised if you could do that before my patch. > There is a ppc64le compile farm machine available @gcc2-2-power8.osuosl.org. I would be greedy to load the compile farm when I can use internal IBM machines. :) -- Alan Modra Australia Development Lab, IBM

<    1   2   3   4   5   6   7   8   9   10   >