mirror of
https://github.com/golang/go
synced 2024-11-27 04:31:21 -07:00
cmd/internal/obj/x86: use mov instead of lea to load the frame pointer
This CL instructs the Go x86 compiler to load the frame pointer address using a MOV instead of a LEA instruction, being MOV 1 byte shorter: Before 55 PUSHQ BP 48 8d 2c 24 LEAQ 0(SP), BP After 55 PUSHQ BP 48 89 e5 MOVQ SP, BP This reduces the size of the Go toolchain ~0.06%. Updates #6853 Change-Id: I5557cf34c47e871d264ba0deda9b78338681a12c Reviewed-on: https://go-review.googlesource.com/c/go/+/463845 Auto-Submit: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@google.com> Reviewed-by: Keith Randall <khr@golang.org> Run-TryBot: Quim Muntal <quimmuntal@gmail.com> Reviewed-by: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
0067d814b6
commit
adc1db23ee
@ -695,11 +695,9 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym, newprog obj.ProgAlloc) {
|
|||||||
// Move current frame to BP
|
// Move current frame to BP
|
||||||
p = obj.Appendp(p, newprog)
|
p = obj.Appendp(p, newprog)
|
||||||
|
|
||||||
p.As = ALEAQ
|
p.As = AMOVQ
|
||||||
p.From.Type = obj.TYPE_MEM
|
p.From.Type = obj.TYPE_REG
|
||||||
p.From.Reg = REG_SP
|
p.From.Reg = REG_SP
|
||||||
p.From.Scale = 1
|
|
||||||
p.From.Offset = 0
|
|
||||||
p.To.Type = obj.TYPE_REG
|
p.To.Type = obj.TYPE_REG
|
||||||
p.To.Reg = REG_BP
|
p.To.Reg = REG_BP
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user