+2012-04-09 Eric Botcazou <ebotcazou@adacore.com>
+
+ * lib/target-supports.exp (check_effective_target_sparc_v9): New.
+ (check_effective_target_sync_long_long): Add SPARC case.
+ (check_effective_target_sync_long_long_runtime): Likewise.
+ (check_effective_target_sync_int_long): Adjust SPARC case.
+ (check_effective_target_sync_char_short): Likewise.
+
2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/52893
} "-mcpu=niagara3"]
}
-# Return 1 if this is a Sparc target with VIS enabled.
+# Return 1 if this is a SPARC-V9 target.
+
+proc check_effective_target_sparc_v9 { } {
+ if { [istarget sparc*-*-*] } {
+ return [check_no_compiler_messages sparc_v9 object {
+ int main (void) {
+ asm volatile ("return %i7+8");
+ return 0;
+ }
+ }]
+ } else {
+ return 0
+ }
+}
+
+# Return 1 if this is a SPARC target with VIS enabled.
proc check_effective_target_sparc_vis { } {
if { [istarget sparc*-*-*] } {
if { [istarget x86_64-*-*]
|| [istarget i?86-*-*])
|| [istarget arm*-*-*]
- || [istarget alpha*-*-*] } {
+ || [istarget alpha*-*-*]
+ || ([istarget sparc*-*-*] && [check_effective_target_lp64]) } {
return 1
} else {
return 0
} "" ]
} elseif { [istarget alpha*-*-*] } {
return 1
+ } elseif { ([istarget sparc*-*-*]
+ && [check_effective_target_lp64]
+ && [check_effective_target_ultrasparc_hw]) } {
+ return 1
} else {
return 0
}
|| [istarget hppa*-*linux*]
|| [istarget s390*-*-*]
|| [istarget powerpc*-*-*]
- || [istarget sparc64-*-*]
- || [istarget sparcv9-*-*]
+ || ([istarget sparc*-*-*] && [check_effective_target_sparc_v9])
|| [check_effective_target_mips_llsc] } {
set et_sync_int_long_saved 1
}
|| [istarget hppa*-*linux*]
|| [istarget s390*-*-*]
|| [istarget powerpc*-*-*]
- || [istarget sparc64-*-*]
- || [istarget sparcv9-*-*]
+ || ([istarget sparc*-*-*] && [check_effective_target_sparc_v9])
|| [check_effective_target_mips_llsc] } {
set et_sync_char_short_saved 1
}