fix: any SSE instruction raises "invalid opcode" exception.
and add handling sse exception.
In SakuraVPS(public QEMU/KVM service),
CR4.OSFXSR and CR4.OSXMMEXCPT are removed after realmode().
Therefore, MMX/SSE instructions(e.g. MOVD) raises "invalid opcode" exception.
(I don't know this behavior is whether by CPU specification or by QEMU/KVM problem.)
SakuraVPS's cpuid is below:
cpu0: 2402MHz GenuineIntel Core i7/Xeon (cpuid: AX 0x206C1 DX 0x1F8BF3FF)
This problem is reproduced:
---
// This code can assemble Go's assembler (go tool 8a).
TEXT main·main+0(SB), $0
MOVSD $1.0, X0
RET
TEXT main·init+0(SB), $0
RET
----
|