diff options
| author | Josh Bleecher Snyder <josharian@gmail.com> | 2017-03-21 22:23:45 -0700 |
|---|---|---|
| committer | Josh Bleecher Snyder <josharian@gmail.com> | 2017-03-22 17:27:43 +0000 |
| commit | a470e5d4b823c7a3ada993d2e76f191d4c51555a (patch) | |
| tree | 703be139298612c600ab60760b5822e6977725fd /src/cmd/internal/obj/mips/obj0.go | |
| parent | 0a94daa3789a52bea9856f9f8b3fa32477eab28a (diff) | |
| download | go-a470e5d4b823c7a3ada993d2e76f191d4c51555a.tar.xz | |
cmd/internal/obj: eliminate Ctxt.Mode
Replace Ctxt.Mode with a method, Ctxt.RegWidth,
which is calculated directly off the arch info.
I believe that Prog.Mode can also be removed; future CL.
This is a step towards obj.Link immutability.
Passes toolstash-check -all.
Updates #15756
Change-Id: Ifd7f8f6ed0a2fdc032d1dd306fcd695a14aa5bc5
Reviewed-on: https://go-review.googlesource.com/38446
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/internal/obj/mips/obj0.go')
| -rw-r--r-- | src/cmd/internal/obj/mips/obj0.go | 22 |
1 files changed, 5 insertions, 17 deletions
diff --git a/src/cmd/internal/obj/mips/obj0.go b/src/cmd/internal/obj/mips/obj0.go index fe1ce9c027..11434751e2 100644 --- a/src/cmd/internal/obj/mips/obj0.go +++ b/src/cmd/internal/obj/mips/obj0.go @@ -38,18 +38,6 @@ import ( ) func progedit(ctxt *obj.Link, p *obj.Prog) { - // Maintain information about code generation mode. - if ctxt.Mode == 0 { - switch ctxt.Arch.Family { - default: - ctxt.Diag("unsupported arch family") - case sys.MIPS: - ctxt.Mode = Mips32 - case sys.MIPS64: - ctxt.Mode = Mips64 - } - } - p.From.Class = 0 p.To.Class = 0 @@ -89,7 +77,7 @@ func progedit(ctxt *obj.Link, p *obj.Prog) { case AMOVD: if p.From.Type == obj.TYPE_FCONST { i64 := math.Float64bits(p.From.Val.(float64)) - if i64 == 0 && ctxt.Mode&Mips64 != 0 { + if i64 == 0 && ctxt.Arch.Family == sys.MIPS64 { p.As = AMOVV p.From.Type = obj.TYPE_REG p.From.Reg = REGZERO @@ -285,7 +273,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { } var mov, add obj.As - if ctxt.Mode&Mips64 != 0 { + if ctxt.Arch.Family == sys.MIPS64 { add = AADDV mov = AMOVV } else { @@ -303,7 +291,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { autosize = int32(textstksiz + ctxt.FixedFrameSize()) if (p.Mark&LEAF != 0) && autosize <= int32(ctxt.FixedFrameSize()) { autosize = 0 - } else if autosize&4 != 0 && ctxt.Mode&Mips64 != 0 { + } else if autosize&4 != 0 && ctxt.Arch.Family == sys.MIPS64 { autosize += 4 } @@ -534,7 +522,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { } } - if ctxt.Mode&Mips32 != 0 { + if ctxt.Arch.Family == sys.MIPS { // rewrite MOVD into two MOVF in 32-bit mode to avoid unaligned memory access for p = cursym.Text; p != nil; p = p1 { p1 = p.Link @@ -633,7 +621,7 @@ func stacksplit(ctxt *obj.Link, p *obj.Prog, framesize int32) *obj.Prog { var mov, add, sub obj.As - if ctxt.Mode&Mips64 != 0 { + if ctxt.Arch.Family == sys.MIPS64 { add = AADDV mov = AMOVV sub = ASUBVU |
