mirror of
https://github.com/golang/go
synced 2024-11-20 07:54:39 -07:00
cmd/asm: add amd64 CLFLUSH instruction
This is the last instruction I found missing in SSE2 set. It does not reuse 'yprefetch' ytabs due to differences in operands SRC/DST roles: - PREFETCHx: ModRM:r/m(r) -> FROM - CLFLUSH: ModRM:r/m(w) -> TO unaryDst map is extended accordingly. Change-Id: I89e34ebb81cc0ee5f9ebbb1301bad417f7ee437f Reviewed-on: https://go-review.googlesource.com/56833 Run-TryBot: Ilya Tocar <ilya.tocar@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ilya Tocar <ilya.tocar@intel.com> Reviewed-by: Russ Cox <rsc@golang.org>
This commit is contained in:
parent
26dadbe32c
commit
4074e4e5be
4
src/cmd/asm/internal/asm/testdata/amd64enc.s
vendored
4
src/cmd/asm/internal/asm/testdata/amd64enc.s
vendored
@ -771,8 +771,8 @@ TEXT asmtest(SB),DUPOK|NOSPLIT,$0
|
||||
//TODO: CLAC // 0f01ca
|
||||
CLC // f8
|
||||
CLD // fc
|
||||
//TODO: CLFLUSH (BX) // 0fae3b
|
||||
//TODO: CLFLUSH (R11) // 410fae3b
|
||||
CLFLUSH (BX) // 0fae3b
|
||||
CLFLUSH (R11) // 410fae3b
|
||||
//TODO: CLFLUSHOPT (BX) // 660fae3b
|
||||
//TODO: CLFLUSHOPT (R11) // 66410fae3b
|
||||
CLI // fa
|
||||
|
@ -76,6 +76,7 @@ const (
|
||||
ABYTE
|
||||
ACLC
|
||||
ACLD
|
||||
ACLFLUSH
|
||||
ACLI
|
||||
ACLTS
|
||||
ACMC
|
||||
|
@ -38,6 +38,7 @@ var Anames = []string{
|
||||
"BYTE",
|
||||
"CLC",
|
||||
"CLD",
|
||||
"CLFLUSH",
|
||||
"CLI",
|
||||
"CLTS",
|
||||
"CMC",
|
||||
|
@ -551,6 +551,10 @@ var ypopl = []ytab{
|
||||
{Ynone, Ynone, Ym, Zo_m, 2},
|
||||
}
|
||||
|
||||
var yclflush = []ytab{
|
||||
{Ynone, Ynone, Ym, Zo_m, 2},
|
||||
}
|
||||
|
||||
var ybswap = []ytab{
|
||||
{Ynone, Ynone, Yrl, Z_rp, 2},
|
||||
}
|
||||
@ -994,6 +998,7 @@ var optab =
|
||||
{ACDQ, ynone, Px, [23]uint8{0x99}},
|
||||
{ACLC, ynone, Px, [23]uint8{0xf8}},
|
||||
{ACLD, ynone, Px, [23]uint8{0xfc}},
|
||||
{ACLFLUSH, yclflush, Pm, [23]uint8{0xae, 07}},
|
||||
{ACLI, ynone, Px, [23]uint8{0xfa}},
|
||||
{ACLTS, ynone, Pm, [23]uint8{0x06}},
|
||||
{ACMC, ynone, Px, [23]uint8{0xf5}},
|
||||
|
@ -1183,6 +1183,7 @@ func stacksplit(ctxt *obj.Link, cursym *obj.LSym, p *obj.Prog, newprog obj.ProgA
|
||||
var unaryDst = map[obj.As]bool{
|
||||
ABSWAPL: true,
|
||||
ABSWAPQ: true,
|
||||
ACLFLUSH: true,
|
||||
ACMPXCHG8B: true,
|
||||
ADECB: true,
|
||||
ADECL: true,
|
||||
|
Loading…
Reference in New Issue
Block a user