cmd/5g: avoid temporary during constant asop
func add() int { var a int a += 10 a += 20 a += 30 a -= 10 a -= 20 a -= 30 return a } before --- prog list "add" --- 0000 (/home/dfc/src/add.go:5) TEXT add+0(SB),$0-4 0001 (/home/dfc/src/add.go:6) MOVW $0,R2 0002 (/home/dfc/src/add.go:7) MOVW $10,R0 0003 (/home/dfc/src/add.go:7) ADD R0,R2,R1 0004 (/home/dfc/src/add.go:8) MOVW $20,R0 0005 (/home/dfc/src/add.go:8) ADD R0,R1 0006 (/home/dfc/src/add.go:9) MOVW $30,R0 0007 (/home/dfc/src/add.go:9) ADD R0,R1 0008 (/home/dfc/src/add.go:10) MOVW $10,R0 0009 (/home/dfc/src/add.go:10) SUB R0,R1 0010 (/home/dfc/src/add.go:11) MOVW $20,R0 0011 (/home/dfc/src/add.go:11) SUB R0,R1 0012 (/home/dfc/src/add.go:12) MOVW $30,R0 0013 (/home/dfc/src/add.go:12) SUB R0,R1,R2 0014 (/home/dfc/src/add.go:12) MOVW R2,R0 0015 (/home/dfc/src/add.go:13) MOVW R2,R1 0016 (/home/dfc/src/add.go:13) MOVW R2,.noname+0(FP) 0017 (/home/dfc/src/add.go:13) RET , after --- prog list "add" --- 0000 (/home/dfc/src/add.go:5) TEXT add+0(SB),$0-4 0001 (/home/dfc/src/add.go:6) MOVW $0,R0 0002 (/home/dfc/src/add.go:7) ADD $10,R0 0003 (/home/dfc/src/add.go:8) ADD $20,R0 0004 (/home/dfc/src/add.go:9) ADD $30,R0 0005 (/home/dfc/src/add.go:10) SUB $10,R0 0006 (/home/dfc/src/add.go:11) SUB $20,R0 0007 (/home/dfc/src/add.go:12) SUB $30,R0,R2 0008 (/home/dfc/src/add.go:13) MOVW R2,R0 0009 (/home/dfc/src/add.go:13) MOVW R2,.noname+0(FP) 0010 (/home/dfc/src/add.go:13) RET , R=rsc, minux.ma, remyoudompheng CC=golang-dev https://golang.org/cl/6584056
Showing
Please
register
or
sign in
to comment