In offlineasm we reserve r11 as a scratch register on x86, for truncatef2q, truncated2q, cq2f, cq2d, absf, absd, negf, negd. We can change those instructions to take an additional GPR for use as a scratch register, and return the power to choose when to use r11 to the programmer.
Pull request: https://github.com/WebKit/WebKit/pull/17224
Pull request: https://github.com/WebKit/WebKit/pull/17231
<rdar://problem/114999616>
The idea here was to make it clear when r11 was being used, such that on Windows we could use r11 for ws1 in WebAssembly.asm. I was unaware that MacroAssemblerX86_64 required r11 for other operations, I'd assumed it's primary purpose was for the usages I could see in offlineasm's x86.rb. We'll have to use an alternate approach to ws1 usage in WebAssembly.asm.