1
0
mirror of https://github.com/golang/go synced 2024-11-18 11:44:45 -07:00

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 <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Damien Lespiau 2017-05-07 15:58:03 +01:00 committed by Brad Fitzpatrick
parent 5300362172
commit 23c5db9bbb

View File

@ -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