From: Rui Ueyama Date: Wed, 6 Aug 2014 04:10:07 +0000 (-0700) Subject: liblink: shorter encoding for zeroing register X-Git-Tag: go1.4beta1~939 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=24db88168997d650e8274dd2e84e8a56bf8d95b9;p=gostls13.git liblink: shorter encoding for zeroing register Encode MOV $0, %ax as XOR %eax, %eax instead of XOR %rax, %rax. If an operand register does not need REX.w bit (i.e. not one of R8-R15), it is encoded in 2 bytes instead of 3 bytes. LGTM=rsc R=golang-codereviews, gobot, rsc CC=golang-codereviews https://golang.org/cl/115580044 --- diff --git a/src/liblink/asm6.c b/src/liblink/asm6.c index 454b30239a..3fc3e01286 100644 --- a/src/liblink/asm6.c +++ b/src/liblink/asm6.c @@ -3066,6 +3066,7 @@ found: break; case Zclr: + ctxt->rexflag &= ~Pw; *ctxt->andptr++ = op; asmand(ctxt, &p->to, &p->to); break;