Landing: e63a873f1df7
Project / Subsystem
gcc / i386
Date
2026-06-13
Author
Oleg Tolmatcev
Commit
e63a873f1df7493b8b657acafb451bf40166044e
Source
github
Perf win
No
Breaking
No
All attributes
- project
- gcc
- subsystem
- i386
- patch_id
- —
- commit_hash
- e63a873f1df7493b8b657acafb451bf40166044e
- source_type
- github
- headline
- Fix i386 Win64 ABI compliance for __int128 return values.
- tldr
- i386 backend now correctly handles __int128 return values on Windows x64 according to the MS ABI.
- author
- Oleg Tolmatcev
- outcome
- committed
- performance_win
- false
- breaking_change
- false
- series_id
- —
- series_parts
- []
- tags
-
- • abi
- • x86
- • windows
- discussion_id_link
- —
- bugzilla_pr
- —
- date
- 2026-06-13T00:00:00.000Z
GCC’s i386 backend has been corrected to comply with the Windows x64 ABI regarding the return of __int128 types. Previously, the compiler incorrectly returned 128-bit integer types in SSE registers (%xmm0), deviating from the ABI’s requirement to use indirect memory returns for such types. This patch ensures that __int128 values are treated as indirect returns, with the caller providing a memory slot passed as the first argument and a pointer returned in RAX.