From: Damien Lespiau Date: Sun, 7 May 2017 14:58:03 +0000 (+0100) Subject: cmd/asm: enable MOVSD in the encoding end-to-end test X-Git-Tag: go1.9beta1~321 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=23c5db9bbbfe2d5656b8f153e1cc7327e90d8005;p=gostls13.git cmd/asm: enable MOVSD in the encoding end-to-end test MOVSD is properly handled but its encoding test wasn't enabled. Enable it. For reference this was found with a little tool I wrote [1] to explore which instructions are missing or not tested in the go obj package and assembler: "which SSE2 instructions aren't tested? And don't list instructions which can take MMX operands" $ x86db-gogen list --extension SSE2 --not-tested --not-mmx CLFLUSH mem [m: np 0f ae /7] WILLAMETTE,SSE2 MOVSD xmmreg,xmmreg [rm: f2 0f 10 /r] WILLAMETTE,SSE2 MOVSD xmmreg,xmmreg [mr: f2 0f 11 /r] WILLAMETTE,SSE2 MOVSD mem64,xmmreg [mr: f2 0f 11 /r] WILLAMETTE,SSE2 MOVSD xmmreg,mem64 [rm: f2 0f 10 /r] WILLAMETTE,SSE2 (CLFLUSH was introduced with SSE2, but has its own CPUID bit) [1] https://github.com/dlespiau/x86db Change-Id: Ic3af3028cb8d4f02e53fdebb9b30fb311f4ee454 Reviewed-on: https://go-review.googlesource.com/42814 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/asm/internal/asm/testdata/amd64enc.s b/src/cmd/asm/internal/asm/testdata/amd64enc.s index dbc4023f9f..ec888bced3 100644 --- a/src/cmd/asm/internal/asm/testdata/amd64enc.s +++ b/src/cmd/asm/internal/asm/testdata/amd64enc.s @@ -2687,18 +2687,18 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0 MOVQOZX M3, X11 // f3440fd6db MOVSB // a4 MOVSL // a5 - //TODO: MOVSD (BX), X2 // f20f1013 - //TODO: MOVSD (R11), X2 // f2410f1013 - //TODO: MOVSD X2, X2 // f20f10d2 or f20f11d2 - //TODO: MOVSD X11, X2 // f2410f10d3 or f2440f11da - //TODO: MOVSD (BX), X11 // f2440f101b - //TODO: MOVSD (R11), X11 // f2450f101b - //TODO: MOVSD X2, X11 // f2440f10da or f2410f11d3 - //TODO: MOVSD X11, X11 // f2450f10db or f2450f11db - //TODO: MOVSD X2, (BX) // f20f1113 - //TODO: MOVSD X11, (BX) // f2440f111b - //TODO: MOVSD X2, (R11) // f2410f1113 - //TODO: MOVSD X11, (R11) // f2450f111b + MOVSD (BX), X2 // f20f1013 + MOVSD (R11), X2 // f2410f1013 + MOVSD X2, X2 // f20f10d2 or f20f11d2 + MOVSD X11, X2 // f2410f10d3 or f2440f11da + MOVSD (BX), X11 // f2440f101b + MOVSD (R11), X11 // f2450f101b + MOVSD X2, X11 // f2440f10da or f2410f11d3 + MOVSD X11, X11 // f2450f10db or f2450f11db + MOVSD X2, (BX) // f20f1113 + MOVSD X11, (BX) // f2440f111b + MOVSD X2, (R11) // f2410f1113 + MOVSD X11, (R11) // f2450f111b MOVSHDUP (BX), X2 // f30f1613 MOVSHDUP (R11), X2 // f3410f1613 MOVSHDUP X2, X2 // f30f16d2