Skip to content

feat: IEEE float32 SSE (ss/movd, C UAC, SysV xmm) - #102

Merged
rieske merged 1 commit into
masterfrom
feat/float32-sse
Aug 7, 2026
Merged

feat: IEEE float32 SSE (ss/movd, C UAC, SysV xmm)#102
rieske merged 1 commit into
masterfrom
feat/float32-sse

Conversation

@rieske

@rieske rieske commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • Treat C float as IEEE binary32: f/F constants, float+float usual arithmetic, ss/movd converts, and 4-byte stores (structs, globals via dd / .long).
  • SysV xmm formals/returns/args use movd vs movq by width; variadic float actuals promote to double (printf("%f", f)).
  • Convert policy lives in type::needsNumericConvert; SSE emit is in StackMachine_Sse.cpp.
  • Extend FloatingTypesTest (precision, bits pun, layout, ABI) plus StackMachine/TypeQuery/util units. Double path stays green.

Test plan

  • Local codegenTest, typesTest, utilTest green
  • Local float functional suite intel + att green
  • CI build workflow (build + serial tests + coverage / Coveralls)

Treat float as 4-byte binary32: suffix-typed constants, float+float UAC,
ss/movd converts, dword stores, and variadic float->double for printf.
Split SSE emit into StackMachine_Sse.cpp.
@mergify

mergify Bot commented Aug 7, 2026

Copy link
Copy Markdown
Contributor

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

@coveralls

Copy link
Copy Markdown

Coverage Status

coverage: 92.793% (-0.007%) from 92.8% — feat/float32-sse into master

@rieske
rieske merged commit 2ca3024 into master Aug 7, 2026
3 of 4 checks passed
@rieske
rieske deleted the feat/float32-sse branch August 7, 2026 10:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants