Open
Description
var t [256]byte
func f(b *[16]byte) {
for i, v := range b {
b[i] = t[v]
}
}
Compiles to:
0x000f 00015 (tmp1.go:7) MOVBLZX (AX), DX
0x0012 00018 (tmp1.go:7) LEAQ "".t(SB), BX
0x0019 00025 (tmp1.go:7) MOVBLZX (BX)(DX*1), DX
0x001d 00029 (tmp1.go:7) MOVQ "".b+8(FP), BX
0x0022 00034 (tmp1.go:7) MOVB DL, (BX)(CX*1)
0x0025 00037 (tmp1.go:6) INCQ AX
0x0028 00040 (tmp1.go:6) INCQ CX
0x002b 00043 (tmp1.go:6) CMPQ CX, $16
0x002f 00047 (tmp1.go:6) JLT $0, 15
Both the LEAQ
and the MOVQ "".b+8
could be done outside the loop.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Triage Backlog