X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/blobdiff_plain/a90d420cbe87490c844ae422c966e746d3134b07..4d99c15efa500303c59a6e419634f2ed0123766d:/base/dispatch-x86ish.S diff --git a/base/dispatch-x86ish.S b/base/dispatch-x86ish.S index c3725fc6..94f44ee1 100644 --- a/base/dispatch-x86ish.S +++ b/base/dispatch-x86ish.S @@ -132,16 +132,17 @@ FUNC(dispatch_x86ish_xmmregisters_p) // Save the floating point and SIMD registers, and try to clobber // xmm0. + lea DX, [SP + 160] fxsave [SP] - mov eax, [SP + 160] - xor dword ptr [SP + 160], 0xaaaa5555 + mov eax, [DX] + xor dword ptr [DX], 0xaaaa5555 fxrstor [SP] // Save them again, and read back the low word of xmm0. Undo the // clobbering and restore. fxsave [SP] - mov ecx, [SP + 160] - mov [SP + 160], eax + mov ecx, [DX] + mov [DX], eax fxrstor [SP] // The register are live if we read different things.