]> Cypherpunks repositories - gostls13.git/commit
[dev.ssa] cmd/internal/obj/x86: don't clobber flags with dynlink rewrite
authorKeith Randall <khr@golang.org>
Thu, 4 Feb 2016 19:21:31 +0000 (11:21 -0800)
committerKeith Randall <khr@golang.org>
Thu, 4 Feb 2016 22:08:22 +0000 (22:08 +0000)
commit7de8cfdf9ce3942a255172e03c8f2ad380a30aca
treef3b844b28e4ffad731c831d581a0ce8f7a268fdb
parent2df4b9c265f4d2552141ad42cd537b28495a9c81
[dev.ssa] cmd/internal/obj/x86: don't clobber flags with dynlink rewrite

LEAQ symbol+100(SB), AX

Under dynamic link, rewrites to

MOVQ symbol@GOT(SB), AX
ADDQ $100, AX

but ADDQ clobbers flags, whereas the original LEAQ (when not dynamic
linking) doesn't.

Use LEAQ instead of ADDQ to add that constant in so we preserve flags.

Change-Id: Ibb055403d94a4c5163e1c7d2f45da633ffd0b6a3
Reviewed-on: https://go-review.googlesource.com/19230
Reviewed-by: David Chase <drchase@google.com>
Run-TryBot: David Chase <drchase@google.com>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/internal/obj/x86/obj6.go
src/cmd/internal/obj/x86/obj6_test.go