/* { dg-do compile } */
-/* { dg-require-effective-target powerpc_future_ok } */
-/* { dg-options "-mdejagnu-cpu=future -O2" } */
+/* { dg-require-effective-target power10_ok } */
+/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
-/* Ensure -mcpu=future compiles cleanly. */
+/* Ensure -mcpu=power10 compiles cleanly. */
void x (void) { }
/* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=future -O2 -mpcrel" } */
+/* { dg-options "-mdejagnu-cpu=power10 -O2 -mpcrel" } */
/* { dg-require-effective-target powerpc_elfv2 } */
-/* { dg-require-effective-target powerpc_future_ok } */
+/* { dg-require-effective-target power10_ok } */
/* Ensure we generate ".localentry fn,1" for both leaf and non-leaf functions.
- At present, -mcpu=future does not enable pc-relative mode, so make sure we
+ At present, -mcpu=power10 does not enable pc-relative mode, so make sure we
enable it to be able to check for .localentry. */
extern int y (int);
/* { dg-do compile } */
/* { dg-require-effective-target powerpc_elfv2 } */
-/* { dg-require-effective-target powerpc_future_ok } */
-/* { dg-options "-O2 -mdejagnu-cpu=future" } */
+/* { dg-require-effective-target power10_ok } */
+/* { dg-options "-O2 -mdejagnu-cpu=power10" } */
-/* At present, -mcpu=future does not enable pc-relative mode. Enable it here
+/* At present, -mcpu=power10 does not enable pc-relative mode. Enable it here
explicitly until it is turned on by default. */
-#pragma GCC target ("cpu=future,pcrel")
+#pragma GCC target ("cpu=power10,pcrel")
int localentry1 () { return 5; }
#pragma GCC target ("cpu=power9,no-pcrel")
/* { dg-do compile } */
-/* { dg-require-effective-target powerpc_future_ok } */
-/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
+/* { dg-require-effective-target power10_ok } */
+/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
typedef unsigned char vec_t __attribute__((vector_size(16)));
/* { dg-do compile } */
-/* { dg-require-effective-target powerpc_future_ok } */
-/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
+/* { dg-require-effective-target power10_ok } */
+/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
typedef unsigned char vec_t __attribute__((vector_size(16)));
/* { dg-do compile } */
-/* { dg-require-effective-target powerpc_future_ok } */
-/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
+/* { dg-require-effective-target power10_ok } */
+/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
void
foo0 (void)
/* { dg-do compile } */
-/* { dg-require-effective-target powerpc_future_ok } */
-/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
+/* { dg-require-effective-target power10_ok } */
+/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
typedef unsigned char vec_t __attribute__((vector_size(16)));
/* { dg-do compile } */
-/* { dg-require-effective-target powerpc_future_ok } */
-/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
+/* { dg-require-effective-target power10_ok } */
+/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
typedef unsigned char vec_t __attribute__((vector_size(16)));
/* { dg-do compile } */
-/* { dg-require-effective-target powerpc_future_ok } */
-/* { dg-options "-Wno-psabi -mdejagnu-cpu=future -O2" } */
+/* { dg-require-effective-target power10_ok } */
+/* { dg-options "-Wno-psabi -mdejagnu-cpu=power10 -O2" } */
void
foo (__vector_quad *dst)
/* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=future -O2 -mpcrel" } */
+/* { dg-options "-mdejagnu-cpu=power10 -O2 -mpcrel" } */
/* { dg-require-effective-target powerpc_elfv2 } */
-/* { dg-require-effective-target powerpc_future_ok } */
+/* { dg-require-effective-target power10_ok } */
/* Test that calls generated from PC-relative code are annotated with @notoc.
- At present, -mcpu=future does not enable pc-relative mode. Enable it here
+ At present, -mcpu=power10 does not enable pc-relative mode. Enable it here
explicitly until it is turned on by default. */
extern int yy0 (int);
/* { dg-do compile } */
-/* { dg-options "-mdejagnu-cpu=future -O2" } */
+/* { dg-options "-mdejagnu-cpu=power10 -O2" } */
/* { dg-require-effective-target powerpc_elfv2 } */
-/* { dg-require-effective-target powerpc_future_ok } */
+/* { dg-require-effective-target power10_ok } */
/* Test that potential sibcalls are not generated when the caller preserves the
- TOC and the callee doesn't, or vice versa. At present, -mcpu=future does
+ TOC and the callee doesn't, or vice versa. At present, -mcpu=power10 does
not enable pc-relative mode. Enable it here explicitly until it is turned
on by default. */
-#pragma GCC target ("cpu=future,pcrel")
+#pragma GCC target ("cpu=power10,pcrel")
int x (void) __attribute__((noinline));
int y (void) __attribute__((noinline));
int xx (void) __attribute__((noinline));
return 1;
}
-#pragma GCC target ("cpu=future,pcrel")
+#pragma GCC target ("cpu=power10,pcrel")
int notoc_call (void)
{
return xx ();
/* PR target/93122 */
-/* { dg-require-effective-target powerpc_future_ok } */
+/* { dg-require-effective-target power10_ok } */
/* { dg-do compile { target lp64 } } */
-/* { dg-options "-fstack-clash-protection -mprefixed -mfuture" } */
+/* { dg-options "-fstack-clash-protection -mprefixed -mcpu=power10" } */
void bar (char *);
}
-# Return 1 if the target supports executing FUTURE instructions, 0 otherwise.
+# Return 1 if the target supports executing power10 instructions, 0 otherwise.
# Cache the result. It is assumed that if a simulator does not support the
-# FUTURE instructions, that it will generate an error and this test will fail.
+# power10 instructions, that it will generate an error and this test will fail.
-proc check_powerpc_future_hw_available { } {
- return [check_cached_effective_target powerpc_future_hw_available {
- check_runtime_nocache powerpc_future_hw_available {
+proc check_power10_hw_available { } {
+ return [check_cached_effective_target power10_hw_available {
+ check_runtime_nocache power10_hw_available {
int main()
{
/* Set e first and use +r to check if pli actually works. */
asm ("pli %0,%1" : "+r" (e) : "n" (0x12345));
return (e == 0x12345);
}
- } "-mfuture"
+ } "-mcpu=power10"
}]
}
} ""]
}
-# Return 1 if we're generating code for power9 and future platforms.
+# Return 1 if we're generating code for power9 or later platforms.
proc check_effective_target_p9+ { } {
return [check_no_compiler_messages_nocache p9+ assembly {
}]
}
-# Return 1 if this is a PowerPC target supporting -mfuture.
-# Limit this to 64-bit linux systems for now until other
-# targets support FUTURE.
+# Return 1 if this is a PowerPC target supporting -mcpu=power10.
+# Limit this to 64-bit linux systems for now until other targets support
+# power10.
-proc check_effective_target_powerpc_future_ok { } {
+proc check_effective_target_power10_ok { } {
if { ([istarget powerpc64*-*-linux*]) } {
- return [check_no_compiler_messages powerpc_future_ok object {
+ return [check_no_compiler_messages power10_ok object {
int main (void) {
long e;
asm ("pli %0,%1" : "=r" (e) : "n" (0x12345));
return e;
}
- } "-mfuture"]
+ } "-mcpu=power10"]
} else {
return 0
}
"named_sections" { set selected [check_named_sections_available] }
"gc_sections" { set selected [check_gc_sections_available] }
"cxa_atexit" { set selected [check_cxa_atexit_available] }
+ "power10_hw" { set selected [check_power10_hw_available] }
default { error "unknown effective target keyword `$arg'" }
}
}