[Bug target/104189] enable 64-bit compare-and-swap on SPARC/Linux with V9

glaubitz at physik dot fu-berlin.de gcc-bugzilla@gcc.gnu.org
Mon Jan 24 18:14:41 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104189

--- Comment #4 from John Paul Adrian Glaubitz <glaubitz at physik dot fu-berlin.de> ---
(In reply to John Paul Adrian Glaubitz from comment #3)
> I think that should be the case given that the 32-bit SPARC port in Debian
> has been based on the SPARCV8+ baseline since 2007 [1].
> 
> Is there any way to verify this?

Looking at the kernel setup code for sparc64, support for V8+ seems to be a
standard capability that is available on all 64-bit SPARC targets.

The function init_sparc64_elf_hwcap(void) [1] unconditionally enables it with:

cap |= (AV_SPARC_MUL32 | AV_SPARC_DIV32 | AV_SPARC_V8PLUS);

So, I think it should be safe and enable V8+ on sparc64 for 32-bit targets the
same way it is done on Solaris.

> [1] https://github.com/torvalds/linux/blob/5bfc75d92efd494db37f5c4c173d3639d4772966/arch/sparc/kernel/setup_64.c#L531


More information about the Gcc-bugs mailing list