On Wed, Aug 21, 2019 at 09:55:28PM +0930, Alan Modra wrote:
> On Mon, Aug 19, 2019 at 07:45:19AM -0500, Segher Boessenkool wrote:
> > But if you think we can remove the !TARGET_TLS_MARKERS everywhere it
> > is relevant at all, now is the time, patches very welcome, it would be
>
On Mon, Nov 11, 2019 at 05:56:47AM -0600, Segher Boessenkool wrote:
> On Wed, Aug 21, 2019 at 09:55:28PM +0930, Alan Modra wrote:
> > This patch removes !TARGET_TLS_MARKERS support. -mtls-markers (and
> > -mno-tls-markers) disappear as valid options too, because I figure
> &
d between the PLD and the STW instructions.
>
> "No reference"... Nothing indirect either (like from a function call,
> or simply some insn that does not name the register directly). Or code
> like
>
> pld 9,ext_symbol@got@pcrel(0),1 ; .Lpcrel1:
> .reloc .Lpcrel1-8,R_PPC64_PCREL_OPT,.-(.Lpcrel1-8)
> b 2f
>
> here: # some code that does not explicitly reference r10 here,
> # but r10 is live here nevertheless, and is used later
> b somewhere_else
>
> 2:lwz 10,0(9)
>
> complicates your analysis, too. So something DF is needed here, or
> there are lots and lots and lots of cases to look out for.
>
>
> Segher
--
Alan Modra
Australia Development Lab, IBM
On Wed, Dec 04, 2019 at 05:16:05PM -0600, Segher Boessenkool wrote:
> > pla 9,ext_symbol@pcrel # add (0),1 for optional operands
>
> pla does not have optional operands like that?
It does, just like load/store insns.
--
Alan Modra
Australia Development Lab, IBM
f course is to update
autotools to something more recent.
--
Alan Modra
Australia Development Lab, IBM
B_OSDIRNAMES))
+MULTILIB_OSDIRNAMES += $(subst $(if $(findstring
64,$(target)),m64,m32).,,$(filter $(if $(findstring
64,$(target)),m64,m32).mbig%,$(MULTILIB_OSDIRNAMES)))
+MULTILIB_MATCHES:= ${MULTILIB_MATCHES_ENDIAN}
--
Alan Modra
Australia Development Lab, IBM
On Thu, Aug 22, 2013 at 10:06:48AM -0400, David Edelsohn wrote:
> On Wed, Aug 21, 2013 at 11:57 PM, Alan Modra wrote:
>
> > Index: gcc/config/rs6000/t-linux64
> > ===
> > --- gcc/config/rs6000/t-linux64 (revi
On Fri, Aug 23, 2013 at 01:45:14AM +0930, Alan Modra wrote:
> On Thu, Aug 22, 2013 at 10:06:48AM -0400, David Edelsohn wrote:
> > What is the purpose of the change to MULTILIB_OSDIRNAMES? Why the
> > addition of m64= and m32=? A secondary tmake file is not always set to
> &g
On Fri, Aug 16, 2013 at 06:18:05PM +0930, Alan Modra wrote:
> I'd like to apply the following patch to the gcc repository (well,
> excluding the libgo part which I'm hoping someone will apply for me to
> the master go repository). I know the normal procedure for autotools
>
On Thu, Aug 22, 2013 at 06:09:40PM -0700, Ian Lance Taylor wrote:
> On Thu, Aug 22, 2013 at 5:35 PM, Alan Modra wrote:
> > On Fri, Aug 16, 2013 at 06:18:05PM +0930, Alan Modra wrote:
> >> I'd like to apply the following patch to the gcc repository (well,
> >> ex
On Fri, Aug 23, 2013 at 09:41:28PM +, Joseph S. Myers wrote:
> On Thu, 22 Aug 2013, Alan Modra wrote:
>
> > For multiarch, powerpc64le-linux now will use powerpc64le-linux-gnu.
> > Given a typical big-endian native toolchain with os dirs /lib and
> > /lib64, we'
On Fri, Aug 23, 2013 at 10:08:29PM +, Joseph S. Myers wrote:
> On Fri, 23 Aug 2013, Alan Modra wrote:
>
> > I'd like to import upstream libtool into gcc to support powerpc64le,
>
> Has the sysroot semantics issue been resolved in upstream libtool, or do
On Sun, Aug 25, 2013 at 10:40:30PM -0700, Mike Stump wrote:
> On Aug 25, 2013, at 8:32 PM, Alan Modra wrote:
> > We (IBM) don't intend to support running both big and little-endian
> > processes on the same system in the near future. Perhaps I'm jumping
> > the gu
(match_operand:P 2 "gpc_reg_operand" "b")]
UNSPEC_TOCREL)
- (match_operand 3 "const_int_operand" "n"]
+ (match_operand 3 "add_cint_operand" "n"]
"TARGET_XCOFF && TARGET_CMODEL != CMODEL_SMALL"
"addis %0,%1+%3@u(%2)")
--
Alan Modra
Australia Development Lab, IBM
On Fri, Sep 06, 2013 at 02:18:49PM -0400, David Edelsohn wrote:
> On Fri, Sep 6, 2013 at 3:13 AM, Alan Modra wrote:
> > The following testcase taken from the linux kernel is miscompiled on
> > powerpc64-linux.
> >
> > /* -m64 -mcmodel=medium -O -S -fno-section-
On Sat, Sep 07, 2013 at 09:06:08AM +0930, Alan Modra wrote:
> The testcase gives me
>
> .L.foo:
> lis 9,0x4000
> sldi 9,9,32
> addis 3,2,x@toc@ha
> addi 3,3,x@toc@l
> add 3,3,9
> blr
>
> How did you manage to get an unrecog
CMODEL_SMALL"
"addis %0,%1+%3@u(%2)")
Index: gcc/testsuite/gcc.target/powerpc/medium_offset.c
===
--- gcc/testsuite/gcc.target/powerpc/medium_offset.c(revision 0)
+++ gcc/testsuite/gcc.target/powerpc/medium_offset.c
* { dg-require-effective-target lp64 } */
+/* { dg-options "-O -mno-popcntb" } */
+/* { dg-final { scan-assembler-not "stwbrx" } } */
+
+void
+write_reverse (unsigned long *addr, unsigned long val)
+{
+ unsigned long reverse = __builtin_bswap64 (val);
+ __atomic_store_n (addr, reverse, __ATOMIC_RELAXED);
+}
--
Alan Modra
Australia Development Lab, IBM
On Mon, Sep 09, 2013 at 06:37:03PM +0930, Alan Modra wrote:
> gcc/
> * config/rs6000/predicates.md (add_cint_operand): New.
> (reg_or_add_cint_operand): Use add_cint_operand.
> * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
> using a
case FFI_TYPE_STRUCT:
+ align = arg_types[i]->alignment;
+ if (align > 16)
+ align = 16;
+ pst = ALIGN (pst, align);
#ifndef __LITTLE_ENDIAN__
/* Structures with size less than eight bytes are passed
left-padded. */
--
Alan Modra
Australia Development Lab, IBM
On Wed, Sep 11, 2013 at 07:55:43AM -0500, Bill Schmidt wrote:
> On Wed, 2013-09-11 at 21:08 +0930, Alan Modra wrote:
> > On Wed, Aug 14, 2013 at 10:32:01AM -0500, Bill Schmidt wrote:
> > > This fixes a long-standing problem with GCC's implementation of the
> > >
WRITE
+ : EXPAND_NORMAL);
if (MEM_P (op))
op = validize_mem (op);
On Fri, Jun 14, 2013 at 11:38:58AM +0200, Richard Biener wrote:
> On Fri, Jun 14, 2013 at 10:38 AM, Alan Modra wrote:
> > On Thu, Jun 13, 2013 at 10:45:38AM +0200, Richard Biener wrote:
>
elf_x86_64"
;;
-ppc*-*linux*|powerpc*-*linux*)
+powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+powerpc-*linux*)
LD="${LD-ld} -m elf64ppc"
;;
s390*-*linux*)
--
Alan Modra
Australia Development Lab, IBM
On Thu, Sep 12, 2013 at 09:33:05AM +0100, Andrew Haley wrote:
> On 09/12/2013 03:11 AM, Alan Modra wrote:
> > We have precedent for compiling libffi based on gcc preprocessor
> > defines, eg. __NO_FPRS__, so here's a way of making upstream libffi
> > compatible with the v
On Tue, Jun 11, 2013 at 07:43:05PM -0400, Michael Meissner wrote:
> Ah, you are correct. I misread the code, thinking it was returning a string,
> and not a pointer to the string in memory.
http://gcc.gnu.org/ml/gcc-patches/2013-06/msg00640.html
Patch reverted.
--
Alan Modra
Aus
oughout. It's
src that is a hodge-podge of different versions.
--
Alan Modra
Australia Development Lab, IBM
On Fri, Sep 13, 2013 at 12:37:20PM +0930, Alan Modra wrote:
> PR middle-end/57586
> * stmt.c (expand_asm_operands): Call expand_expr with
> EXPAND_MEMORY for output operands that disallow regs. Don't
> use EXPAND_WRITE on inout operands.
Ping?
--
Ala
ORMAL);
+ !allows_reg ? EXPAND_MEMORY : EXPAND_WRITE);
if (MEM_P (op))
op = validize_mem (op);
--
Alan Modra
Australia Development Lab, IBM
}
return input_operand (op, mode);
})
--
Alan Modra
Australia Development Lab, IBM
cc_cv_gld_minor_version"
-ge 21 -o "$gcc_cv_gld_major_version" -gt 2; then
gcc_cv_ld_large_toc=yes
fi
--
Alan Modra
Australia Development Lab, IBM
.ffi_prep_args64
+#endif
ld %r0, 0(%r29)
ld %r2, 8(%r29)
@@ -137,7 +150,11 @@
.LFE1:
.long 0
.byte 0,12,0,1,128,4,0,0
+#ifdef _CALL_LINUX
+ .size ffi_call_LINUX64,.-.L.ffi_call_LINUX64
+#else
.size .ffi_call_LINUX64,.-.ffi_cal
gs & SECTION_CODE) != 0 || !decl || !DECL_P (decl))
align = MIN_UNITS_PER_WORD;
else
/* Increase alignment of large objects if not already stricter. */
--
Alan Modra
Australia Development Lab, IBM
On Thu, Oct 25, 2012 at 03:57:38PM -0700, Segher Boessenkool wrote:
> for most others. This patch disables all lwa insns in 32-bit mode.
> We can later re-enable it if the assembler used handles it properly,
Well, you can now do that. Mainline gas and ld are now fixed.
--
Alan Modra
Aus
h.
It looks OK to me if you replace your "gd-do compile" line with the
following two lines to avoid failures on powerpc targets that don't
support -meabi -msdata.
/* { dg-do compile { target powerpc*-*-eabi* powerpc*-*-elf* powerpc*-*-linux*
} } */
/* { dg-require-effective-targ
ion*)’ to ‘void (*)(cl_target_option*,
gcc_options*)’ [-fpermissive]
/src/gcc-virgin/gcc/config/rs6000/rs6000.c:31122:29: error: invalid conversion
from ‘void (*)(cl_target_option*)’ to ‘void (*)(gcc_options*,
cl_target_option*)’ [-fpermissive]
--
Alan Modra
Australia Development Lab, IBM
_REG (Pmode, 2);
@@ -9492,6 +9494,8 @@
"*
{
char buf[30];
+ extern int need_toc_init;
+ need_toc_init = 1;
#ifdef TARGET_RELOCATABLE
ASM_GENERATE_INTERNAL_LABEL (buf, \"LCTOC\",
!TARGET_MINIMAL_TOC || TARGET_RELOCATABLE);
--
Alan Modra
Australia Development Lab, IBM
On Fri, Jan 29, 2016 at 01:20:08PM -0500, David Edelsohn wrote:
> On Fri, Jan 29, 2016 at 11:38 AM, Alan Modra wrote:
> > PR target/68662
> > * config/rs6000/rs6000.c (need_toc_init): New var, set it
> > whenever toc_label_name used.
> >
EG_REG (src)
#ifdef CANNOT_CHANGE_MODE_CLASS
&& ! (REG_P (dest) && REGNO (dest) < FIRST_PSEUDO_REGISTER
&& REG_CANNOT_CHANGE_MODE_P (REGNO (dest),
--
Alan Modra
Australia Development Lab, IBM
-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } {
"-mcpu=power8" } } */
+/* { dg-options "-mcpu=power8 -Os -mbig" } */
+
+__int128
+quad_exchange (__int128 *ptr, __int128 newval)
+{
+ return __atomic_exchange_n (ptr, newval, __ATOMIC_RELAXED);
+}
--
Alan Modra
Australia Development Lab, IBM
\
&& GET_MODE_BITSIZE (MODE) <= GET_MODE_BITSIZE (Pmode)) \
|| (!TARGET_NO_FP_IN_TOC
\
- && !TARGET_RELOCATABLE \
&& GET_CODE (X) == CONS
On Sun, Jan 31, 2016 at 06:02:35PM -0600, Segher Boessenkool wrote:
> On Mon, Feb 01, 2016 at 08:46:42AM +1030, Alan Modra wrote:
> > The comment says this test is supposed to prevent "a narrower
> > operation than requested", but it actually only allows a larger
> >
up formatting.
> >
> > * gcc.dg/pr69644.c: New test.
>
> Okay.
This needs to go on gcc-5 and gcc-4.9 branches too, where it fixes
pr69146. pr69146 and pr69644 are dups. OK to apply to the branches?
--
Alan Modra
Australia Development Lab, IBM
On Thu, Feb 04, 2016 at 02:42:38PM +0100, Jakub Jelinek wrote:
> On Thu, Feb 04, 2016 at 08:40:22AM -0500, David Edelsohn wrote:
> > On Thu, Feb 4, 2016 at 6:33 AM, Alan Modra wrote:
> > > On Wed, Feb 03, 2016 at 05:34:17PM -0500, David Edelsohn wrote:
> > >> On Wed,
= test(argc + 2, 0);
- return !(x & (ALIGNMENT - 1));
+ y = test2(argc, 0);
+ y |= test2(argc + 1, 0);
+ y |= test2(argc + 2, 0);
+
+ return (x & (ALIGNMENT - 1)) == 0 && (y & (ALIGNMENT - 1)) != 0 ? 1 : 0;
}
--
Alan Modra
Australia Development Lab, IBM
On Mon, Feb 08, 2016 at 09:27:36AM -0700, Jeff Law wrote:
> On 01/31/2016 03:16 PM, Alan Modra wrote:
> >The comment says this test is supposed to prevent "a narrower
> >operation than requested", but it actually only allows a larger
> >subreg, not one the same size.
&& ! (icode != CODE_FOR_nothing
+ && insn_operand_matches (icode, 0, equiv)
+ && insn_operand_matches (icode, 1, equiv
/* Using RELOAD_OTHER means we emit this and the reload we
made earlier in the wrong order. */
&& !reloaded_inner_of_autoinc)
--
Alan Modra
Australia Development Lab, IBM
1..2d2f137 100644
--- a/gcc/config/rs6000/vsx.md
+++ b/gcc/config/rs6000/vsx.md
@@ -1518,15 +1518,6 @@
"xscvdpspn %x0,%x1"
[(set_attr "type" "fp")])
-;; Used by direct move to move a SFmode value from GPR to VSX register
-(define_insn "vsx_xscvspdpn_directmove"
- [(set (match_operand:SF 0 "vsx_register_operand" "=wa")
- (unspec:SF [(match_operand:DI 1 "vsx_register_operand" "wa")]
- UNSPEC_VSX_CVSPDPN))]
- "TARGET_XSCVSPDPN"
- "xscvspdpn %x0,%x1"
- [(set_attr "type" "fp")])
-
;; Convert and scale (used by vec_ctf, vec_cts, vec_ctu for double/long long)
(define_expand "vsx_xvcvsxddp_scale"
--
Alan Modra
Australia Development Lab, IBM
had about this, besides using %L in asm output (what
forces TFmode to use just fprs?), is what happens when we're using
IEEE 128-bit floats? In that case it looks like we'd get just one reg.
--
Alan Modra
Australia Development Lab, IBM
On Thu, Feb 11, 2016 at 03:29:05PM +0100, Bernd Schmidt wrote:
> On 02/11/2016 10:45 AM, Alan Modra wrote:
>
> >Due to uses elsewhere in vsx instructions, reload chooses to put
> >psuedo 185 in fr31, which can't be used as a base register in the
> >following:
>
On Fri, Feb 12, 2016 at 02:57:22PM +0100, Ulrich Weigand wrote:
> > On Fri, Feb 12, 2016 at 08:54:19AM +1030, Alan Modra wrote:
> > > Another concern I had about this, besides using %L in asm output (what
> > > forces TFmode to use just fprs?), is what happens when we
that is likely not trivial.
Do we want to backport the PR68973 fixes to gcc-5 and gcc-4.9? We are
exposed to the reload_vsx_from_gprsf bug there, I think, but TFmode
won't be IEEE.
--
Alan Modra
Australia Development Lab, IBM
ode));
/* Work out which way this really branches. We could use
reverse_condition_maybe_unordered here always but this
@@ -25688,7 +25696,7 @@ rs6000_emit_prologue (void)
hi = gen_int_mode (toc_restore_insn & ~0x, SImode);
emit_insn (gen_xorsi3 (tmp_reg_si, tmp_reg_si, hi));
compare_result = gen_rtx_REG (CCUNSmode, CR0_REGNO);
- validate_condition_mode (EQ, CCUNSmode);
+ gcc_assert (validate_condition_mode (EQ, CCUNSmode));
lo = gen_int_mode (toc_restore_insn & 0x, SImode);
emit_insn (gen_rtx_SET (compare_result,
gen_rtx_COMPARE (CCUNSmode, tmp_reg_si, lo)));
--
Alan Modra
Australia Development Lab, IBM
On Tue, Feb 16, 2016 at 07:00:58PM +1030, Alan Modra wrote:
> What's wrong is the rs6000 backend asserting that (gtu (reg:CC)) can't
> happen, because obviously it does. Rather than trying to fix combine,
> (where the ICE happens on attempting to validate the insn!), I think
&
to me that this is primarily an rs6000 backend
problem, solved by the blindingly obvious patch I posted. Whether you
want to do something in combine as well is a secondary problem. The
rs6000 backend shouldn't assert on this rtl.
--
Alan Modra
Australia Development Lab, IBM
ed from 0 as msb). A comment to that
effect might reduce head scratching.
--
Alan Modra
Australia Development Lab, IBM
On Thu, Feb 18, 2016 at 03:43:07AM -0600, Segher Boessenkool wrote:
> Either combine should delete the note (my current patch), or it can
Works for me. I'm not sure I'd want to promise that combine won't
ever create what you call "invalid RTL", in notes.
--
Alan Mod
This patch cures a problem with ICF of read-only variables at the
intersection of -fsection-anchors, -ftree-loop-vectorize, and targets
with alignment restrictions. The testcase results in
/usr/local/powerpc64le-linux/bin/ld: pack.o: In function `main':
pack.c:(.text.startup+0xc): error: R_PPC64_T
cc.dg/pr69238.c
new file mode 100644
index 000..3538e63
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr69238.c
@@ -0,0 +1,28 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -fno-dce -fno-forward-propagate -fno-rerun-cse-after-loop
-funroll-loops" } */
+
+
+#define N 32
+
+short sa[N];
+short sb[N];
+int ia[N];
+int ib[N];
+
+int __attribute__ ((noinline, noclone))
+main1 (int n)
+{
+ int i;
+ for (i = 0; i < n; i++)
+{
+ sa[i+7] = sb[i];
+ ia[i+3] = ib[i+1];
+}
+ return 0;
+}
+
+int
+main (void)
+{
+ return main1 (N-7);
+}
--
Alan Modra
Australia Development Lab, IBM
cussion I backed down because
technically, you were within your rights and I had transgressed the
rules.
You have the stick *now*. And wield it. I'm trying to take it away
from you..
--
Alan Modra
Australia Development Lab, IBM
r approval.. Well, maybe I do in the current
climate.
I hope I haven't offended the review gods too much here. I'm sure
other people have noticed the issues I'm raising but have more wisely
than I, kept quiet.
--
Alan Modra
Australia Development Lab, IBM
m is valid
for -mcmodel=medium/large only before reload. After reload it is
supposed to be split into high/lo_sum variants that generate
"addis rtmp,offset@ha(r2); ld offset@l(rtmp)".
--
Alan Modra
Australia Development Lab, IBM
0m10.276s
sys 0m0.003s
I also looked at the register version and -DMEM=1 case with power7
simulators finding that the register version had a delay of 12 cycles
from completion of the first instruction to completion of the last.
The -DMEM=1 case had a corresponding delay of 49 cycles, which matches
the loop timing above quite well.
*/
--
Alan Modra
Australia Development Lab, IBM
Ping http://gcc.gnu.org/ml/gcc-patches/2013-11/msg02793.html
--
Alan Modra
Australia Development Lab, IBM
On Mon, Dec 02, 2013 at 11:04:39PM -0700, Jeff Law wrote:
> On 11/28/13 16:50, Alan Modra wrote:
> >
> >This is due to that innocuous seeming change of setting
> >lra_in_progress before calling check_rtl(), in combination with
> >previous changes Vlad made to the r
On Tue, Dec 03, 2013 at 09:05:53AM -0500, David Edelsohn wrote:
> On Thu, Nov 21, 2013 at 9:57 PM, Alan Modra wrote:
> > David,
> > Here comes the inevitable followup.. I broke backwards compatibility
> > when adding an extra field to ffi_cif. I'd like to import agai
6 +1898,7 @@
if test x$build != x$host || test "x$coverage_flags" != x
then
BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
+BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)'
BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
fi
--
Alan Modra
Australia Development Lab, IBM
On Tue, Dec 03, 2013 at 11:44:46PM -0500, DJ Delorie wrote:
> Alan Modra writes:
> > Bootstrapped etc. powerpc64-linux. OK mainline and 4.8 branch?
> >
> > * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
> > build != host.
> > : Clea
On Wed, Dec 04, 2013 at 04:36:58PM +1030, Alan Modra wrote:
> Maybe we should use most of BUILD_EXPORTS in the top level
> Makefile.in? What can go wrong with that? :)
I had a look at this, as it's easy to do, but I didn't find any
significant bug to justify such a change in
perand" "=&r,Z,&r")
(bswap:DI (match_operand:DI 1 "reg_or_mem_operand" "Z,r,r")))
(clobber (match_scratch:SI 2 "=&b,&b,X"))]
"!TARGET_POWERPC64 && (REG_P (operands[0]) || REG_P (operands[1]))"
--
Alan Modra
Australia Development Lab, IBM
On Tue, Dec 03, 2013 at 11:44:46PM -0500, DJ Delorie wrote:
> Alan Modra writes:
> > Bootstrapped etc. powerpc64-linux. OK mainline and 4.8 branch?
> >
> > * configure.ac (BUILD_CXXFLAGS) Don't use ALL_CXXFLAGS for
> > build != host.
> > : Clea
one in configure.
+ifeq ($(host), $(build))
RTS_DIR:=$(strip $(subst \,/,$(shell gnatls -v | grep adalib )))
+else
+RTS_DIR:=$(strip $(subst \,/,$(shell $(host_alias)-gnatls -v | grep adalib )))
+endif
gnattools-cross: $(GCC_DIR)/stamp-tools
# gnattools1-re
$(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \
--
Alan Modra
Australia Development Lab, IBM
earched for
the build compiler. Important when GMPINC and other *INC point at
installed locations for the host compiler. Trouble is, you don't just
get the headers you want (eg. gmp.h) but all the other host headers
too.
--
Alan Modra
Australia Development Lab, IBM
ent_function_decl))
+ || (reg_parm_stack_space
+ > REG_PARM_STACK_SPACE (current_function_decl
#endif
--
Alan Modra
Australia Development Lab, IBM
ion 206009)
+++ gcc/testsuite/gcc.target/powerpc/pr53199.c (working copy)
@@ -1,7 +1,7 @@
/* { dg-do compile { target { powerpc*-*-* } } } */
/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */
/* { dg-options "-O2 -mcpu=power6 -mavoid-indexed-addresses" } */
-/* { dg-final { scan-assembler-times "lwbrx" 6 } } */
+/* { dg-final { scan-assembler-times "lwbrx" 12 } } */
/* { dg-final { scan-assembler-times "stwbrx" 6 } } */
/* PR 51399: bswap gets an error if -mavoid-indexed-addresses was used in
@@ -25,6 +25,24 @@
return __builtin_bswap64 (p[i]);
}
+long long
+load64_reverse_4 (long long dummy __attribute__ ((unused)), long long *p)
+{
+ return __builtin_bswap64 (*p);
+}
+
+long long
+load64_reverse_5 (long long dummy __attribute__ ((unused)), long long *p)
+{
+ return __builtin_bswap64 (p[1]);
+}
+
+long long
+load64_reverse_6 (long long dummy __attribute__ ((unused)), long long *p, int
i)
+{
+ return __builtin_bswap64 (p[i]);
+}
+
void
store64_reverse_1 (long long *p, long long x)
{
@@ -44,7 +62,13 @@
}
long long
-reg_reverse (long long x)
+reg_reverse_1 (long long x)
{
return __builtin_bswap64 (x);
}
+
+long long
+reg_reverse_2 (long long dummy __attribute__ ((unused)), long long x)
+{
+ return __builtin_bswap64 (x);
+}
--
Alan Modra
Australia Development Lab, IBM
AGS="${CPPFLAGS} -DGENERATOR_FILE" \
${realsrcdir}/configure \
--enable-languages=${enable_languages-all} \
--target=$target_alias --host=$build_alias --build=$build_alias
--
Alan Modra
Australia Development Lab, IBM
lt) when build != host.
The trouble is that GMPINC is then /sysroot_for_host/include, which is
where you find all the other host headers, not just gmp.h..
--
Alan Modra
Australia Development Lab, IBM
e culprit.
See http://gcc.gnu.org/ml/gcc-patches/2013-12/msg01149.html
--
Alan Modra
Australia Development Lab, IBM
values are encoded in the high-order double value only. The
low-order value is not significant.
* Does not support the IEEE status flags for overflow, underflow, and
other conditions. These flag have no meaning in this format.
--
Alan Modra
Australia Development Lab, IBM
ot;lshr3"
[(set (match_operand:GPR 0 "gpc_reg_operand" "=r")
(lshiftrt:GPR (match_operand:GPR 1 "gpc_reg_operand" "r")
(match_operand:SI 2 "reg_or_cint_operand" "rn")))]
^^this?
--
Alan Modra
Australia Development Lab, IBM
6000_set_up_by_prologue (struct
hard_reg_set_container *set)
&& TARGET_MINIMAL_TOC
&& get_pool_size () != 0)
add_to_hard_reg_set (&set->set, Pmode, RS6000_PIC_OFFSET_TABLE_REGNUM);
+ if (cfun->machine->split_stack_argp_used)
+add_to_hard_reg_set (&set->set, Pmode, 12);
}
--
Alan Modra
Australia Development Lab, IBM
On Thu, Sep 24, 2015 at 02:24:25PM +1000, Michael Ellerman wrote:
> On Wed, 2015-09-02 at 11:05 +0930, Alan Modra wrote:
> > bugzilla.redhat.com/show_bug_cgi?id=1255946 shows that gcc built with
> > both powerpc64-linux and powerpc64le-linux support passes wrong linker
> > o
if (DEFAULT_ABI == ABI_ELFv2
+ && !TARGET_SINGLE_PIC_BASE)
cfun->machine->r2_setup_needed = true;
/* Run just enough of rest_of_compilation to get the insns emitted.
--
Alan Modra
Australia Development Lab, IBM
On Thu, Sep 03, 2015 at 09:33:45PM -0400, Anthony Green wrote:
> Please go ahead. I've been on vacation for a while. Returning next week...
Committed revision 228307.
> Original message ----
> From: Alan Modra
> Date: 09-03-2015 7:40 PM (GMT-05:00)
> T
solved, but these labels which aren't
referred to by jump insns get converted to NOTE_INSN_DELETED_LABEL
somewhere, and that leads to further pain.
--
Alan Modra
Australia Development Lab, IBM
_options,
#ifdef TARGET_CAN_SPLIT_STACK_64BIT
case OPT_m32:
- saw_opt_m32 = true;
+ is_m64 = false;
+ break;
+
+ case OPT_m64:
+ is_m64 = true;
break;
#endif
@@ -253,7 +259,7 @@ lang_specific_driver (struct cl_decoded_option
**in_decoded_optio
han what you'd see after command line option
processing. This isn't at all surprising when you consider that
lang_specific_driver must run before option processing since one of
its jobs is to insert command line options.
--
Alan Modra
Australia Development Lab, IBM
t four configurations, powerpc-linux 32-bit only,
powerpc64le-linux 64-bit only, biarch powerpc-linux with 32-bit
default, and biarch powerpc64-linux with 64-bit default.
--
Alan Modra
Australia Development Lab, IBM
NDIAN_SELECT(" -mbig", " -mlittle", DEFAULT_ASM_ENDIAN)
> %{R*} \
> %(link_shlib) \
> %{!T*: %(link_start) } \
> +%{!static: %(link_secure_plt_default)} \
> %(link_os)"
this change needs to be conditional on !mbss-plt too.
--
Alan Modra
Australia Development Lab, IBM
On Mon, Oct 19, 2015 at 08:10:32PM +0100, Szabolcs Nagy wrote:
> On 19/10/15 14:04, Szabolcs Nagy wrote:
> >On 19/10/15 12:12, Alan Modra wrote:
> >>On Thu, Oct 15, 2015 at 06:50:50PM +0100, Szabolcs Nagy wrote:
> >>>A powerpc toolchain built with (or without) --e
> > * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
> > (LINK_SPEC): Add %(link_secure_plt).
> > (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
> > * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
> >
>
needs obstack.o.
The cumulative patch series was bootstrapped and regression tested on
x86_64-linux, and also after just the first three patches.
Alan Modra (7):
New obstack_next_free is not an lvalue
Correct libvtv obstack use
Update libsanitizer obstack interceptors
Copy gnulib obstack files
M
New obstack.h casts obstack_next_free to (void *), resulting in it
being a non-lvalue, and warnings on pointer arithmetic.
gcc/
* gensupport.c (add_mnemonic_string): Make len param a size_t.
(gen_mnemonic_setattr): Make "size" var a size_t. Use
obstack_blank_fast to shrink
Fixes a compile error with both old and new obstacks due to
obstack_chunk_free having the wrong signature. Also, setting chunk
size and alignment before obstack_init is pointless since they are
overwritten.
* vtv_malloc.cc (obstack_chunk_free): Correct param type.
(__vtv_malloc_in
New obstack uses sensible types, size_t instead of int for length
params. Since libsanitizer does not use prototypes from obstack.h to
call the real functions, it's necessary to update the libsanitizer
function declarations emitted by the INTERCEPTOR macro.
As per the comment added to configure.a
This copies obstack.[ch] from gnulib, and updates the docs. The next
patch should be applied if someone repeats the import at a later date.
include/
PR gdb/17133
* obstack.h: Import current gnulib file.
libiberty/
PR gdb/17133
* obstack.c: Import current gnulib fil
Using the standard gnulib obstack source requires importing quite a
lot of other files from gnulib, and requires build changes.
If one did want to use gnulib obstack directly, then it would need to
go in a sub-directory and after ".../gnulib-tool --import obstack"
we'd have the following:
./lib:
Fixes
warning: request for implicit conversion from ‘void *’ to ‘struct
_obstack_chunk *’ not permitted in C++ [-Wc++-compat]
I moved the assignment to h->chunk to fix an overlong line, then
decided it would be better after the alloc failure check just to do
things the same way as in _obstack_new
Provides defines used to determine whether glibc obstacks are
compatible. Generally speaking, 32-bit targets won't need to use
obstack.o from libiberty if glibc is used, while 64-bit targets will,
until glibc gets the new obstack code.
* configure.ac: Check size of size_t.
* confi
(revision 230508)
+++ gcc/ChangeLog (working copy)
@@ -1,3 +1,9 @@
+2015-11-18 Alan Modra
+
+ * configure.ac (POWERPC64_TOC_POINTER_ALIGNMENT): Pass -z norelro
+ to ld.
+ * configure: Regenerate.
+
2015-11-17 Tom de Vries
* tree-ssa-loop.c (pass_tree_loop_i
CC diagnostic pop
}
/* Our implementation of LEGITIMIZE_RELOAD_ADDRESS. Returns a value to
--
Alan Modra
Australia Development Lab, IBM
1 - 100 of 1010 matches
Mail list logo