fix #30659
fix #30659
ericsssan/zig:bug/compiler_rt-does-not-conform-to-the-zig-libc-test-math-tests-#30659 into master
fix #30659
@ -0,0 +33,4 @@
// A volatile read prevents LLVM from substituting the compile-time constant
// value ±1.0 before emitting the fdiv instruction.
// ---------------------------------------------------------------------------
pubnoinlinefnfp_divzero_f32(sign:bool)f32{
is there a reason to be bool here over an enum of some kind that self-documents?
Good catch. Updated. Thanks.
4230184e1d
c46a10d776
c46a10d776
069c7415f1
b9cc5a9f9f
bd6b9f4f2e
The ldmxcsr (load MXCSR) instruction causes general protection exceptions in ReleaseSafe builds on x86_64 hardware. Remove the write operation; flag reading via stmxcsr still works. Tests handle stale flags gracefully.
Convert inline assembly clobbers from legacy string format ("memory")
to current Zig struct format (.{ .memory = true }) for compatibility
with the Zig compiler version used in CI.
0810d75cfa
73a5b07f40
73a5b07f40
d11326592c
d11326592c
0f356ee477
0f356ee477
44cbe64567
The previous approach of passing memory directly to inline assembly constraints was not generating correct addressing modes for ldmxcsr/stmxcsr instructions. Using a pointer with "r" (register) constraint ensures the address is placed in a CPU register, allowing the instructions to properly execute indirect addressing: ldmxcsr (%[v]) # where [v] is a register containing the buffer address stmxcsr (%[v]) This eliminates the General Protection Faults on x86_64 when clearing FP exception flags.
No due date set.
No dependencies set.
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?