From: Ilya Tocar Date: Wed, 13 Dec 2017 22:38:02 +0000 (-0600) Subject: cmd/internal/obj/x86: small refactoring X-Git-Tag: go1.11beta1~1539 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4dc25ceda4a0a96aeef8bf5cb38a194221afcf8b;p=gostls13.git cmd/internal/obj/x86: small refactoring Replace some ints with bool and use arrays istead of slices where possible. Change-Id: I510bdaec48f9c437685e72c4a3291cffeb7ef5fc Reviewed-on: https://go-review.googlesource.com/83859 Run-TryBot: Ilya Tocar Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/internal/obj/x86/asm6.go b/src/cmd/internal/obj/x86/asm6.go index 7b80892cf0..b14d1d232b 100644 --- a/src/cmd/internal/obj/x86/asm6.go +++ b/src/cmd/internal/obj/x86/asm6.go @@ -1118,7 +1118,7 @@ var yextractps = []ytab{ */ var optab = /* as, ytab, andproto, opcode */ -[]Optab{ +[...]Optab{ {obj.AXXX, nil, 0, [23]uint8{}}, {AAAA, ynone, P32, [23]uint8{0x37}}, {AAAD, ynone, P32, [23]uint8{0xd5, 0x0a}}, @@ -2822,9 +2822,9 @@ type AsmBuf struct { buf [100]byte off int rexflag int - vexflag int - rep int - repn int + vexflag bool + rep bool + repn bool lock bool } @@ -3559,7 +3559,7 @@ var bpduff2 = []byte{ // For details about vex prefix see: // https://en.wikipedia.org/wiki/VEX_prefix#Technical_description func (asmbuf *AsmBuf) asmvex(ctxt *obj.Link, rm, v, r *obj.Addr, vex, opcode uint8) { - asmbuf.vexflag = 1 + asmbuf.vexflag = true rexR := 0 if r != nil { rexR = regrex[r.Reg] & Rxr @@ -4814,12 +4814,12 @@ func (asmbuf *AsmBuf) asmins(ctxt *obj.Link, cursym *obj.LSym, p *obj.Prog) { if ctxt.Headtype == objabi.Hnacl && ctxt.Arch.Family == sys.AMD64 { if p.As == AREP { - asmbuf.rep++ + asmbuf.rep = true return } if p.As == AREPN { - asmbuf.repn++ + asmbuf.repn = true return } @@ -4876,14 +4876,14 @@ func (asmbuf *AsmBuf) asmins(ctxt *obj.Link, cursym *obj.LSym, p *obj.Prog) { asmbuf.Put(naclmovs) } - if asmbuf.rep != 0 { + if asmbuf.rep { asmbuf.Put1(0xf3) - asmbuf.rep = 0 + asmbuf.rep = false } - if asmbuf.repn != 0 { + if asmbuf.repn { asmbuf.Put1(0xf2) - asmbuf.repn = 0 + asmbuf.repn = false } if asmbuf.lock { @@ -4893,10 +4893,10 @@ func (asmbuf *AsmBuf) asmins(ctxt *obj.Link, cursym *obj.LSym, p *obj.Prog) { } asmbuf.rexflag = 0 - asmbuf.vexflag = 0 + asmbuf.vexflag = false mark := asmbuf.Len() asmbuf.doasm(ctxt, cursym, p) - if asmbuf.rexflag != 0 && asmbuf.vexflag == 0 { + if asmbuf.rexflag != 0 && !asmbuf.vexflag { /* * as befits the whole approach of the architecture, * the rex prefix must appear before the first opcode byte @@ -4924,7 +4924,7 @@ func (asmbuf *AsmBuf) asmins(ctxt *obj.Link, cursym *obj.LSym, p *obj.Prog) { if int64(r.Off) < p.Pc { break } - if asmbuf.rexflag != 0 && asmbuf.vexflag == 0 { + if asmbuf.rexflag != 0 && !asmbuf.vexflag { r.Off++ } if r.Type == objabi.R_PCREL { diff --git a/src/cmd/internal/obj/x86/vex_optabs.go b/src/cmd/internal/obj/x86/vex_optabs.go index b0b54fe442..b6c96cf0ad 100644 --- a/src/cmd/internal/obj/x86/vex_optabs.go +++ b/src/cmd/internal/obj/x86/vex_optabs.go @@ -2,7 +2,7 @@ package x86 -var vexOptab = []Optab{ +var vexOptab = [...]Optab{ {AANDNL, yvex_r3, Pvex, [23]uint8{vexNDS | vexLZ | vex0F38 | vexW0, 0xF2}}, {AANDNQ, yvex_r3, Pvex, [23]uint8{vexNDS | vexLZ | vex0F38 | vexW1, 0xF2}}, {ABEXTRL, yvex_vmr3, Pvex, [23]uint8{vexNDS | vexLZ | vex0F38 | vexW0, 0xF7}},