mirror of
https://github.com/golang/go
synced 2024-11-18 13:14:47 -07:00
compile/internal/gc,internal/obj: remove some usages of obj.Bool2int
Passes go build -toolexec 'toolstash -cmp' -a std. Change-Id: Iea8c7bba2401f61ddf2caffc4bece2c293d10f74 Reviewed-on: https://go-review.googlesource.com/14951 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
550b7ccf77
commit
44ab8bab1c
@ -87,7 +87,9 @@ func Gbranch(as int, t *Type, likely int) *obj.Prog {
|
|||||||
p.To.Val = nil
|
p.To.Val = nil
|
||||||
if as != obj.AJMP && likely != 0 && Thearch.Thechar != '9' && Thearch.Thechar != '7' {
|
if as != obj.AJMP && likely != 0 && Thearch.Thechar != '9' && Thearch.Thechar != '7' {
|
||||||
p.From.Type = obj.TYPE_CONST
|
p.From.Type = obj.TYPE_CONST
|
||||||
p.From.Offset = int64(obj.Bool2int(likely > 0))
|
if likely > 0 {
|
||||||
|
p.From.Offset = 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if Debug['g'] != 0 {
|
if Debug['g'] != 0 {
|
||||||
|
@ -2847,25 +2847,25 @@ func keydup(n *Node, hash map[uint32][]*Node) {
|
|||||||
for _, a := range hash[h] {
|
for _, a := range hash[h] {
|
||||||
cmp.Op = OEQ
|
cmp.Op = OEQ
|
||||||
cmp.Left = n
|
cmp.Left = n
|
||||||
b := uint32(0)
|
b := false
|
||||||
if a.Op == OCONVIFACE && orign.Op == OCONVIFACE {
|
if a.Op == OCONVIFACE && orign.Op == OCONVIFACE {
|
||||||
if Eqtype(a.Left.Type, n.Type) {
|
if Eqtype(a.Left.Type, n.Type) {
|
||||||
cmp.Right = a.Left
|
cmp.Right = a.Left
|
||||||
evconst(&cmp)
|
evconst(&cmp)
|
||||||
if cmp.Op == OLITERAL {
|
if cmp.Op == OLITERAL {
|
||||||
// Sometimes evconst fails. See issue 12536.
|
// Sometimes evconst fails. See issue 12536.
|
||||||
b = uint32(obj.Bool2int(cmp.Val().U.(bool)))
|
b = cmp.Val().U.(bool)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if Eqtype(a.Type, n.Type) {
|
} else if Eqtype(a.Type, n.Type) {
|
||||||
cmp.Right = a
|
cmp.Right = a
|
||||||
evconst(&cmp)
|
evconst(&cmp)
|
||||||
if cmp.Op == OLITERAL {
|
if cmp.Op == OLITERAL {
|
||||||
b = uint32(obj.Bool2int(cmp.Val().U.(bool)))
|
b = cmp.Val().U.(bool)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if b != 0 {
|
if b {
|
||||||
Yyerror("duplicate key %v in map literal", n)
|
Yyerror("duplicate key %v in map literal", n)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -673,7 +673,7 @@ func span7(ctxt *obj.Link, cursym *obj.LSym) {
|
|||||||
* drop the pool now, and branch round it.
|
* drop the pool now, and branch round it.
|
||||||
*/
|
*/
|
||||||
func checkpool(ctxt *obj.Link, p *obj.Prog, skip int) {
|
func checkpool(ctxt *obj.Link, p *obj.Prog, skip int) {
|
||||||
if pool.size >= 0xffff0 || !(ispcdisp(int32(p.Pc+4+int64(pool.size)-int64(pool.start)+8)) != 0) {
|
if pool.size >= 0xffff0 || !ispcdisp(int32(p.Pc+4+int64(pool.size)-int64(pool.start)+8)) {
|
||||||
flushpool(ctxt, p, skip)
|
flushpool(ctxt, p, skip)
|
||||||
} else if p.Link == nil {
|
} else if p.Link == nil {
|
||||||
flushpool(ctxt, p, 2)
|
flushpool(ctxt, p, 2)
|
||||||
@ -826,27 +826,27 @@ func regoff(ctxt *obj.Link, a *obj.Addr) uint32 {
|
|||||||
return uint32(ctxt.Instoffset)
|
return uint32(ctxt.Instoffset)
|
||||||
}
|
}
|
||||||
|
|
||||||
func ispcdisp(v int32) int {
|
func ispcdisp(v int32) bool {
|
||||||
/* pc-relative addressing will reach? */
|
/* pc-relative addressing will reach? */
|
||||||
return obj.Bool2int(v >= -0xfffff && v <= 0xfffff && (v&3) == 0)
|
return v >= -0xfffff && v <= 0xfffff && (v&3) == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func isaddcon(v int64) int {
|
func isaddcon(v int64) bool {
|
||||||
/* uimm12 or uimm24? */
|
/* uimm12 or uimm24? */
|
||||||
if v < 0 {
|
if v < 0 {
|
||||||
return 0
|
return false
|
||||||
}
|
}
|
||||||
if (v & 0xFFF) == 0 {
|
if (v & 0xFFF) == 0 {
|
||||||
v >>= 12
|
v >>= 12
|
||||||
}
|
}
|
||||||
return obj.Bool2int(v <= 0xFFF)
|
return v <= 0xFFF
|
||||||
}
|
}
|
||||||
|
|
||||||
func isbitcon(v uint64) int {
|
func isbitcon(v uint64) bool {
|
||||||
/* fancy bimm32 or bimm64? */
|
/* fancy bimm32 or bimm64? */
|
||||||
// TODO(aram):
|
// TODO(aram):
|
||||||
return 0
|
return false
|
||||||
// return obj.Bool2int(findmask(v) != nil || (v>>32) == 0 && findmask(v|(v<<32)) != nil)
|
// return findmask(v) != nil || (v>>32) == 0 && findmask(v|(v<<32)) != nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func autoclass(l int64) int {
|
func autoclass(l int64) int {
|
||||||
@ -1007,11 +1007,11 @@ func aclass(ctxt *obj.Link, a *obj.Addr) int {
|
|||||||
if v == 0 {
|
if v == 0 {
|
||||||
return C_ZCON
|
return C_ZCON
|
||||||
}
|
}
|
||||||
if isaddcon(v) != 0 {
|
if isaddcon(v) {
|
||||||
if v <= 0xFFF {
|
if v <= 0xFFF {
|
||||||
return C_ADDCON0
|
return C_ADDCON0
|
||||||
}
|
}
|
||||||
if isbitcon(uint64(v)) != 0 {
|
if isbitcon(uint64(v)) {
|
||||||
return C_ABCON
|
return C_ABCON
|
||||||
}
|
}
|
||||||
return C_ADDCON
|
return C_ADDCON
|
||||||
@ -1019,7 +1019,7 @@ func aclass(ctxt *obj.Link, a *obj.Addr) int {
|
|||||||
|
|
||||||
t := movcon(v)
|
t := movcon(v)
|
||||||
if t >= 0 {
|
if t >= 0 {
|
||||||
if isbitcon(uint64(v)) != 0 {
|
if isbitcon(uint64(v)) {
|
||||||
return C_MBCON
|
return C_MBCON
|
||||||
}
|
}
|
||||||
return C_MOVCON
|
return C_MOVCON
|
||||||
@ -1027,13 +1027,13 @@ func aclass(ctxt *obj.Link, a *obj.Addr) int {
|
|||||||
|
|
||||||
t = movcon(^v)
|
t = movcon(^v)
|
||||||
if t >= 0 {
|
if t >= 0 {
|
||||||
if isbitcon(uint64(v)) != 0 {
|
if isbitcon(uint64(v)) {
|
||||||
return C_MBCON
|
return C_MBCON
|
||||||
}
|
}
|
||||||
return C_MOVCON
|
return C_MOVCON
|
||||||
}
|
}
|
||||||
|
|
||||||
if isbitcon(uint64(v)) != 0 {
|
if isbitcon(uint64(v)) {
|
||||||
return C_BITCON
|
return C_BITCON
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1062,7 +1062,7 @@ func aclass(ctxt *obj.Link, a *obj.Addr) int {
|
|||||||
return C_GOK
|
return C_GOK
|
||||||
|
|
||||||
aconsize:
|
aconsize:
|
||||||
if isaddcon(ctxt.Instoffset) != 0 {
|
if isaddcon(ctxt.Instoffset) {
|
||||||
return C_AACON
|
return C_AACON
|
||||||
}
|
}
|
||||||
return C_LACON
|
return C_LACON
|
||||||
@ -2182,14 +2182,14 @@ func asmout(ctxt *obj.Link, p *obj.Prog, o *Optab, out []uint32) {
|
|||||||
case 24: /* mov/mvn Rs,Rd -> add $0,Rs,Rd or orr Rs,ZR,Rd */
|
case 24: /* mov/mvn Rs,Rd -> add $0,Rs,Rd or orr Rs,ZR,Rd */
|
||||||
rf := int(p.From.Reg)
|
rf := int(p.From.Reg)
|
||||||
rt := int(p.To.Reg)
|
rt := int(p.To.Reg)
|
||||||
s := obj.Bool2int(rf == REGSP || rt == REGSP)
|
s := rf == REGSP || rt == REGSP
|
||||||
if p.As == AMVN || p.As == AMVNW {
|
if p.As == AMVN || p.As == AMVNW {
|
||||||
if s != 0 {
|
if s {
|
||||||
ctxt.Diag("illegal SP reference\n%v", p)
|
ctxt.Diag("illegal SP reference\n%v", p)
|
||||||
}
|
}
|
||||||
o1 = oprrr(ctxt, int(p.As))
|
o1 = oprrr(ctxt, int(p.As))
|
||||||
o1 |= (uint32(rf&31) << 16) | (REGZERO & 31 << 5) | uint32(rt&31)
|
o1 |= (uint32(rf&31) << 16) | (REGZERO & 31 << 5) | uint32(rt&31)
|
||||||
} else if s != 0 {
|
} else if s {
|
||||||
o1 = opirr(ctxt, int(p.As))
|
o1 = opirr(ctxt, int(p.As))
|
||||||
o1 |= (uint32(rf&31) << 5) | uint32(rt&31)
|
o1 |= (uint32(rf&31) << 5) | uint32(rt&31)
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user