diff options
| author | Damien Lespiau <damien.lespiau@intel.com> | 2017-05-07 15:58:03 +0100 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@golang.org> | 2017-05-07 17:00:58 +0000 |
| commit | 23c5db9bbbfe2d5656b8f153e1cc7327e90d8005 (patch) | |
| tree | 09377913b6457765de01dcb0cb6e6522c800169f /src | |
| parent | 53003621720ff39c4745a76f76847123c27b01ea (diff) | |
| download | go-23c5db9bbbfe2d5656b8f153e1cc7327e90d8005.tar.xz | |
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>
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/asm/internal/asm/testdata/amd64enc.s | 24 |
1 files changed, 12 insertions, 12 deletions
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 |
