cmd/5g: avoid temporaries during gcmp(reg, constant)
Address several instances of unneeded temporaries when using gcmp. func M(m map[int]bool) int { return len(m) } --- prog list "M" --- 0000 (/home/dfc/src/map.go:3) TEXT M+0(SB),$0-8 0001 (/home/dfc/src/map.go:4) MOVW m+0(FP),R0 0002 (/home/dfc/src/map.go:4) MOVW $0,R1 0003 (/home/dfc/src/map.go:4) CMP R1,R0, 0004 (/home/dfc/src/map.go:4) BEQ ,6(APC) 0005 (/home/dfc/src/map.go:4) MOVW 0(R0),R0 0006 (/home/dfc/src/map.go:4) MOVW R0,.noname+4(FP) 0007 (/home/dfc/src/map.go:4) RET , after: --- prog list "M" --- 0000 (/home/dfc/src/map.go:3) TEXT M+0(SB),$0-8 0001 (/home/dfc/src/map.go:4) MOVW m+0(FP),R0 0002 (/home/dfc/src/map.go:4) CMP $0,R0, 0003 (/home/dfc/src/map.go:4) BEQ ,5(APC) 0004 (/home/dfc/src/map.go:4) MOVW 0(R0),R0 0005 (/home/dfc/src/map.go:4) MOVW R0,.noname+4(FP) 0006 (/home/dfc/src/map.go:4) RET , func C(c chan int) int { return cap(c) } --- prog list "C" --- 0000 (/home/dfc/src/map.go:3) TEXT C+0(SB),$0-8 0001 (/home/dfc/src/map.go:4) MOVW c+0(FP),R0 0002 (/home/dfc/src/map.go:4) MOVW $0,R1 0003 (/home/dfc/src/map.go:4) CMP R1,R0, 0004 (/home/dfc/src/map.go:4) BEQ ,6(APC) 0005 (/home/dfc/src/map.go:4) MOVW 4(R0),R0 0006 (/home/dfc/src/map.go:4) MOVW R0,.noname+4(FP) 0007 (/home/dfc/src/map.go:4) RET , after: --- prog list "C" --- 0000 (/home/dfc/src/map.go:3) TEXT C+0(SB),$0-8 0001 (/home/dfc/src/map.go:4) MOVW c+0(FP),R0 0002 (/home/dfc/src/map.go:4) CMP $0,R0, 0003 (/home/dfc/src/map.go:4) BEQ ,5(APC) 0004 (/home/dfc/src/map.go:4) MOVW 4(R0),R0 0005 (/home/dfc/src/map.go:4) MOVW R0,.noname+4(FP) 0006 (/home/dfc/src/map.go:4) RET , R=rsc, minux.ma, remyoudompheng CC=golang-dev https://golang.org/cl/6618054
Showing
Please
register
or
sign in
to comment