cmd/internal/gc: convert yet more Node fields to bools

Convert Embedded, Method, and Colas to bools.

I believe that this is the last of the Node fields
that can be trivially converted to bools.

No functional changes. Passes toolstash -cmp.

Change-Id: I81962ee47866596341fc60d24d6959c20cd7fc1c
Reviewed-on: https://go-review.googlesource.com/8440
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
diff --git a/src/cmd/internal/gc/cgen.go b/src/cmd/internal/gc/cgen.go
index d3921f7..3b628ac 100644
--- a/src/cmd/internal/gc/cgen.go
+++ b/src/cmd/internal/gc/cgen.go
@@ -34,7 +34,7 @@
 
 	switch n.Op {
 	case OSLICE, OSLICEARR, OSLICESTR, OSLICE3, OSLICE3ARR:
-		if res.Op != ONAME || res.Addable == 0 {
+		if res.Op != ONAME || !res.Addable {
 			var n1 Node
 			Tempname(&n1, n.Type)
 			Cgen_slice(n, &n1)
@@ -45,7 +45,7 @@
 		return
 
 	case OEFACE:
-		if res.Op != ONAME || res.Addable == 0 {
+		if res.Op != ONAME || !res.Addable {
 			var n1 Node
 			Tempname(&n1, n.Type)
 			Cgen_eface(n, &n1)
@@ -81,7 +81,7 @@
 		return
 	}
 
-	if res.Addable == 0 {
+	if !res.Addable {
 		if n.Ullman > res.Ullman {
 			if Ctxt.Arch.Regsize == 4 && Is64(n.Type) {
 				var n1 Node
@@ -188,7 +188,7 @@
 
 	if Ctxt.Arch.Thechar == '5' { // TODO(rsc): Maybe more often?
 		// if both are addressable, move
-		if n.Addable != 0 && res.Addable != 0 {
+		if n.Addable && res.Addable {
 			if Is64(n.Type) || Is64(res.Type) || n.Op == OREGISTER || res.Op == OREGISTER || Iscomplex[n.Type.Etype] || Iscomplex[res.Type.Etype] {
 				Thearch.Gmove(n, res)
 			} else {
@@ -203,7 +203,7 @@
 		}
 
 		// if both are not addressable, use a temporary.
-		if n.Addable == 0 && res.Addable == 0 {
+		if !n.Addable && !res.Addable {
 			// could use regalloc here sometimes,
 			// but have to check for ullman >= UINF.
 			var n1 Node
@@ -215,7 +215,7 @@
 
 		// if result is not addressable directly but n is,
 		// compute its address and then store via the address.
-		if res.Addable == 0 {
+		if !res.Addable {
 			var n1 Node
 			Igen(res, &n1, nil)
 			Cgen(n, &n1)
@@ -229,14 +229,14 @@
 		return
 	}
 
-	if (Ctxt.Arch.Thechar == '6' || Ctxt.Arch.Thechar == '8') && n.Addable != 0 {
+	if (Ctxt.Arch.Thechar == '6' || Ctxt.Arch.Thechar == '8') && n.Addable {
 		Thearch.Gmove(n, res)
 		return
 	}
 
 	if Ctxt.Arch.Thechar == '7' || Ctxt.Arch.Thechar == '9' {
 		// if both are addressable, move
-		if n.Addable != 0 {
+		if n.Addable {
 			if n.Op == OREGISTER || res.Op == OREGISTER {
 				Thearch.Gmove(n, res)
 			} else {
@@ -458,7 +458,7 @@
 		var n1 Node
 		var n2 Node
 		if Ctxt.Arch.Thechar == '5' {
-			if nl.Addable != 0 && !Is64(nl.Type) {
+			if nl.Addable && !Is64(nl.Type) {
 				Regalloc(&n1, nl.Type, res)
 				Thearch.Gmove(nl, &n1)
 			} else {
@@ -795,7 +795,7 @@
 func Mgen(n *Node, n1 *Node, rg *Node) {
 	n1.Op = OEMPTY
 
-	if n.Addable != 0 {
+	if n.Addable {
 		*n1 = *n
 		if n1.Op == OREGISTER || n1.Op == OINDREG {
 			reg[n.Val.U.Reg-int16(Thearch.REGMIN)]++
@@ -832,7 +832,7 @@
 		Fatal("cgenr on fat node")
 	}
 
-	if n.Addable != 0 {
+	if n.Addable {
 		Regalloc(a, n.Type, res)
 		Thearch.Gmove(n, a)
 		return
@@ -891,7 +891,7 @@
 			bounded := Debug['B'] != 0 || n.Bounded
 			var n1 Node
 			var n3 Node
-			if nr.Addable != 0 {
+			if nr.Addable {
 				var tmp Node
 				if !Isconst(nr, CTINT) {
 					Tempname(&tmp, Types[TINT32])
@@ -904,7 +904,7 @@
 					Regalloc(&n1, tmp.Type, nil)
 					Thearch.Gmove(&tmp, &n1)
 				}
-			} else if nl.Addable != 0 {
+			} else if nl.Addable {
 				if !Isconst(nr, CTINT) {
 					var tmp Node
 					Tempname(&tmp, Types[TINT32])
@@ -1040,7 +1040,7 @@
 			var n3 Node
 			var tmp Node
 			var n1 Node
-			if nr.Addable != 0 {
+			if nr.Addable {
 				// Generate &nl first, and move nr into register.
 				if !Isconst(nl, CTSTR) {
 					Igen(nl, &n3, res)
@@ -1050,7 +1050,7 @@
 					Regalloc(&n1, tmp.Type, nil)
 					Thearch.Gmove(&tmp, &n1)
 				}
-			} else if nl.Addable != 0 {
+			} else if nl.Addable {
 				// Generate nr first, and move &nl into register.
 				if !Isconst(nr, CTINT) {
 					p2 = Thearch.Igenindex(nr, &tmp, bounded)
@@ -1201,10 +1201,10 @@
 		var nlen Node
 		var tmp Node
 		var n1 Node
-		if nr.Addable != 0 {
+		if nr.Addable {
 			goto irad
 		}
-		if nl.Addable != 0 {
+		if nl.Addable {
 			Cgenr(nr, &n1, nil)
 			if !Isconst(nl, CTSTR) {
 				if Isfixedarray(nl.Type) {
@@ -1233,7 +1233,7 @@
 			if Isfixedarray(nl.Type) {
 				Agenr(nl, &n3, res)
 			} else {
-				if nl.Addable == 0 {
+				if !nl.Addable {
 					if res != nil && res.Op == OREGISTER { // give up res, which we don't need yet.
 						Regfree(res)
 					}
@@ -1432,7 +1432,7 @@
 		return
 	}
 
-	if n.Addable != 0 {
+	if n.Addable {
 		if n.Op == OREGISTER {
 			Fatal("agen OREGISTER")
 		}
@@ -1592,7 +1592,7 @@
 		*a = Node{}
 		a.Op = OINDREG
 		a.Val.U.Reg = int16(Thearch.REGSP)
-		a.Addable = 1
+		a.Addable = true
 		a.Xoffset = fp.Width
 		if HasLinkRegister() {
 			a.Xoffset += int64(Ctxt.Arch.Ptrsize)
@@ -1692,7 +1692,7 @@
 		return
 
 	case ONAME:
-		if n.Addable == 0 || Ctxt.Arch.Thechar == '5' || Ctxt.Arch.Thechar == '7' || Ctxt.Arch.Thechar == '9' {
+		if !n.Addable || Ctxt.Arch.Thechar == '5' || Ctxt.Arch.Thechar == '7' || Ctxt.Arch.Thechar == '9' {
 			goto def
 		}
 		var n1 Node
@@ -1824,14 +1824,14 @@
 		}
 
 		if Ctxt.Arch.Regsize == 4 && Is64(nr.Type) {
-			if nl.Addable == 0 || Isconst(nl, CTINT) {
+			if !nl.Addable || Isconst(nl, CTINT) {
 				var n1 Node
 				Tempname(&n1, nl.Type)
 				Cgen(nl, &n1)
 				nl = &n1
 			}
 
-			if nr.Addable == 0 {
+			if !nr.Addable {
 				var n2 Node
 				Tempname(&n2, nr.Type)
 				Cgen(nr, &n2)
@@ -1862,7 +1862,7 @@
 			goto cmp
 		}
 
-		if nl.Addable == 0 && Ctxt.Arch.Thechar == '8' {
+		if !nl.Addable && Ctxt.Arch.Thechar == '8' {
 			Tempname(&n1, nl.Type)
 		} else {
 			Regalloc(&n1, nl.Type, nil)
@@ -1879,7 +1879,7 @@
 			break
 		}
 
-		if nr.Addable == 0 && Ctxt.Arch.Thechar == '8' {
+		if !nr.Addable && Ctxt.Arch.Thechar == '8' {
 			var tmp Node
 			Tempname(&tmp, nr.Type)
 			Cgen(nr, &tmp)
@@ -2199,7 +2199,7 @@
 
 	i = i.Left // interface
 
-	if i.Addable == 0 {
+	if !i.Addable {
 		var tmpi Node
 		Tempname(&tmpi, i.Type)
 		Cgen(i, &tmpi)
@@ -2304,7 +2304,7 @@
 	}
 
 	// call direct
-	n.Left.Method = 1
+	n.Left.Method = true
 
 	Ginscall(n.Left, proc)
 }
@@ -2334,7 +2334,7 @@
 	var nod Node
 	nod.Op = OINDREG
 	nod.Val.U.Reg = int16(Thearch.REGSP)
-	nod.Addable = 1
+	nod.Addable = true
 
 	nod.Xoffset = fp.Width
 	if HasLinkRegister() {
@@ -2364,7 +2364,7 @@
 	var nod1 Node
 	nod1.Op = OINDREG
 	nod1.Val.U.Reg = int16(Thearch.REGSP)
-	nod1.Addable = 1
+	nod1.Addable = true
 	nod1.Xoffset = fp.Width
 	if HasLinkRegister() {
 		nod1.Xoffset += int64(Ctxt.Arch.Ptrsize)