diff options
Diffstat (limited to 'src/cmd/internal/obj/ppc64')
| -rw-r--r-- | src/cmd/internal/obj/ppc64/asm9.go | 60 | ||||
| -rw-r--r-- | src/cmd/internal/obj/ppc64/obj9.go | 48 |
2 files changed, 53 insertions, 55 deletions
diff --git a/src/cmd/internal/obj/ppc64/asm9.go b/src/cmd/internal/obj/ppc64/asm9.go index 1433710944..a4e46be9e2 100644 --- a/src/cmd/internal/obj/ppc64/asm9.go +++ b/src/cmd/internal/obj/ppc64/asm9.go @@ -470,16 +470,14 @@ func span9(ctxt *obj.Link, cursym *obj.LSym) { if (o.type_ == 16 || o.type_ == 17) && p.Pcond != nil { otxt = p.Pcond.Pc - c if otxt < -(1<<15)+10 || otxt >= (1<<15)-10 { - q = new(obj.Prog) - q.Ctxt = p.Ctxt + q = ctxt.NewProg() q.Link = p.Link p.Link = q q.As = ABR q.To.Type = obj.TYPE_BRANCH q.Pcond = p.Pcond p.Pcond = q - q = new(obj.Prog) - q.Ctxt = p.Ctxt + q = ctxt.NewProg() q.Link = p.Link p.Link = q q.As = ABR @@ -534,12 +532,12 @@ func span9(ctxt *obj.Link, cursym *obj.LSym) { } } -func isint32(v int64) int { - return bool2int(int64(int32(v)) == v) +func isint32(v int64) bool { + return int64(int32(v)) == v } -func isuint32(v uint64) int { - return bool2int(uint64(uint32(v)) == v) +func isuint32(v uint64) bool { + return uint64(uint32(v)) == v } func aclass(ctxt *obj.Link, a *obj.Addr) int { @@ -637,7 +635,7 @@ func aclass(ctxt *obj.Link, a *obj.Addr) int { if -BIG <= ctxt.Instoffset && ctxt.Instoffset <= BIG { return C_SACON } - if isint32(ctxt.Instoffset) != 0 { + if isint32(ctxt.Instoffset) { return C_LACON } return C_DACON @@ -689,10 +687,10 @@ func aclass(ctxt *obj.Link, a *obj.Addr) int { if ctxt.Instoffset <= 0xffff { return C_ANDCON } - if ctxt.Instoffset&0xffff == 0 && isuint32(uint64(ctxt.Instoffset)) != 0 { /* && (instoffset & (1<<31)) == 0) */ + if ctxt.Instoffset&0xffff == 0 && isuint32(uint64(ctxt.Instoffset)) { /* && (instoffset & (1<<31)) == 0) */ return C_UCON } - if isint32(ctxt.Instoffset) != 0 || isuint32(uint64(ctxt.Instoffset)) != 0 { + if isint32(ctxt.Instoffset) || isuint32(uint64(ctxt.Instoffset)) { return C_LCON } return C_DCON @@ -701,10 +699,10 @@ func aclass(ctxt *obj.Link, a *obj.Addr) int { if ctxt.Instoffset >= -0x8000 { return C_ADDCON } - if ctxt.Instoffset&0xffff == 0 && isint32(ctxt.Instoffset) != 0 { + if ctxt.Instoffset&0xffff == 0 && isint32(ctxt.Instoffset) { return C_UCON } - if isint32(ctxt.Instoffset) != 0 { + if isint32(ctxt.Instoffset) { return C_LCON } return C_DCON @@ -1407,20 +1405,20 @@ func addaddrreloc(ctxt *obj.Link, s *obj.LSym, o1 *uint32, o2 *uint32) { /* * 32-bit masks */ -func getmask(m []byte, v uint32) int { +func getmask(m []byte, v uint32) bool { var i int m[1] = 0 m[0] = m[1] if v != ^uint32(0) && v&(1<<31) != 0 && v&1 != 0 { /* MB > ME */ - if getmask(m, ^v) != 0 { + if getmask(m, ^v) { i = int(m[0]) m[0] = m[1] + 1 m[1] = byte(i - 1) - return 1 + return true } - return 0 + return false } for i = 0; i < 32; i++ { @@ -1429,25 +1427,25 @@ func getmask(m []byte, v uint32) int { for { m[1] = byte(i) i++ - if !(i < 32 && v&(1<<uint(31-i)) != 0) { + if i >= 32 || v&(1<<uint(31-i)) == 0 { break } } for ; i < 32; i++ { if v&(1<<uint(31-i)) != 0 { - return 0 + return false } } - return 1 + return true } } - return 0 + return false } func maskgen(ctxt *obj.Link, p *obj.Prog, m []byte, v uint32) { - if !(getmask(m, v) != 0) { + if !getmask(m, v) { ctxt.Diag("cannot generate mask #%x\n%v", v, p) } } @@ -1455,7 +1453,7 @@ func maskgen(ctxt *obj.Link, p *obj.Prog, m []byte, v uint32) { /* * 64-bit masks (rldic etc) */ -func getmask64(m []byte, v uint64) int { +func getmask64(m []byte, v uint64) bool { var i int m[1] = 0 @@ -1466,25 +1464,25 @@ func getmask64(m []byte, v uint64) int { for { m[1] = byte(i) i++ - if !(i < 64 && v&(uint64(1)<<uint(63-i)) != 0) { + if i >= 64 || v&(uint64(1)<<uint(63-i)) == 0 { break } } for ; i < 64; i++ { if v&(uint64(1)<<uint(63-i)) != 0 { - return 0 + return false } } - return 1 + return true } } - return 0 + return false } func maskgen64(ctxt *obj.Link, p *obj.Prog, m []byte, v uint64) { - if !(getmask64(m, v) != 0) { + if !getmask64(m, v) { ctxt.Diag("cannot generate mask #%x\n%v", v, p) } } @@ -1493,7 +1491,7 @@ func loadu32(r int, d int64) uint32 { var v int32 v = int32(d >> 16) - if isuint32(uint64(d)) != 0 { + if isuint32(uint64(d)) { return LOP_IRR(OP_ORIS, uint32(r), REGZERO, uint32(v)) } return AOP_IRR(OP_ADDIS, uint32(r), REGZERO, uint32(v)) @@ -1574,7 +1572,7 @@ func asmout(ctxt *obj.Link, p *obj.Prog, o *Optab, out []uint32) { log.Fatalf("invalid handling of %v", p) } v >>= 16 - if r == REGZERO && isuint32(uint64(d)) != 0 { + if r == REGZERO && isuint32(uint64(d)) { o1 = LOP_IRR(OP_ORIS, uint32(p.To.Reg), REGZERO, uint32(v)) break } @@ -1862,7 +1860,7 @@ func asmout(ctxt *obj.Link, p *obj.Prog, o *Optab, out []uint32) { if r == 0 { r = int(p.To.Reg) } - if p.As == AADD && (!(r0iszero != 0 /*TypeKind(100016)*/) && p.Reg == 0 || r0iszero != 0 /*TypeKind(100016)*/ && p.To.Reg == 0) { + if p.As == AADD && (r0iszero == 0 /*TypeKind(100016)*/ && p.Reg == 0 || r0iszero != 0 /*TypeKind(100016)*/ && p.To.Reg == 0) { ctxt.Diag("literal operation on R0\n%v", p) } o1 = AOP_IRR(uint32(opirr(ctxt, int(p.As)+ALAST)), uint32(p.To.Reg), uint32(r), uint32(v)>>16) diff --git a/src/cmd/internal/obj/ppc64/obj9.go b/src/cmd/internal/obj/ppc64/obj9.go index 4675a9e7b0..7524674dd8 100644 --- a/src/cmd/internal/obj/ppc64/obj9.go +++ b/src/cmd/internal/obj/ppc64/obj9.go @@ -289,7 +289,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { p.Pcond = q1 } - if !(q1.Mark&LEAF != 0) { + if q1.Mark&LEAF == 0 { q1.Mark |= LABEL } } else { @@ -341,15 +341,15 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { } p.To.Offset = int64(autosize) - 8 - if !(p.From3.Offset&obj.NOSPLIT != 0) { - p = stacksplit(ctxt, p, autosize, bool2int(!(cursym.Text.From3.Offset&obj.NEEDCTXT != 0))) // emit split check + if p.From3.Offset&obj.NOSPLIT == 0 { + p = stacksplit(ctxt, p, autosize, cursym.Text.From3.Offset&obj.NEEDCTXT == 0) // emit split check } q = p if autosize != 0 { /* use MOVDU to adjust R1 when saving R31, if autosize is small */ - if !(cursym.Text.Mark&LEAF != 0) && autosize >= -BIG && autosize <= BIG { + if cursym.Text.Mark&LEAF == 0 && autosize >= -BIG && autosize <= BIG { mov = AMOVDU aoffset = int(-autosize) } else { @@ -362,7 +362,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { q.To.Reg = REGSP q.Spadj = +autosize } - } else if !(cursym.Text.Mark&LEAF != 0) { + } else if cursym.Text.Mark&LEAF == 0 { if ctxt.Debugvlog != 0 { fmt.Fprintf(ctxt.Bso, "save suppressed in: %s\n", cursym.Name) obj.Bflush(ctxt.Bso) @@ -499,9 +499,9 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { } if cursym.Text.Mark&LEAF != 0 { - if !(autosize != 0) { + if autosize == 0 { p.As = ABR - p.From = obj.Zprog.From + p.From = obj.Addr{} p.To.Type = obj.TYPE_REG p.To.Reg = REG_LR p.Mark |= BRANCH @@ -515,7 +515,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { p.To.Reg = REGSP p.Spadj = -autosize - q = p.Ctxt.NewProg() + q = ctxt.NewProg() q.As = ABR q.Lineno = p.Lineno q.To.Type = obj.TYPE_REG @@ -535,7 +535,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { p.To.Type = obj.TYPE_REG p.To.Reg = REGTMP - q = p.Ctxt.NewProg() + q = ctxt.NewProg() q.As = AMOVD q.Lineno = p.Lineno q.From.Type = obj.TYPE_REG @@ -549,7 +549,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { if false { // Debug bad returns - q = p.Ctxt.NewProg() + q = ctxt.NewProg() q.As = AMOVD q.Lineno = p.Lineno q.From.Type = obj.TYPE_MEM @@ -564,7 +564,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { } if autosize != 0 { - q = p.Ctxt.NewProg() + q = ctxt.NewProg() q.As = AADD q.Lineno = p.Lineno q.From.Type = obj.TYPE_CONST @@ -577,7 +577,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { p.Link = q } - q1 = p.Ctxt.NewProg() + q1 = ctxt.NewProg() q1.As = ABR q1.Lineno = p.Lineno q1.To.Type = obj.TYPE_REG @@ -641,7 +641,7 @@ func preprocess(ctxt *obj.Link, cursym *obj.LSym) { q = p; } */ -func stacksplit(ctxt *obj.Link, p *obj.Prog, framesize int32, noctxt int) *obj.Prog { +func stacksplit(ctxt *obj.Link, p *obj.Prog, framesize int32, noctxt bool) *obj.Prog { var q *obj.Prog var q1 *obj.Prog @@ -774,7 +774,7 @@ func stacksplit(ctxt *obj.Link, p *obj.Prog, framesize int32, noctxt int) *obj.P if ctxt.Cursym.Cfunc != 0 { p.To.Sym = obj.Linklookup(ctxt, "runtime.morestackc", 0) } else { - p.To.Sym = ctxt.Symmorestack[noctxt] + p.To.Sym = ctxt.Symmorestack[bool2int(noctxt)] } // BR start @@ -799,7 +799,7 @@ func follow(ctxt *obj.Link, s *obj.LSym) { ctxt.Cursym = s - firstp = new(obj.Prog) + firstp = ctxt.NewProg() lastp = firstp xfol(ctxt, s.Text, &lastp) lastp.Link = nil @@ -853,7 +853,7 @@ loop: p = p.Link xfol(ctxt, p, last) p = q - if p != nil && !(p.Mark&FOLL != 0) { + if p != nil && p.Mark&FOLL == 0 { goto loop } return @@ -862,7 +862,7 @@ loop: if q != nil { p.Mark |= FOLL p = q - if !(p.Mark&FOLL != 0) { + if p.Mark&FOLL == 0 { goto loop } } @@ -885,19 +885,19 @@ loop: if a == ABR || a == ARETURN || a == ARFI || a == ARFCI || a == ARFID || a == AHRFID { goto copy } - if !(q.Pcond != nil) || (q.Pcond.Mark&FOLL != 0) { + if q.Pcond == nil || (q.Pcond.Mark&FOLL != 0) { continue } b = relinv(a) - if !(b != 0) { + if b == 0 { continue } copy: for { - r = new(obj.Prog) + r = ctxt.NewProg() *r = *p - if !(r.Mark&FOLL != 0) { + if r.Mark&FOLL == 0 { fmt.Printf("cant happen 1\n") } r.Mark |= FOLL @@ -916,10 +916,10 @@ loop: r.As = int16(b) r.Pcond = p.Link r.Link = p.Pcond - if !(r.Link.Mark&FOLL != 0) { + if r.Link.Mark&FOLL == 0 { xfol(ctxt, r.Link, last) } - if !(r.Pcond.Mark&FOLL != 0) { + if r.Pcond.Mark&FOLL == 0 { fmt.Printf("cant happen 2\n") } return @@ -927,7 +927,7 @@ loop: } a = ABR - q = p.Ctxt.NewProg() + q = ctxt.NewProg() q.As = int16(a) q.Lineno = p.Lineno q.To.Type = obj.TYPE_BRANCH |
