https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126685
Bug ID: 126685
Summary: [17 regression] grub fails to assemble with broken
__builtin_bswap64 expansion (Error: incorrect register
`%eax' used with `w' suffix)
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Keywords: assemble-failure
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: sjames at gcc dot gnu.org
CC: floppymaster at gmail dot com
Target Milestone: ---
>From Mike Gilbert (https://bugs.gentoo.org/980295#c9):
"""
Minimal reproducer (requires -march=i386):
% cat test.c
unsigned long long grub_swap_bytes64(unsigned long long x)
{
return __builtin_bswap64(x);
}
% gcc-17 -m32 -march=i386 -c test.c
/tmp/ccwE7rdT.s: Assembler messages:
/tmp/ccwE7rdT.s:23: Error: incorrect register `%eax' used with `w' suffix
/tmp/ccwE7rdT.s:25: Error: incorrect register `%eax' used with `w' suffix
/tmp/ccwE7rdT.s:28: Error: incorrect register `%eax' used with `w' suffix
/tmp/ccwE7rdT.s:30: Error: incorrect register `%eax' used with `w' suffix
"""