mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: remove duff support for amd64
Change-Id: I742b49a3889892b7b1bb354f47f1c0d933c041e4 Reviewed-on: https://go-review.googlesource.com/c/go/+/682395 Auto-Submit: Keith Randall <khr@golang.org> Reviewed-by: Jorropo <jorropo.pgm@gmail.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Michael Knyszek <mknyszek@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
e4291e484c
commit
a651e2ea47
3 changed files with 0 additions and 453 deletions
|
|
@ -4013,15 +4013,6 @@ func (ab *AsmBuf) mediaop(ctxt *obj.Link, o *Optab, op int, osize int, z int) in
|
||||||
return z
|
return z
|
||||||
}
|
}
|
||||||
|
|
||||||
var bpduff1 = []byte{
|
|
||||||
0x48, 0x89, 0x6c, 0x24, 0xf0, // MOVQ BP, -16(SP)
|
|
||||||
0x48, 0x8d, 0x6c, 0x24, 0xf0, // LEAQ -16(SP), BP
|
|
||||||
}
|
|
||||||
|
|
||||||
var bpduff2 = []byte{
|
|
||||||
0x48, 0x8b, 0x6d, 0x00, // MOVQ 0(BP), BP
|
|
||||||
}
|
|
||||||
|
|
||||||
// asmevex emits EVEX pregis and opcode byte.
|
// asmevex emits EVEX pregis and opcode byte.
|
||||||
// In addition to asmvex r/m, vvvv and reg fields also requires optional
|
// In addition to asmvex r/m, vvvv and reg fields also requires optional
|
||||||
// K-masking register.
|
// K-masking register.
|
||||||
|
|
@ -4859,16 +4850,6 @@ func (ab *AsmBuf) doasm(ctxt *obj.Link, cursym *obj.LSym, p *obj.Prog) {
|
||||||
ctxt.Diag("directly calling duff when dynamically linking Go")
|
ctxt.Diag("directly calling duff when dynamically linking Go")
|
||||||
}
|
}
|
||||||
|
|
||||||
if yt.zcase == Zcallduff && ctxt.Arch.Family == sys.AMD64 {
|
|
||||||
// Maintain BP around call, since duffcopy/duffzero can't do it
|
|
||||||
// (the call jumps into the middle of the function).
|
|
||||||
// This makes it possible to see call sites for duffcopy/duffzero in
|
|
||||||
// BP-based profiling tools like Linux perf (which is the
|
|
||||||
// whole point of maintaining frame pointers in Go).
|
|
||||||
// MOVQ BP, -16(SP)
|
|
||||||
// LEAQ -16(SP), BP
|
|
||||||
ab.Put(bpduff1)
|
|
||||||
}
|
|
||||||
ab.Put1(byte(op))
|
ab.Put1(byte(op))
|
||||||
cursym.AddRel(ctxt, obj.Reloc{
|
cursym.AddRel(ctxt, obj.Reloc{
|
||||||
Type: objabi.R_CALL,
|
Type: objabi.R_CALL,
|
||||||
|
|
@ -4879,12 +4860,6 @@ func (ab *AsmBuf) doasm(ctxt *obj.Link, cursym *obj.LSym, p *obj.Prog) {
|
||||||
})
|
})
|
||||||
ab.PutInt32(0)
|
ab.PutInt32(0)
|
||||||
|
|
||||||
if yt.zcase == Zcallduff && ctxt.Arch.Family == sys.AMD64 {
|
|
||||||
// Pop BP pushed above.
|
|
||||||
// MOVQ 0(BP), BP
|
|
||||||
ab.Put(bpduff2)
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: jump across functions needs reloc
|
// TODO: jump across functions needs reloc
|
||||||
case Zbr, Zjmp, Zloop:
|
case Zbr, Zjmp, Zloop:
|
||||||
if p.As == AXBEGIN {
|
if p.As == AXBEGIN {
|
||||||
|
|
|
||||||
|
|
@ -1,427 +0,0 @@
|
||||||
// Code generated by mkduff.go; DO NOT EDIT.
|
|
||||||
// Run go generate from src/runtime to update.
|
|
||||||
// See mkduff.go for comments.
|
|
||||||
|
|
||||||
#include "textflag.h"
|
|
||||||
|
|
||||||
TEXT runtime·duffzero<ABIInternal>(SB), NOSPLIT|NOFRAME, $0-0
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
MOVUPS X15,(DI)
|
|
||||||
MOVUPS X15,16(DI)
|
|
||||||
MOVUPS X15,32(DI)
|
|
||||||
MOVUPS X15,48(DI)
|
|
||||||
LEAQ 64(DI),DI
|
|
||||||
|
|
||||||
RET
|
|
||||||
|
|
||||||
TEXT runtime·duffcopy<ABIInternal>(SB), NOSPLIT|NOFRAME, $0-0
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
MOVUPS (SI), X0
|
|
||||||
ADDQ $16, SI
|
|
||||||
MOVUPS X0, (DI)
|
|
||||||
ADDQ $16, DI
|
|
||||||
|
|
||||||
RET
|
|
||||||
|
|
@ -32,7 +32,6 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
gen("amd64", notags, zeroAMD64, copyAMD64)
|
|
||||||
gen("386", notags, zero386, copy386)
|
gen("386", notags, zero386, copy386)
|
||||||
gen("arm", notags, zeroARM, copyARM)
|
gen("arm", notags, zeroARM, copyARM)
|
||||||
gen("loong64", notags, zeroLOONG64, copyLOONG64)
|
gen("loong64", notags, zeroLOONG64, copyLOONG64)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue