From 4d99c15efa500303c59a6e419634f2ed0123766d Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Tue, 29 Oct 2019 18:58:15 +0000 Subject: [PATCH] base/dispatch-x86ish.S: Capture the `xmm0' address in a register. This saves 16 bytes overall, and makes for slightly more readable code. --- base/dispatch-x86ish.S | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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. -- 2.11.0