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
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
Alan, can you have a look as well please?
It looks reasonable to me.
--
Alan Modra
Australia Development Lab, IBM
he gcc repo.
--
Alan Modra
Australia Development Lab, IBM
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
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
Ping? Linux startfile and endfile specs.
https://gcc.gnu.org/ml/gcc-patches/2017-06/msg01678.html
--
Alan Modra
Australia Development Lab, IBM
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
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
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
.m) != 3)
+ __builtin_abort ();
+ return 0;
+}
--
Alan Modra
Australia Development Lab, IBM
tch" when compiling
libdecnumber.
--
Alan Modra
Australia Development Lab, IBM
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
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
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
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
ted bit-field can exceed the source size. That will result in
rubbish being read into a register.
--
Alan Modra
Australia Development Lab, IBM
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
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
___
| 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
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
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. */
--
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
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
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
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
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
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
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.
> > >
Ping this patch:
http://gcc.gnu.org/ml/gcc-patches/2013-06/msg00686.html
--
Alan Modra
Australia Development Lab, IBM
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
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
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
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
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
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
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
ENDIAN__
/* Structures with size less than eight bytes are passed
left-padded. */
--
Alan Modra
Australia Development Lab, IBM
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
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
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)
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
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*,
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
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
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
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
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
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
rt calls to
functions with no prototype in scope, including variable argument
functions.
--
Alan Modra
Australia Development Lab, IBM
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
Ping?
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg00704.html
--
Alan Modra
Australia Development Lab, IBM
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
canonicalized |= this_neg;
+ canonicalized |= this_neg || i != n_ops - 2;
break;
case NEG:
--
Alan Modra
Australia Development Lab, IBM
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
tin_unreachable ();
+
+ for (j = 0; j < n; j++)
+f2 (j);
+}
--
Alan Modra
Australia Development Lab, IBM
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
>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 =
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
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
_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
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
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
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
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
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
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
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.
--
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
ne PARAMS 48
#endif
#define MORESTACK_FRAMESIZE (PARAMS+96)
--
Alan Modra
Australia Development Lab, IBM
= 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
(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
&& 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
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
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
", global_regs_decl[29]);
+}
+
allocate = info->total_size;
if (allocate > (unsigned HOST_WIDE_INT) 1 << 31)
{
--
Alan Modra
Australia Development Lab, IBM
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
+ 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
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
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
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
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
ch to fix some of
the things I've discovered.
--
Alan Modra
Australia Development Lab, IBM
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
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
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
+ 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
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
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
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
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
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
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
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
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
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
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
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
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
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
101 - 200 of 1010 matches
Mail list logo