Skip to content

Instantly share code, notes, and snippets.

@iand
Created September 25, 2018 13:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save iand/342b35819355191aed2a9806434e62be to your computer and use it in GitHub Desktop.
Save iand/342b35819355191aed2a9806434e62be to your computer and use it in GitHub Desktop.
Bounds check elimination in Go
14:24 $ go build -gcflags="-d=ssa/check_bce/debug=1"
# _/home/iand/wip/bounds
./bounds.go:17:12: Found IsSliceInBounds
./bounds.go:18:10: Found IsInBounds
./bounds.go:19:10: Found IsInBounds
./bounds.go:20:10: Found IsInBounds
./bounds.go:21:10: Found IsInBounds
./bounds.go:23:12: Found IsSliceInBounds
./bounds.go:24:11: Found IsInBounds
./bounds.go:25:11: Found IsInBounds
./bounds.go:26:11: Found IsInBounds
./bounds.go:27:11: Found IsInBounds
./bounds.go:33:12: Found IsSliceInBounds
./bounds.go:39:12: Found IsSliceInBounds
./bounds.go:49:12: Found IsSliceInBounds
./bounds.go:55:12: Found IsSliceInBounds
./bounds.go:65:12: Found IsSliceInBounds
./bounds.go:71:12: Found IsSliceInBounds
# _/home/iand/wip/bounds
"".main STEXT size=424 args=0x0 locals=0x240
0x0000 00000 (/home/iand/wip/bounds/bounds.go:3) TEXT "".main(SB), $576-0
0x0000 00000 (/home/iand/wip/bounds/bounds.go:3) MOVQ (TLS), CX
0x0009 00009 (/home/iand/wip/bounds/bounds.go:3) LEAQ -448(SP), AX
0x0011 00017 (/home/iand/wip/bounds/bounds.go:3) CMPQ AX, 16(CX)
0x0015 00021 (/home/iand/wip/bounds/bounds.go:3) JLS 414
0x001b 00027 (/home/iand/wip/bounds/bounds.go:3) SUBQ $576, SP
0x0022 00034 (/home/iand/wip/bounds/bounds.go:3) MOVQ BP, 568(SP)
0x002a 00042 (/home/iand/wip/bounds/bounds.go:3) LEAQ 568(SP), BP
0x0032 00050 (/home/iand/wip/bounds/bounds.go:3) FUNCDATA $0, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
0x0032 00050 (/home/iand/wip/bounds/bounds.go:3) FUNCDATA $1, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
0x0032 00050 (/home/iand/wip/bounds/bounds.go:3) FUNCDATA $3, gclocals·a76fe8fed1b9afb17278f569a1ac8347(SB)
0x0032 00050 (/home/iand/wip/bounds/bounds.go:4) PCDATA $2, $1
0x0032 00050 (/home/iand/wip/bounds/bounds.go:4) PCDATA $0, $0
0x0032 00050 (/home/iand/wip/bounds/bounds.go:4) LEAQ ""..autotmp_2+312(SP), DI
0x003a 00058 (/home/iand/wip/bounds/bounds.go:4) XORPS X0, X0
0x003d 00061 (/home/iand/wip/bounds/bounds.go:4) PCDATA $2, $0
0x003d 00061 (/home/iand/wip/bounds/bounds.go:4) DUFFZERO $228
0x0050 00080 (/home/iand/wip/bounds/bounds.go:5) PCDATA $2, $1
0x0050 00080 (/home/iand/wip/bounds/bounds.go:5) LEAQ ""..autotmp_3+56(SP), DI
0x0055 00085 (/home/iand/wip/bounds/bounds.go:5) PCDATA $2, $0
0x0055 00085 (/home/iand/wip/bounds/bounds.go:5) DUFFZERO $228
0x0068 00104 (/home/iand/wip/bounds/bounds.go:7) PCDATA $2, $2
0x0068 00104 (/home/iand/wip/bounds/bounds.go:7) LEAQ ""..autotmp_2+312(SP), AX
0x0070 00112 (/home/iand/wip/bounds/bounds.go:7) PCDATA $2, $0
0x0070 00112 (/home/iand/wip/bounds/bounds.go:7) MOVQ AX, (SP)
0x0074 00116 (/home/iand/wip/bounds/bounds.go:7) MOVQ $256, 8(SP)
0x007d 00125 (/home/iand/wip/bounds/bounds.go:7) MOVQ $256, 16(SP)
0x0086 00134 (/home/iand/wip/bounds/bounds.go:7) PCDATA $2, $3
0x0086 00134 (/home/iand/wip/bounds/bounds.go:7) LEAQ ""..autotmp_3+56(SP), CX
0x008b 00139 (/home/iand/wip/bounds/bounds.go:7) PCDATA $2, $0
0x008b 00139 (/home/iand/wip/bounds/bounds.go:7) MOVQ CX, 24(SP)
0x0090 00144 (/home/iand/wip/bounds/bounds.go:7) MOVQ $256, 32(SP)
0x0099 00153 (/home/iand/wip/bounds/bounds.go:7) MOVQ $256, 40(SP)
0x00a2 00162 (/home/iand/wip/bounds/bounds.go:7) CALL "".compute(SB)
0x00a7 00167 (/home/iand/wip/bounds/bounds.go:8) PCDATA $2, $2
0x00a7 00167 (/home/iand/wip/bounds/bounds.go:8) LEAQ ""..autotmp_2+312(SP), AX
0x00af 00175 (/home/iand/wip/bounds/bounds.go:8) PCDATA $2, $0
0x00af 00175 (/home/iand/wip/bounds/bounds.go:8) MOVQ AX, (SP)
0x00b3 00179 (/home/iand/wip/bounds/bounds.go:8) MOVQ $256, 8(SP)
0x00bc 00188 (/home/iand/wip/bounds/bounds.go:8) MOVQ $256, 16(SP)
0x00c5 00197 (/home/iand/wip/bounds/bounds.go:8) PCDATA $2, $3
0x00c5 00197 (/home/iand/wip/bounds/bounds.go:8) LEAQ ""..autotmp_3+56(SP), CX
0x00ca 00202 (/home/iand/wip/bounds/bounds.go:8) PCDATA $2, $0
0x00ca 00202 (/home/iand/wip/bounds/bounds.go:8) MOVQ CX, 24(SP)
0x00cf 00207 (/home/iand/wip/bounds/bounds.go:8) MOVQ $256, 32(SP)
0x00d8 00216 (/home/iand/wip/bounds/bounds.go:8) MOVQ $256, 40(SP)
0x00e1 00225 (/home/iand/wip/bounds/bounds.go:8) CALL "".withLen(SB)
0x00e6 00230 (/home/iand/wip/bounds/bounds.go:9) PCDATA $2, $2
0x00e6 00230 (/home/iand/wip/bounds/bounds.go:9) LEAQ ""..autotmp_2+312(SP), AX
0x00ee 00238 (/home/iand/wip/bounds/bounds.go:9) PCDATA $2, $0
0x00ee 00238 (/home/iand/wip/bounds/bounds.go:9) MOVQ AX, (SP)
0x00f2 00242 (/home/iand/wip/bounds/bounds.go:9) MOVQ $256, 8(SP)
0x00fb 00251 (/home/iand/wip/bounds/bounds.go:9) MOVQ $256, 16(SP)
0x0104 00260 (/home/iand/wip/bounds/bounds.go:9) PCDATA $2, $3
0x0104 00260 (/home/iand/wip/bounds/bounds.go:9) LEAQ ""..autotmp_3+56(SP), CX
0x0109 00265 (/home/iand/wip/bounds/bounds.go:9) PCDATA $2, $0
0x0109 00265 (/home/iand/wip/bounds/bounds.go:9) MOVQ CX, 24(SP)
0x010e 00270 (/home/iand/wip/bounds/bounds.go:9) MOVQ $256, 32(SP)
0x0117 00279 (/home/iand/wip/bounds/bounds.go:9) MOVQ $256, 40(SP)
0x0120 00288 (/home/iand/wip/bounds/bounds.go:9) CALL "".withLenAndCap(SB)
0x0125 00293 (/home/iand/wip/bounds/bounds.go:10) PCDATA $2, $2
0x0125 00293 (/home/iand/wip/bounds/bounds.go:10) LEAQ ""..autotmp_2+312(SP), AX
0x012d 00301 (/home/iand/wip/bounds/bounds.go:10) PCDATA $2, $0
0x012d 00301 (/home/iand/wip/bounds/bounds.go:10) MOVQ AX, (SP)
0x0131 00305 (/home/iand/wip/bounds/bounds.go:10) MOVQ $256, 8(SP)
0x013a 00314 (/home/iand/wip/bounds/bounds.go:10) MOVQ $256, 16(SP)
0x0143 00323 (/home/iand/wip/bounds/bounds.go:10) PCDATA $2, $2
0x0143 00323 (/home/iand/wip/bounds/bounds.go:10) LEAQ ""..autotmp_3+56(SP), AX
0x0148 00328 (/home/iand/wip/bounds/bounds.go:10) PCDATA $2, $0
0x0148 00328 (/home/iand/wip/bounds/bounds.go:10) MOVQ AX, 24(SP)
0x014d 00333 (/home/iand/wip/bounds/bounds.go:10) MOVQ $256, 32(SP)
0x0156 00342 (/home/iand/wip/bounds/bounds.go:10) MOVQ $256, 40(SP)
0x015f 00351 (/home/iand/wip/bounds/bounds.go:10) CALL "".withLenAndCapShort(SB)
0x0164 00356 (/home/iand/wip/bounds/bounds.go:12) MOVBLZX ""..autotmp_3+311(SP), AX
0x016c 00364 (/home/iand/wip/bounds/bounds.go:12) MOVQ AX, ""..autotmp_11+48(SP)
0x0171 00369 (/home/iand/wip/bounds/bounds.go:12) CALL runtime.printlock(SB)
0x0176 00374 (/home/iand/wip/bounds/bounds.go:12) MOVQ ""..autotmp_11+48(SP), AX
0x017b 00379 (/home/iand/wip/bounds/bounds.go:12) MOVQ AX, (SP)
0x017f 00383 (/home/iand/wip/bounds/bounds.go:12) CALL runtime.printuint(SB)
0x0184 00388 (/home/iand/wip/bounds/bounds.go:12) CALL runtime.printnl(SB)
0x0189 00393 (/home/iand/wip/bounds/bounds.go:12) CALL runtime.printunlock(SB)
0x018e 00398 (/home/iand/wip/bounds/bounds.go:13) MOVQ 568(SP), BP
0x0196 00406 (/home/iand/wip/bounds/bounds.go:13) ADDQ $576, SP
0x019d 00413 (/home/iand/wip/bounds/bounds.go:13) RET
0x019e 00414 (/home/iand/wip/bounds/bounds.go:13) NOP
0x019e 00414 (/home/iand/wip/bounds/bounds.go:3) PCDATA $0, $-1
0x019e 00414 (/home/iand/wip/bounds/bounds.go:3) PCDATA $2, $-1
0x019e 00414 (/home/iand/wip/bounds/bounds.go:3) CALL runtime.morestack_noctxt(SB)
0x01a3 00419 (/home/iand/wip/bounds/bounds.go:3) JMP 0
0x0000 64 48 8b 0c 25 00 00 00 00 48 8d 84 24 40 fe ff dH..%....H..$@..
0x0010 ff 48 3b 41 10 0f 86 83 01 00 00 48 81 ec 40 02 .H;A.......H..@.
0x0020 00 00 48 89 ac 24 38 02 00 00 48 8d ac 24 38 02 ..H..$8...H..$8.
0x0030 00 00 48 8d bc 24 38 01 00 00 0f 57 c0 48 89 6c ..H..$8....W.H.l
0x0040 24 f0 48 8d 6c 24 f0 e8 00 00 00 00 48 8b 6d 00 $.H.l$......H.m.
0x0050 48 8d 7c 24 38 48 89 6c 24 f0 48 8d 6c 24 f0 e8 H.|$8H.l$.H.l$..
0x0060 00 00 00 00 48 8b 6d 00 48 8d 84 24 38 01 00 00 ....H.m.H..$8...
0x0070 48 89 04 24 48 c7 44 24 08 00 01 00 00 48 c7 44 H..$H.D$.....H.D
0x0080 24 10 00 01 00 00 48 8d 4c 24 38 48 89 4c 24 18 $.....H.L$8H.L$.
0x0090 48 c7 44 24 20 00 01 00 00 48 c7 44 24 28 00 01 H.D$ ....H.D$(..
0x00a0 00 00 e8 00 00 00 00 48 8d 84 24 38 01 00 00 48 .......H..$8...H
0x00b0 89 04 24 48 c7 44 24 08 00 01 00 00 48 c7 44 24 ..$H.D$.....H.D$
0x00c0 10 00 01 00 00 48 8d 4c 24 38 48 89 4c 24 18 48 .....H.L$8H.L$.H
0x00d0 c7 44 24 20 00 01 00 00 48 c7 44 24 28 00 01 00 .D$ ....H.D$(...
0x00e0 00 e8 00 00 00 00 48 8d 84 24 38 01 00 00 48 89 ......H..$8...H.
0x00f0 04 24 48 c7 44 24 08 00 01 00 00 48 c7 44 24 10 .$H.D$.....H.D$.
0x0100 00 01 00 00 48 8d 4c 24 38 48 89 4c 24 18 48 c7 ....H.L$8H.L$.H.
0x0110 44 24 20 00 01 00 00 48 c7 44 24 28 00 01 00 00 D$ ....H.D$(....
0x0120 e8 00 00 00 00 48 8d 84 24 38 01 00 00 48 89 04 .....H..$8...H..
0x0130 24 48 c7 44 24 08 00 01 00 00 48 c7 44 24 10 00 $H.D$.....H.D$..
0x0140 01 00 00 48 8d 44 24 38 48 89 44 24 18 48 c7 44 ...H.D$8H.D$.H.D
0x0150 24 20 00 01 00 00 48 c7 44 24 28 00 01 00 00 e8 $ ....H.D$(.....
0x0160 00 00 00 00 0f b6 84 24 37 01 00 00 48 89 44 24 .......$7...H.D$
0x0170 30 e8 00 00 00 00 48 8b 44 24 30 48 89 04 24 e8 0.....H.D$0H..$.
0x0180 00 00 00 00 e8 00 00 00 00 e8 00 00 00 00 48 8b ..............H.
0x0190 ac 24 38 02 00 00 48 81 c4 40 02 00 00 c3 e8 00 .$8...H..@......
0x01a0 00 00 00 e9 58 fe ff ff ....X...
rel 5+4 t=16 TLS+0
rel 72+4 t=8 runtime.duffzero+228
rel 96+4 t=8 runtime.duffzero+228
rel 163+4 t=8 "".compute+0
rel 226+4 t=8 "".withLen+0
rel 289+4 t=8 "".withLenAndCap+0
rel 352+4 t=8 "".withLenAndCapShort+0
rel 370+4 t=8 runtime.printlock+0
rel 384+4 t=8 runtime.printuint+0
rel 389+4 t=8 runtime.printnl+0
rel 394+4 t=8 runtime.printunlock+0
rel 415+4 t=8 runtime.morestack_noctxt+0
"".compute STEXT nosplit size=361 args=0x30 locals=0x8
0x0000 00000 (/home/iand/wip/bounds/bounds.go:15) TEXT "".compute(SB), NOSPLIT, $8-48
0x0000 00000 (/home/iand/wip/bounds/bounds.go:15) SUBQ $8, SP
0x0004 00004 (/home/iand/wip/bounds/bounds.go:15) MOVQ BP, (SP)
0x0008 00008 (/home/iand/wip/bounds/bounds.go:15) LEAQ (SP), BP
0x000c 00012 (/home/iand/wip/bounds/bounds.go:15) FUNCDATA $0, gclocals·3f27cca7c8f9c81ee10e0666cde9bf92(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:15) FUNCDATA $1, gclocals·7d2d5fca80364273fb07d5820a76fef4(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:15) FUNCDATA $3, gclocals·9ea3635389001b70160dee992f4d1966(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:16) PCDATA $2, $0
0x000c 00012 (/home/iand/wip/bounds/bounds.go:16) PCDATA $0, $0
0x000c 00012 (/home/iand/wip/bounds/bounds.go:16) MOVQ "".spix+24(SP), AX
0x0011 00017 (/home/iand/wip/bounds/bounds.go:16) PCDATA $2, $1
0x0011 00017 (/home/iand/wip/bounds/bounds.go:16) MOVQ "".dpix+40(SP), CX
0x0016 00022 (/home/iand/wip/bounds/bounds.go:16) PCDATA $2, $2
0x0016 00022 (/home/iand/wip/bounds/bounds.go:16) MOVQ "".spix+16(SP), DX
0x001b 00027 (/home/iand/wip/bounds/bounds.go:16) MOVQ "".dpix+48(SP), BX
0x0020 00032 (/home/iand/wip/bounds/bounds.go:16) PCDATA $0, $1
0x0020 00032 (/home/iand/wip/bounds/bounds.go:16) MOVQ "".dpix+56(SP), SI
0x0025 00037 (/home/iand/wip/bounds/bounds.go:16) PCDATA $0, $2
0x0025 00037 (/home/iand/wip/bounds/bounds.go:16) MOVQ "".spix+32(SP), DI
0x002a 00042 (/home/iand/wip/bounds/bounds.go:16) XORL R8, R8
0x002d 00045 (/home/iand/wip/bounds/bounds.go:16) JMP 77
0x002f 00047 (/home/iand/wip/bounds/bounds.go:27) MOVBLZX 3(CX)(SI*1), R11
0x0035 00053 (/home/iand/wip/bounds/bounds.go:27) ADDL AX, R11
0x0038 00056 (/home/iand/wip/bounds/bounds.go:27) MOVB R11B, 3(CX)(SI*1)
0x003d 00061 (/home/iand/wip/bounds/bounds.go:16) ADDQ $4, R8
0x0041 00065 (/home/iand/wip/bounds/bounds.go:17) MOVQ R9, AX
0x0044 00068 (/home/iand/wip/bounds/bounds.go:23) MOVQ DI, BX
0x0047 00071 (/home/iand/wip/bounds/bounds.go:23) MOVQ R14, SI
0x004a 00074 (/home/iand/wip/bounds/bounds.go:17) MOVQ R10, DI
0x004d 00077 (/home/iand/wip/bounds/bounds.go:16) CMPQ R8, $256
0x0054 00084 (/home/iand/wip/bounds/bounds.go:16) JGE 282
0x005a 00090 (/home/iand/wip/bounds/bounds.go:17) CMPQ R8, AX
0x005d 00093 (/home/iand/wip/bounds/bounds.go:17) JHI 354
0x0063 00099 (/home/iand/wip/bounds/bounds.go:17) MOVQ AX, R9
0x0066 00102 (/home/iand/wip/bounds/bounds.go:17) SUBQ R8, AX
0x0069 00105 (/home/iand/wip/bounds/bounds.go:17) MOVQ DI, R10
0x006c 00108 (/home/iand/wip/bounds/bounds.go:17) SUBQ R8, DI
0x006f 00111 (/home/iand/wip/bounds/bounds.go:17) NEGQ DI
0x0072 00114 (/home/iand/wip/bounds/bounds.go:17) SARQ $63, DI
0x0076 00118 (/home/iand/wip/bounds/bounds.go:17) ANDQ R8, DI
0x0079 00121 (/home/iand/wip/bounds/bounds.go:18) TESTQ AX, AX
0x007c 00124 (/home/iand/wip/bounds/bounds.go:18) JLS 347
0x0082 00130 (/home/iand/wip/bounds/bounds.go:18) MOVBLZX (DX)(DI*1), R11
0x0087 00135 (/home/iand/wip/bounds/bounds.go:19) CMPQ AX, $1
0x008b 00139 (/home/iand/wip/bounds/bounds.go:19) JLS 340
0x0091 00145 (/home/iand/wip/bounds/bounds.go:19) MOVBLZX 1(DX)(DI*1), R12
0x0097 00151 (/home/iand/wip/bounds/bounds.go:20) CMPQ AX, $2
0x009b 00155 (/home/iand/wip/bounds/bounds.go:20) JLS 333
0x00a1 00161 (/home/iand/wip/bounds/bounds.go:20) MOVBLZX 2(DX)(DI*1), R13
0x00a7 00167 (/home/iand/wip/bounds/bounds.go:21) CMPQ AX, $3
0x00ab 00171 (/home/iand/wip/bounds/bounds.go:21) JLS 326
0x00b1 00177 (/home/iand/wip/bounds/bounds.go:21) MOVBLZX 3(DX)(DI*1), AX
0x00b6 00182 (/home/iand/wip/bounds/bounds.go:23) CMPQ R8, BX
0x00b9 00185 (/home/iand/wip/bounds/bounds.go:23) JHI 319
0x00bf 00191 (/home/iand/wip/bounds/bounds.go:23) MOVQ BX, DI
0x00c2 00194 (/home/iand/wip/bounds/bounds.go:23) SUBQ R8, BX
0x00c5 00197 (/home/iand/wip/bounds/bounds.go:23) MOVQ SI, R14
0x00c8 00200 (/home/iand/wip/bounds/bounds.go:23) SUBQ R8, SI
0x00cb 00203 (/home/iand/wip/bounds/bounds.go:23) NEGQ SI
0x00ce 00206 (/home/iand/wip/bounds/bounds.go:23) SARQ $63, SI
0x00d2 00210 (/home/iand/wip/bounds/bounds.go:23) ANDQ R8, SI
0x00d5 00213 (/home/iand/wip/bounds/bounds.go:24) TESTQ BX, BX
0x00d8 00216 (/home/iand/wip/bounds/bounds.go:24) JLS 312
0x00da 00218 (/home/iand/wip/bounds/bounds.go:24) MOVBLZX (CX)(SI*1), R15
0x00df 00223 (/home/iand/wip/bounds/bounds.go:24) ADDL R15, R11
0x00e2 00226 (/home/iand/wip/bounds/bounds.go:24) MOVB R11B, (CX)(SI*1)
0x00e6 00230 (/home/iand/wip/bounds/bounds.go:25) CMPQ BX, $1
0x00ea 00234 (/home/iand/wip/bounds/bounds.go:25) JLS 305
0x00ec 00236 (/home/iand/wip/bounds/bounds.go:25) MOVBLZX 1(CX)(SI*1), R11
0x00f2 00242 (/home/iand/wip/bounds/bounds.go:25) ADDL R12, R11
0x00f5 00245 (/home/iand/wip/bounds/bounds.go:25) MOVB R11B, 1(CX)(SI*1)
0x00fa 00250 (/home/iand/wip/bounds/bounds.go:26) CMPQ BX, $2
0x00fe 00254 (/home/iand/wip/bounds/bounds.go:26) JLS 298
0x0100 00256 (/home/iand/wip/bounds/bounds.go:26) MOVBLZX 2(CX)(SI*1), R11
0x0106 00262 (/home/iand/wip/bounds/bounds.go:26) ADDL R13, R11
0x0109 00265 (/home/iand/wip/bounds/bounds.go:26) MOVB R11B, 2(CX)(SI*1)
0x010e 00270 (/home/iand/wip/bounds/bounds.go:27) CMPQ BX, $3
0x0112 00274 (/home/iand/wip/bounds/bounds.go:27) JHI 47
0x0118 00280 (/home/iand/wip/bounds/bounds.go:27) JMP 291
0x011a 00282 (<unknown line number>) PCDATA $2, $-2
0x011a 00282 (<unknown line number>) PCDATA $0, $-2
0x011a 00282 (<unknown line number>) MOVQ (SP), BP
0x011e 00286 (<unknown line number>) ADDQ $8, SP
0x0122 00290 (<unknown line number>) RET
0x0123 00291 (/home/iand/wip/bounds/bounds.go:27) PCDATA $2, $0
0x0123 00291 (/home/iand/wip/bounds/bounds.go:27) PCDATA $0, $2
0x0123 00291 (/home/iand/wip/bounds/bounds.go:27) CALL runtime.panicindex(SB)
0x0128 00296 (/home/iand/wip/bounds/bounds.go:27) UNDEF
0x012a 00298 (/home/iand/wip/bounds/bounds.go:26) CALL runtime.panicindex(SB)
0x012f 00303 (/home/iand/wip/bounds/bounds.go:26) UNDEF
0x0131 00305 (/home/iand/wip/bounds/bounds.go:25) CALL runtime.panicindex(SB)
0x0136 00310 (/home/iand/wip/bounds/bounds.go:25) UNDEF
0x0138 00312 (/home/iand/wip/bounds/bounds.go:24) CALL runtime.panicindex(SB)
0x013d 00317 (/home/iand/wip/bounds/bounds.go:24) UNDEF
0x013f 00319 (/home/iand/wip/bounds/bounds.go:23) CALL runtime.panicslice(SB)
0x0144 00324 (/home/iand/wip/bounds/bounds.go:23) UNDEF
0x0146 00326 (/home/iand/wip/bounds/bounds.go:21) CALL runtime.panicindex(SB)
0x014b 00331 (/home/iand/wip/bounds/bounds.go:21) UNDEF
0x014d 00333 (/home/iand/wip/bounds/bounds.go:20) CALL runtime.panicindex(SB)
0x0152 00338 (/home/iand/wip/bounds/bounds.go:20) UNDEF
0x0154 00340 (/home/iand/wip/bounds/bounds.go:19) CALL runtime.panicindex(SB)
0x0159 00345 (/home/iand/wip/bounds/bounds.go:19) UNDEF
0x015b 00347 (/home/iand/wip/bounds/bounds.go:18) CALL runtime.panicindex(SB)
0x0160 00352 (/home/iand/wip/bounds/bounds.go:18) UNDEF
0x0162 00354 (/home/iand/wip/bounds/bounds.go:17) CALL runtime.panicslice(SB)
0x0167 00359 (/home/iand/wip/bounds/bounds.go:17) UNDEF
0x0000 48 83 ec 08 48 89 2c 24 48 8d 2c 24 48 8b 44 24 H...H.,$H.,$H.D$
0x0010 18 48 8b 4c 24 28 48 8b 54 24 10 48 8b 5c 24 30 .H.L$(H.T$.H.\$0
0x0020 48 8b 74 24 38 48 8b 7c 24 20 45 31 c0 eb 1e 44 H.t$8H.|$ E1...D
0x0030 0f b6 5c 31 03 41 01 c3 44 88 5c 31 03 49 83 c0 ..\1.A..D.\1.I..
0x0040 04 4c 89 c8 48 89 fb 4c 89 f6 4c 89 d7 49 81 f8 .L..H..L..L..I..
0x0050 00 01 00 00 0f 8d c0 00 00 00 49 39 c0 0f 87 ff ..........I9....
0x0060 00 00 00 49 89 c1 4c 29 c0 49 89 fa 4c 29 c7 48 ...I..L).I..L).H
0x0070 f7 df 48 c1 ff 3f 4c 21 c7 48 85 c0 0f 86 d9 00 ..H..?L!.H......
0x0080 00 00 44 0f b6 1c 3a 48 83 f8 01 0f 86 c3 00 00 ..D...:H........
0x0090 00 44 0f b6 64 3a 01 48 83 f8 02 0f 86 ac 00 00 .D..d:.H........
0x00a0 00 44 0f b6 6c 3a 02 48 83 f8 03 0f 86 95 00 00 .D..l:.H........
0x00b0 00 0f b6 44 3a 03 49 39 d8 0f 87 80 00 00 00 48 ...D:.I9.......H
0x00c0 89 df 4c 29 c3 49 89 f6 4c 29 c6 48 f7 de 48 c1 ..L).I..L).H..H.
0x00d0 fe 3f 4c 21 c6 48 85 db 76 5e 44 0f b6 3c 31 45 .?L!.H..v^D..<1E
0x00e0 01 fb 44 88 1c 31 48 83 fb 01 76 45 44 0f b6 5c ..D..1H...vED..\
0x00f0 31 01 45 01 e3 44 88 5c 31 01 48 83 fb 02 76 2a 1.E..D.\1.H...v*
0x0100 44 0f b6 5c 31 02 45 01 eb 44 88 5c 31 02 48 83 D..\1.E..D.\1.H.
0x0110 fb 03 0f 87 17 ff ff ff eb 09 48 8b 2c 24 48 83 ..........H.,$H.
0x0120 c4 08 c3 e8 00 00 00 00 0f 0b e8 00 00 00 00 0f ................
0x0130 0b e8 00 00 00 00 0f 0b e8 00 00 00 00 0f 0b e8 ................
0x0140 00 00 00 00 0f 0b e8 00 00 00 00 0f 0b e8 00 00 ................
0x0150 00 00 0f 0b e8 00 00 00 00 0f 0b e8 00 00 00 00 ................
0x0160 0f 0b e8 00 00 00 00 0f 0b .........
rel 292+4 t=8 runtime.panicindex+0
rel 299+4 t=8 runtime.panicindex+0
rel 306+4 t=8 runtime.panicindex+0
rel 313+4 t=8 runtime.panicindex+0
rel 320+4 t=8 runtime.panicslice+0
rel 327+4 t=8 runtime.panicindex+0
rel 334+4 t=8 runtime.panicindex+0
rel 341+4 t=8 runtime.panicindex+0
rel 348+4 t=8 runtime.panicindex+0
rel 355+4 t=8 runtime.panicslice+0
"".withLen STEXT nosplit size=210 args=0x30 locals=0x8
0x0000 00000 (/home/iand/wip/bounds/bounds.go:31) TEXT "".withLen(SB), NOSPLIT, $8-48
0x0000 00000 (/home/iand/wip/bounds/bounds.go:31) SUBQ $8, SP
0x0004 00004 (/home/iand/wip/bounds/bounds.go:31) MOVQ BP, (SP)
0x0008 00008 (/home/iand/wip/bounds/bounds.go:31) LEAQ (SP), BP
0x000c 00012 (/home/iand/wip/bounds/bounds.go:31) FUNCDATA $0, gclocals·3f27cca7c8f9c81ee10e0666cde9bf92(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:31) FUNCDATA $1, gclocals·7d2d5fca80364273fb07d5820a76fef4(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:31) FUNCDATA $3, gclocals·32e934db01ae6123cadf68ff488fea0d(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:32) PCDATA $2, $1
0x000c 00012 (/home/iand/wip/bounds/bounds.go:32) PCDATA $0, $0
0x000c 00012 (/home/iand/wip/bounds/bounds.go:32) MOVQ "".dpix+40(SP), AX
0x0011 00017 (/home/iand/wip/bounds/bounds.go:32) PCDATA $0, $1
0x0011 00017 (/home/iand/wip/bounds/bounds.go:32) MOVQ "".dpix+56(SP), CX
0x0016 00022 (/home/iand/wip/bounds/bounds.go:32) MOVQ "".spix+32(SP), DX
0x001b 00027 (/home/iand/wip/bounds/bounds.go:32) PCDATA $2, $2
0x001b 00027 (/home/iand/wip/bounds/bounds.go:32) PCDATA $0, $2
0x001b 00027 (/home/iand/wip/bounds/bounds.go:32) MOVQ "".spix+16(SP), BX
0x0020 00032 (/home/iand/wip/bounds/bounds.go:32) XORL SI, SI
0x0022 00034 (/home/iand/wip/bounds/bounds.go:32) JMP 115
0x0024 00036 (/home/iand/wip/bounds/bounds.go:39) MOVQ CX, R12
0x0027 00039 (/home/iand/wip/bounds/bounds.go:39) SUBQ SI, CX
0x002a 00042 (/home/iand/wip/bounds/bounds.go:39) NEGQ CX
0x002d 00045 (/home/iand/wip/bounds/bounds.go:39) SARQ $63, CX
0x0031 00049 (/home/iand/wip/bounds/bounds.go:39) ANDQ SI, CX
0x0034 00052 (/home/iand/wip/bounds/bounds.go:40) MOVBLZX (AX)(CX*1), R13
0x0039 00057 (/home/iand/wip/bounds/bounds.go:40) ADDL R13, R9
0x003c 00060 (/home/iand/wip/bounds/bounds.go:40) MOVB R9B, (AX)(CX*1)
0x0040 00064 (/home/iand/wip/bounds/bounds.go:41) MOVBLZX 1(AX)(CX*1), R9
0x0046 00070 (/home/iand/wip/bounds/bounds.go:41) ADDL R10, R9
0x0049 00073 (/home/iand/wip/bounds/bounds.go:41) MOVB R9B, 1(AX)(CX*1)
0x004e 00078 (/home/iand/wip/bounds/bounds.go:42) MOVBLZX 2(AX)(CX*1), R9
0x0054 00084 (/home/iand/wip/bounds/bounds.go:42) ADDL R11, R9
0x0057 00087 (/home/iand/wip/bounds/bounds.go:42) MOVB R9B, 2(AX)(CX*1)
0x005c 00092 (/home/iand/wip/bounds/bounds.go:43) MOVBLZX 3(AX)(CX*1), R9
0x0062 00098 (/home/iand/wip/bounds/bounds.go:43) ADDL DX, R9
0x0065 00101 (/home/iand/wip/bounds/bounds.go:43) MOVB R9B, 3(AX)(CX*1)
0x006a 00106 (/home/iand/wip/bounds/bounds.go:39) MOVQ R12, CX
0x006d 00109 (/home/iand/wip/bounds/bounds.go:33) MOVQ R8, DX
0x0070 00112 (/home/iand/wip/bounds/bounds.go:32) MOVQ DI, SI
0x0073 00115 (/home/iand/wip/bounds/bounds.go:32) CMPQ SI, $256
0x007a 00122 (/home/iand/wip/bounds/bounds.go:32) JGE 187
0x007c 00124 (/home/iand/wip/bounds/bounds.go:33) LEAQ 4(SI), DI
0x0080 00128 (/home/iand/wip/bounds/bounds.go:33) CMPQ SI, DI
0x0083 00131 (/home/iand/wip/bounds/bounds.go:33) JHI 203
0x0085 00133 (/home/iand/wip/bounds/bounds.go:33) CMPQ DI, DX
0x0088 00136 (/home/iand/wip/bounds/bounds.go:33) JHI 203
0x008a 00138 (/home/iand/wip/bounds/bounds.go:33) MOVQ DX, R8
0x008d 00141 (/home/iand/wip/bounds/bounds.go:33) SUBQ SI, DX
0x0090 00144 (/home/iand/wip/bounds/bounds.go:33) NEGQ DX
0x0093 00147 (/home/iand/wip/bounds/bounds.go:33) SARQ $63, DX
0x0097 00151 (/home/iand/wip/bounds/bounds.go:33) ANDQ SI, DX
0x009a 00154 (/home/iand/wip/bounds/bounds.go:34) MOVBLZX (BX)(DX*1), R9
0x009f 00159 (/home/iand/wip/bounds/bounds.go:35) MOVBLZX 1(BX)(DX*1), R10
0x00a5 00165 (/home/iand/wip/bounds/bounds.go:36) MOVBLZX 2(BX)(DX*1), R11
0x00ab 00171 (/home/iand/wip/bounds/bounds.go:37) MOVBLZX 3(BX)(DX*1), DX
0x00b0 00176 (/home/iand/wip/bounds/bounds.go:39) CMPQ DI, CX
0x00b3 00179 (/home/iand/wip/bounds/bounds.go:39) JLS 36
0x00b9 00185 (/home/iand/wip/bounds/bounds.go:39) JMP 196
0x00bb 00187 (<unknown line number>) PCDATA $2, $-2
0x00bb 00187 (<unknown line number>) PCDATA $0, $-2
0x00bb 00187 (<unknown line number>) MOVQ (SP), BP
0x00bf 00191 (<unknown line number>) ADDQ $8, SP
0x00c3 00195 (<unknown line number>) RET
0x00c4 00196 (/home/iand/wip/bounds/bounds.go:39) PCDATA $2, $0
0x00c4 00196 (/home/iand/wip/bounds/bounds.go:39) PCDATA $0, $2
0x00c4 00196 (/home/iand/wip/bounds/bounds.go:39) CALL runtime.panicslice(SB)
0x00c9 00201 (/home/iand/wip/bounds/bounds.go:39) UNDEF
0x00cb 00203 (/home/iand/wip/bounds/bounds.go:33) CALL runtime.panicslice(SB)
0x00d0 00208 (/home/iand/wip/bounds/bounds.go:33) UNDEF
0x0000 48 83 ec 08 48 89 2c 24 48 8d 2c 24 48 8b 44 24 H...H.,$H.,$H.D$
0x0010 28 48 8b 4c 24 38 48 8b 54 24 20 48 8b 5c 24 10 (H.L$8H.T$ H.\$.
0x0020 31 f6 eb 4f 49 89 cc 48 29 f1 48 f7 d9 48 c1 f9 1..OI..H).H..H..
0x0030 3f 48 21 f1 44 0f b6 2c 08 45 01 e9 44 88 0c 08 ?H!.D..,.E..D...
0x0040 44 0f b6 4c 08 01 45 01 d1 44 88 4c 08 01 44 0f D..L..E..D.L..D.
0x0050 b6 4c 08 02 45 01 d9 44 88 4c 08 02 44 0f b6 4c .L..E..D.L..D..L
0x0060 08 03 41 01 d1 44 88 4c 08 03 4c 89 e1 4c 89 c2 ..A..D.L..L..L..
0x0070 48 89 fe 48 81 fe 00 01 00 00 7d 3f 48 8d 7e 04 H..H......}?H.~.
0x0080 48 39 fe 77 46 48 39 d7 77 41 49 89 d0 48 29 f2 H9.wFH9.wAI..H).
0x0090 48 f7 da 48 c1 fa 3f 48 21 f2 44 0f b6 0c 13 44 H..H..?H!.D....D
0x00a0 0f b6 54 13 01 44 0f b6 5c 13 02 0f b6 54 13 03 ..T..D..\....T..
0x00b0 48 39 cf 0f 86 6b ff ff ff eb 09 48 8b 2c 24 48 H9...k.....H.,$H
0x00c0 83 c4 08 c3 e8 00 00 00 00 0f 0b e8 00 00 00 00 ................
0x00d0 0f 0b ..
rel 197+4 t=8 runtime.panicslice+0
rel 204+4 t=8 runtime.panicslice+0
"".withLenAndCap STEXT nosplit size=210 args=0x30 locals=0x8
0x0000 00000 (/home/iand/wip/bounds/bounds.go:47) TEXT "".withLenAndCap(SB), NOSPLIT, $8-48
0x0000 00000 (/home/iand/wip/bounds/bounds.go:47) SUBQ $8, SP
0x0004 00004 (/home/iand/wip/bounds/bounds.go:47) MOVQ BP, (SP)
0x0008 00008 (/home/iand/wip/bounds/bounds.go:47) LEAQ (SP), BP
0x000c 00012 (/home/iand/wip/bounds/bounds.go:47) FUNCDATA $0, gclocals·3f27cca7c8f9c81ee10e0666cde9bf92(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:47) FUNCDATA $1, gclocals·7d2d5fca80364273fb07d5820a76fef4(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:47) FUNCDATA $3, gclocals·32e934db01ae6123cadf68ff488fea0d(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:48) PCDATA $2, $1
0x000c 00012 (/home/iand/wip/bounds/bounds.go:48) PCDATA $0, $0
0x000c 00012 (/home/iand/wip/bounds/bounds.go:48) MOVQ "".dpix+40(SP), AX
0x0011 00017 (/home/iand/wip/bounds/bounds.go:48) PCDATA $0, $1
0x0011 00017 (/home/iand/wip/bounds/bounds.go:48) MOVQ "".dpix+48(SP), CX
0x0016 00022 (/home/iand/wip/bounds/bounds.go:48) MOVQ "".spix+24(SP), DX
0x001b 00027 (/home/iand/wip/bounds/bounds.go:48) PCDATA $2, $2
0x001b 00027 (/home/iand/wip/bounds/bounds.go:48) PCDATA $0, $2
0x001b 00027 (/home/iand/wip/bounds/bounds.go:48) MOVQ "".spix+16(SP), BX
0x0020 00032 (/home/iand/wip/bounds/bounds.go:48) XORL SI, SI
0x0022 00034 (/home/iand/wip/bounds/bounds.go:48) JMP 115
0x0024 00036 (/home/iand/wip/bounds/bounds.go:55) MOVQ CX, R12
0x0027 00039 (/home/iand/wip/bounds/bounds.go:55) SUBQ SI, CX
0x002a 00042 (/home/iand/wip/bounds/bounds.go:55) NEGQ CX
0x002d 00045 (/home/iand/wip/bounds/bounds.go:55) SARQ $63, CX
0x0031 00049 (/home/iand/wip/bounds/bounds.go:55) ANDQ SI, CX
0x0034 00052 (/home/iand/wip/bounds/bounds.go:56) MOVBLZX (AX)(CX*1), R13
0x0039 00057 (/home/iand/wip/bounds/bounds.go:56) ADDL R13, R9
0x003c 00060 (/home/iand/wip/bounds/bounds.go:56) MOVB R9B, (AX)(CX*1)
0x0040 00064 (/home/iand/wip/bounds/bounds.go:57) MOVBLZX 1(AX)(CX*1), R9
0x0046 00070 (/home/iand/wip/bounds/bounds.go:57) ADDL R10, R9
0x0049 00073 (/home/iand/wip/bounds/bounds.go:57) MOVB R9B, 1(AX)(CX*1)
0x004e 00078 (/home/iand/wip/bounds/bounds.go:58) MOVBLZX 2(AX)(CX*1), R9
0x0054 00084 (/home/iand/wip/bounds/bounds.go:58) ADDL R11, R9
0x0057 00087 (/home/iand/wip/bounds/bounds.go:58) MOVB R9B, 2(AX)(CX*1)
0x005c 00092 (/home/iand/wip/bounds/bounds.go:59) MOVBLZX 3(AX)(CX*1), R9
0x0062 00098 (/home/iand/wip/bounds/bounds.go:59) ADDL DX, R9
0x0065 00101 (/home/iand/wip/bounds/bounds.go:59) MOVB R9B, 3(AX)(CX*1)
0x006a 00106 (/home/iand/wip/bounds/bounds.go:55) MOVQ R12, CX
0x006d 00109 (/home/iand/wip/bounds/bounds.go:49) MOVQ R8, DX
0x0070 00112 (/home/iand/wip/bounds/bounds.go:48) MOVQ DI, SI
0x0073 00115 (/home/iand/wip/bounds/bounds.go:48) CMPQ SI, $256
0x007a 00122 (/home/iand/wip/bounds/bounds.go:48) JGE 187
0x007c 00124 (/home/iand/wip/bounds/bounds.go:49) LEAQ 4(SI), DI
0x0080 00128 (/home/iand/wip/bounds/bounds.go:49) CMPQ SI, DI
0x0083 00131 (/home/iand/wip/bounds/bounds.go:49) JHI 203
0x0085 00133 (/home/iand/wip/bounds/bounds.go:49) CMPQ DI, DX
0x0088 00136 (/home/iand/wip/bounds/bounds.go:49) JHI 203
0x008a 00138 (/home/iand/wip/bounds/bounds.go:49) MOVQ DX, R8
0x008d 00141 (/home/iand/wip/bounds/bounds.go:49) SUBQ SI, DX
0x0090 00144 (/home/iand/wip/bounds/bounds.go:49) NEGQ DX
0x0093 00147 (/home/iand/wip/bounds/bounds.go:49) SARQ $63, DX
0x0097 00151 (/home/iand/wip/bounds/bounds.go:49) ANDQ SI, DX
0x009a 00154 (/home/iand/wip/bounds/bounds.go:50) MOVBLZX (BX)(DX*1), R9
0x009f 00159 (/home/iand/wip/bounds/bounds.go:51) MOVBLZX 1(BX)(DX*1), R10
0x00a5 00165 (/home/iand/wip/bounds/bounds.go:52) MOVBLZX 2(BX)(DX*1), R11
0x00ab 00171 (/home/iand/wip/bounds/bounds.go:53) MOVBLZX 3(BX)(DX*1), DX
0x00b0 00176 (/home/iand/wip/bounds/bounds.go:55) CMPQ DI, CX
0x00b3 00179 (/home/iand/wip/bounds/bounds.go:55) JLS 36
0x00b9 00185 (/home/iand/wip/bounds/bounds.go:55) JMP 196
0x00bb 00187 (<unknown line number>) PCDATA $2, $-2
0x00bb 00187 (<unknown line number>) PCDATA $0, $-2
0x00bb 00187 (<unknown line number>) MOVQ (SP), BP
0x00bf 00191 (<unknown line number>) ADDQ $8, SP
0x00c3 00195 (<unknown line number>) RET
0x00c4 00196 (/home/iand/wip/bounds/bounds.go:55) PCDATA $2, $0
0x00c4 00196 (/home/iand/wip/bounds/bounds.go:55) PCDATA $0, $2
0x00c4 00196 (/home/iand/wip/bounds/bounds.go:55) CALL runtime.panicslice(SB)
0x00c9 00201 (/home/iand/wip/bounds/bounds.go:55) UNDEF
0x00cb 00203 (/home/iand/wip/bounds/bounds.go:49) CALL runtime.panicslice(SB)
0x00d0 00208 (/home/iand/wip/bounds/bounds.go:49) UNDEF
0x0000 48 83 ec 08 48 89 2c 24 48 8d 2c 24 48 8b 44 24 H...H.,$H.,$H.D$
0x0010 28 48 8b 4c 24 30 48 8b 54 24 18 48 8b 5c 24 10 (H.L$0H.T$.H.\$.
0x0020 31 f6 eb 4f 49 89 cc 48 29 f1 48 f7 d9 48 c1 f9 1..OI..H).H..H..
0x0030 3f 48 21 f1 44 0f b6 2c 08 45 01 e9 44 88 0c 08 ?H!.D..,.E..D...
0x0040 44 0f b6 4c 08 01 45 01 d1 44 88 4c 08 01 44 0f D..L..E..D.L..D.
0x0050 b6 4c 08 02 45 01 d9 44 88 4c 08 02 44 0f b6 4c .L..E..D.L..D..L
0x0060 08 03 41 01 d1 44 88 4c 08 03 4c 89 e1 4c 89 c2 ..A..D.L..L..L..
0x0070 48 89 fe 48 81 fe 00 01 00 00 7d 3f 48 8d 7e 04 H..H......}?H.~.
0x0080 48 39 fe 77 46 48 39 d7 77 41 49 89 d0 48 29 f2 H9.wFH9.wAI..H).
0x0090 48 f7 da 48 c1 fa 3f 48 21 f2 44 0f b6 0c 13 44 H..H..?H!.D....D
0x00a0 0f b6 54 13 01 44 0f b6 5c 13 02 0f b6 54 13 03 ..T..D..\....T..
0x00b0 48 39 cf 0f 86 6b ff ff ff eb 09 48 8b 2c 24 48 H9...k.....H.,$H
0x00c0 83 c4 08 c3 e8 00 00 00 00 0f 0b e8 00 00 00 00 ................
0x00d0 0f 0b ..
rel 197+4 t=8 runtime.panicslice+0
rel 204+4 t=8 runtime.panicslice+0
"".withLenAndCapShort STEXT nosplit size=169 args=0x30 locals=0x8
0x0000 00000 (/home/iand/wip/bounds/bounds.go:63) TEXT "".withLenAndCapShort(SB), NOSPLIT, $8-48
0x0000 00000 (/home/iand/wip/bounds/bounds.go:63) SUBQ $8, SP
0x0004 00004 (/home/iand/wip/bounds/bounds.go:63) MOVQ BP, (SP)
0x0008 00008 (/home/iand/wip/bounds/bounds.go:63) LEAQ (SP), BP
0x000c 00012 (/home/iand/wip/bounds/bounds.go:63) FUNCDATA $0, gclocals·3f27cca7c8f9c81ee10e0666cde9bf92(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:63) FUNCDATA $1, gclocals·7d2d5fca80364273fb07d5820a76fef4(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:63) FUNCDATA $3, gclocals·32e934db01ae6123cadf68ff488fea0d(SB)
0x000c 00012 (/home/iand/wip/bounds/bounds.go:64) PCDATA $2, $1
0x000c 00012 (/home/iand/wip/bounds/bounds.go:64) PCDATA $0, $0
0x000c 00012 (/home/iand/wip/bounds/bounds.go:64) MOVQ "".dpix+40(SP), AX
0x0011 00017 (/home/iand/wip/bounds/bounds.go:64) MOVQ "".spix+32(SP), CX
0x0016 00022 (/home/iand/wip/bounds/bounds.go:64) PCDATA $0, $1
0x0016 00022 (/home/iand/wip/bounds/bounds.go:64) MOVQ "".dpix+56(SP), DX
0x001b 00027 (/home/iand/wip/bounds/bounds.go:64) PCDATA $2, $2
0x001b 00027 (/home/iand/wip/bounds/bounds.go:64) PCDATA $0, $2
0x001b 00027 (/home/iand/wip/bounds/bounds.go:64) MOVQ "".spix+16(SP), BX
0x0020 00032 (/home/iand/wip/bounds/bounds.go:64) XORL SI, SI
0x0022 00034 (/home/iand/wip/bounds/bounds.go:64) JMP 93
0x0024 00036 (/home/iand/wip/bounds/bounds.go:72) MOVBLZX (AX)(SI*1), R12
0x0029 00041 (/home/iand/wip/bounds/bounds.go:72) ADDL R12, R8
0x002c 00044 (/home/iand/wip/bounds/bounds.go:72) MOVB R8B, (AX)(SI*1)
0x0030 00048 (/home/iand/wip/bounds/bounds.go:73) MOVBLZX 1(AX)(SI*1), R8
0x0036 00054 (/home/iand/wip/bounds/bounds.go:73) ADDL R9, R8
0x0039 00057 (/home/iand/wip/bounds/bounds.go:73) MOVB R8B, 1(AX)(SI*1)
0x003e 00062 (/home/iand/wip/bounds/bounds.go:74) MOVBLZX 2(AX)(SI*1), R8
0x0044 00068 (/home/iand/wip/bounds/bounds.go:74) ADDL R10, R8
0x0047 00071 (/home/iand/wip/bounds/bounds.go:74) MOVB R8B, 2(AX)(SI*1)
0x004c 00076 (/home/iand/wip/bounds/bounds.go:75) MOVBLZX 3(AX)(SI*1), R8
0x0052 00082 (/home/iand/wip/bounds/bounds.go:75) ADDL R11, R8
0x0055 00085 (/home/iand/wip/bounds/bounds.go:75) MOVB R8B, 3(AX)(SI*1)
0x005a 00090 (/home/iand/wip/bounds/bounds.go:64) MOVQ DI, SI
0x005d 00093 (/home/iand/wip/bounds/bounds.go:64) CMPQ SI, $256
0x0064 00100 (/home/iand/wip/bounds/bounds.go:64) JGE 146
0x0066 00102 (/home/iand/wip/bounds/bounds.go:65) LEAQ 4(SI), DI
0x006a 00106 (/home/iand/wip/bounds/bounds.go:65) CMPQ SI, DI
0x006d 00109 (/home/iand/wip/bounds/bounds.go:65) JHI 162
0x006f 00111 (/home/iand/wip/bounds/bounds.go:65) CMPQ DI, CX
0x0072 00114 (/home/iand/wip/bounds/bounds.go:65) JHI 162
0x0074 00116 (/home/iand/wip/bounds/bounds.go:66) MOVBLZX (BX)(SI*1), R8
0x0079 00121 (/home/iand/wip/bounds/bounds.go:67) MOVBLZX 1(BX)(SI*1), R9
0x007f 00127 (/home/iand/wip/bounds/bounds.go:68) MOVBLZX 2(BX)(SI*1), R10
0x0085 00133 (/home/iand/wip/bounds/bounds.go:69) MOVBLZX 3(BX)(SI*1), R11
0x008b 00139 (/home/iand/wip/bounds/bounds.go:71) CMPQ DI, DX
0x008e 00142 (/home/iand/wip/bounds/bounds.go:71) JLS 36
0x0090 00144 (/home/iand/wip/bounds/bounds.go:71) JMP 155
0x0092 00146 (<unknown line number>) PCDATA $2, $-2
0x0092 00146 (<unknown line number>) PCDATA $0, $-2
0x0092 00146 (<unknown line number>) MOVQ (SP), BP
0x0096 00150 (<unknown line number>) ADDQ $8, SP
0x009a 00154 (<unknown line number>) RET
0x009b 00155 (/home/iand/wip/bounds/bounds.go:71) PCDATA $2, $0
0x009b 00155 (/home/iand/wip/bounds/bounds.go:71) PCDATA $0, $2
0x009b 00155 (/home/iand/wip/bounds/bounds.go:71) CALL runtime.panicslice(SB)
0x00a0 00160 (/home/iand/wip/bounds/bounds.go:71) UNDEF
0x00a2 00162 (/home/iand/wip/bounds/bounds.go:65) CALL runtime.panicslice(SB)
0x00a7 00167 (/home/iand/wip/bounds/bounds.go:65) UNDEF
0x0000 48 83 ec 08 48 89 2c 24 48 8d 2c 24 48 8b 44 24 H...H.,$H.,$H.D$
0x0010 28 48 8b 4c 24 20 48 8b 54 24 38 48 8b 5c 24 10 (H.L$ H.T$8H.\$.
0x0020 31 f6 eb 39 44 0f b6 24 30 45 01 e0 44 88 04 30 1..9D..$0E..D..0
0x0030 44 0f b6 44 30 01 45 01 c8 44 88 44 30 01 44 0f D..D0.E..D.D0.D.
0x0040 b6 44 30 02 45 01 d0 44 88 44 30 02 44 0f b6 44 .D0.E..D.D0.D..D
0x0050 30 03 45 01 d8 44 88 44 30 03 48 89 fe 48 81 fe 0.E..D.D0.H..H..
0x0060 00 01 00 00 7d 2c 48 8d 7e 04 48 39 fe 77 33 48 ....},H.~.H9.w3H
0x0070 39 cf 77 2e 44 0f b6 04 33 44 0f b6 4c 33 01 44 9.w.D...3D..L3.D
0x0080 0f b6 54 33 02 44 0f b6 5c 33 03 48 39 d7 76 94 ..T3.D..\3.H9.v.
0x0090 eb 09 48 8b 2c 24 48 83 c4 08 c3 e8 00 00 00 00 ..H.,$H.........
0x00a0 0f 0b e8 00 00 00 00 0f 0b .........
rel 156+4 t=8 runtime.panicslice+0
rel 163+4 t=8 runtime.panicslice+0
"".init STEXT size=80 args=0x0 locals=0x8
0x0000 00000 (<autogenerated>:1) TEXT "".init(SB), $8-0
0x0000 00000 (<autogenerated>:1) MOVQ (TLS), CX
0x0009 00009 (<autogenerated>:1) CMPQ SP, 16(CX)
0x000d 00013 (<autogenerated>:1) JLS 73
0x000f 00015 (<autogenerated>:1) SUBQ $8, SP
0x0013 00019 (<autogenerated>:1) MOVQ BP, (SP)
0x0017 00023 (<autogenerated>:1) LEAQ (SP), BP
0x001b 00027 (<autogenerated>:1) FUNCDATA $0, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
0x001b 00027 (<autogenerated>:1) FUNCDATA $1, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
0x001b 00027 (<autogenerated>:1) FUNCDATA $3, gclocals·33cdeccccebe80329f1fdbee7f5874cb(SB)
0x001b 00027 (<autogenerated>:1) PCDATA $2, $0
0x001b 00027 (<autogenerated>:1) PCDATA $0, $0
0x001b 00027 (<autogenerated>:1) MOVBLZX "".initdone·(SB), AX
0x0022 00034 (<autogenerated>:1) CMPB AL, $1
0x0025 00037 (<autogenerated>:1) JLS 48
0x0027 00039 (<autogenerated>:1) PCDATA $2, $-2
0x0027 00039 (<autogenerated>:1) PCDATA $0, $-2
0x0027 00039 (<autogenerated>:1) MOVQ (SP), BP
0x002b 00043 (<autogenerated>:1) ADDQ $8, SP
0x002f 00047 (<autogenerated>:1) RET
0x0030 00048 (<autogenerated>:1) JNE 57
0x0032 00050 (<autogenerated>:1) PCDATA $2, $0
0x0032 00050 (<autogenerated>:1) PCDATA $0, $0
0x0032 00050 (<autogenerated>:1) CALL runtime.throwinit(SB)
0x0037 00055 (<autogenerated>:1) UNDEF
0x0039 00057 (<autogenerated>:1) MOVB $2, "".initdone·(SB)
0x0040 00064 (<autogenerated>:1) MOVQ (SP), BP
0x0044 00068 (<autogenerated>:1) ADDQ $8, SP
0x0048 00072 (<autogenerated>:1) RET
0x0049 00073 (<autogenerated>:1) NOP
0x0049 00073 (<autogenerated>:1) PCDATA $0, $-1
0x0049 00073 (<autogenerated>:1) PCDATA $2, $-1
0x0049 00073 (<autogenerated>:1) CALL runtime.morestack_noctxt(SB)
0x004e 00078 (<autogenerated>:1) JMP 0
0x0000 64 48 8b 0c 25 00 00 00 00 48 3b 61 10 76 3a 48 dH..%....H;a.v:H
0x0010 83 ec 08 48 89 2c 24 48 8d 2c 24 0f b6 05 00 00 ...H.,$H.,$.....
0x0020 00 00 80 f8 01 76 09 48 8b 2c 24 48 83 c4 08 c3 .....v.H.,$H....
0x0030 75 07 e8 00 00 00 00 0f 0b c6 05 00 00 00 00 02 u...............
0x0040 48 8b 2c 24 48 83 c4 08 c3 e8 00 00 00 00 eb b0 H.,$H...........
rel 5+4 t=16 TLS+0
rel 30+4 t=15 "".initdone·+0
rel 51+4 t=8 runtime.throwinit+0
rel 59+4 t=15 "".initdone·+-1
rel 74+4 t=8 runtime.morestack_noctxt+0
go.loc."".main SDWARFLOC size=0
go.info."".main SDWARFINFO size=33
0x0000 02 22 22 2e 6d 61 69 6e 00 00 00 00 00 00 00 00 ."".main........
0x0010 00 00 00 00 00 00 00 00 00 01 9c 00 00 00 00 01 ................
0x0020 00 .
rel 9+8 t=1 "".main+0
rel 17+8 t=1 "".main+424
rel 27+4 t=29 gofile../home/iand/wip/bounds/bounds.go+0
go.range."".main SDWARFRANGE size=0
go.isstmt."".main SDWARFMISC size=0
0x0000 04 1b 04 17 03 08 01 16 02 05 01 13 02 08 01 37 ...............7
0x0010 02 08 01 37 02 08 01 37 02 08 01 37 02 08 01 22 ...7...7...7..."
0x0020 02 1a 00 ...
go.loc."".compute SDWARFLOC size=582
0x0000 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0010 11 00 00 00 00 00 00 00 69 01 00 00 00 00 00 00 ........i.......
0x0020 0b 00 9c 93 08 91 08 93 08 91 10 93 08 00 00 00 ................
0x0030 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ................
0x0040 ff ff ff ff ff 00 00 00 00 00 00 00 00 11 00 00 ................
0x0050 00 00 00 00 00 69 01 00 00 00 00 00 00 0c 00 91 .....i..........
0x0060 18 93 08 91 20 93 08 91 28 93 08 00 00 00 00 00 .... ...(.......
0x0070 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ................
0x0080 ff ff ff 00 00 00 00 00 00 00 00 41 00 00 00 00 ...........A....
0x0090 00 00 00 28 01 00 00 00 00 00 00 01 00 58 00 00 ...(.........X..
0x00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ................
0x00b0 ff ff ff ff ff ff 00 00 00 00 00 00 00 00 69 00 ..............i.
0x00c0 00 00 00 00 00 00 6f 00 00 00 00 00 00 00 05 00 ......o.........
0x00d0 50 93 08 93 08 6f 00 00 00 00 00 00 00 72 00 00 P....o.......r..
0x00e0 00 00 00 00 00 06 00 50 93 08 55 93 08 72 00 00 .......P..U..r..
0x00f0 00 00 00 00 00 b6 00 00 00 00 00 00 00 05 00 50 ...............P
0x0100 93 08 93 08 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0110 00 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ................
0x0120 00 00 00 00 87 00 00 00 00 00 00 00 e2 00 00 00 ................
0x0130 00 00 00 00 01 00 5b 00 00 00 00 00 00 00 00 00 ......[.........
0x0140 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff 00 ................
0x0150 00 00 00 00 00 00 00 97 00 00 00 00 00 00 00 28 ...............(
0x0160 01 00 00 00 00 00 00 01 00 5c 00 00 00 00 00 00 .........\......
0x0170 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ................
0x0180 ff ff 00 00 00 00 00 00 00 00 a7 00 00 00 00 00 ................
0x0190 00 00 28 01 00 00 00 00 00 00 01 00 5d 00 00 00 ..(.........]...
0x01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ................
0x01b0 ff ff ff ff ff 00 00 00 00 00 00 00 00 b6 00 00 ................
0x01c0 00 00 00 00 00 28 01 00 00 00 00 00 00 01 00 50 .....(.........P
0x01d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x01e0 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x01f0 c5 00 00 00 00 00 00 00 cb 00 00 00 00 00 00 00 ................
0x0200 05 00 53 93 08 93 08 cb 00 00 00 00 00 00 00 ce ..S.............
0x0210 00 00 00 00 00 00 00 06 00 53 93 08 54 93 08 ce .........S..T...
0x0220 00 00 00 00 00 00 00 28 01 00 00 00 00 00 00 05 .......(........
0x0230 00 53 93 08 93 08 00 00 00 00 00 00 00 00 00 00 .S..............
0x0240 00 00 00 00 00 00 ......
rel 8+8 t=1 "".compute+0
rel 69+8 t=1 "".compute+0
rel 131+8 t=1 "".compute+0
rel 182+8 t=1 "".compute+0
rel 284+8 t=1 "".compute+0
rel 335+8 t=1 "".compute+0
rel 386+8 t=1 "".compute+0
rel 437+8 t=1 "".compute+0
rel 488+8 t=1 "".compute+0
go.info."".compute SDWARFINFO size=168
0x0000 02 22 22 2e 63 6f 6d 70 75 74 65 00 00 00 00 00 ."".compute.....
0x0010 00 00 00 00 00 00 00 00 00 00 00 00 01 9c 00 00 ................
0x0020 00 00 01 0f 73 70 69 78 00 00 0f 00 00 00 00 00 ....spix........
0x0030 00 00 00 0f 64 70 69 78 00 00 0f 00 00 00 00 00 ....dpix........
0x0040 00 00 00 13 00 00 00 00 0a 69 00 10 00 00 00 00 .........i......
0x0050 00 00 00 00 13 00 00 00 00 0a 73 00 11 00 00 00 ..........s.....
0x0060 00 00 00 00 00 0a 73 72 00 12 00 00 00 00 00 00 ......sr........
0x0070 00 00 0a 73 67 00 13 00 00 00 00 00 00 00 00 0a ...sg...........
0x0080 73 62 00 14 00 00 00 00 00 00 00 00 0a 73 61 00 sb...........sa.
0x0090 15 00 00 00 00 00 00 00 00 0a 64 00 17 00 00 00 ..........d.....
0x00a0 00 00 00 00 00 00 00 00 ........
rel 12+8 t=1 "".compute+0
rel 20+8 t=1 "".compute+361
rel 30+4 t=29 gofile../home/iand/wip/bounds/bounds.go+0
rel 43+4 t=28 go.info.[]uint8+0
rel 47+4 t=28 go.loc."".compute+0
rel 59+4 t=28 go.info.[]uint8+0
rel 63+4 t=28 go.loc."".compute+61
rel 68+4 t=28 go.range."".compute+0
rel 76+4 t=28 go.info.int+0
rel 80+4 t=28 go.loc."".compute+123
rel 85+4 t=28 go.range."".compute+64
rel 93+4 t=28 go.info.[]uint8+0
rel 97+4 t=28 go.loc."".compute+174
rel 106+4 t=28 go.info.uint8+0
rel 110+4 t=28 go.loc."".compute+276
rel 119+4 t=28 go.info.uint8+0
rel 123+4 t=28 go.loc."".compute+327
rel 132+4 t=28 go.info.uint8+0
rel 136+4 t=28 go.loc."".compute+378
rel 145+4 t=28 go.info.uint8+0
rel 149+4 t=28 go.loc."".compute+429
rel 157+4 t=28 go.info.[]uint8+0
rel 161+4 t=28 go.loc."".compute+480
go.range."".compute SDWARFRANGE size=160
0x0000 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0010 0c 00 00 00 00 00 00 00 1a 01 00 00 00 00 00 00 ................
0x0020 23 01 00 00 00 00 00 00 69 01 00 00 00 00 00 00 #.......i.......
0x0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0040 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0050 2f 00 00 00 00 00 00 00 3d 00 00 00 00 00 00 00 /.......=.......
0x0060 41 00 00 00 00 00 00 00 4d 00 00 00 00 00 00 00 A.......M.......
0x0070 5a 00 00 00 00 00 00 00 1a 01 00 00 00 00 00 00 Z...............
0x0080 23 01 00 00 00 00 00 00 69 01 00 00 00 00 00 00 #.......i.......
0x0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 8+8 t=1 "".compute+0
rel 72+8 t=1 "".compute+0
go.isstmt."".compute SDWARFMISC size=0
0x0000 08 0c 03 05 01 1e 02 06 01 08 02 04 01 0c 02 07 ................
0x0010 01 06 02 03 01 1c 02 03 01 0b 02 04 01 0c 02 04 ................
0x0020 01 0c 02 04 01 0b 02 03 01 1c 02 03 01 02 02 05 ................
0x0030 01 07 02 04 01 02 02 06 01 08 02 04 01 02 02 06 ................
0x0040 01 08 02 04 01 16 02 02 01 05 02 02 01 05 02 02 ................
0x0050 01 05 02 02 01 05 02 02 01 05 02 02 01 05 02 02 ................
0x0060 01 05 02 02 01 05 02 02 01 05 02 02 00 .............
go.loc."".withLen SDWARFLOC size=472
0x0000 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0010 11 00 00 00 00 00 00 00 d2 00 00 00 00 00 00 00 ................
0x0020 07 00 9c 93 08 91 10 93 08 00 00 00 00 00 00 00 ................
0x0030 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ................
0x0040 ff 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 ................
0x0050 00 d2 00 00 00 00 00 00 00 08 00 91 18 93 08 91 ................
0x0060 28 93 08 00 00 00 00 00 00 00 00 00 00 00 00 00 (...............
0x0070 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 00 ................
0x0080 00 00 00 7a 00 00 00 00 00 00 00 c9 00 00 00 00 ...z............
0x0090 00 00 00 01 00 54 00 00 00 00 00 00 00 00 00 00 .....T..........
0x00a0 00 00 00 00 00 00 ff ff ff ff ff ff ff ff 00 00 ................
0x00b0 00 00 00 00 00 00 90 00 00 00 00 00 00 00 93 00 ................
0x00c0 00 00 00 00 00 00 01 00 51 00 00 00 00 00 00 00 ........Q.......
0x00d0 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ................
0x00e0 ff 00 00 00 00 00 00 00 00 9f 00 00 00 00 00 00 ................
0x00f0 00 c9 00 00 00 00 00 00 00 01 00 59 00 00 00 00 ...........Y....
0x0100 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ................
0x0110 ff ff ff ff 00 00 00 00 00 00 00 00 a5 00 00 00 ................
0x0120 00 00 00 00 c9 00 00 00 00 00 00 00 01 00 5a 00 ..............Z.
0x0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ................
0x0140 ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ab ................
0x0150 00 00 00 00 00 00 00 c9 00 00 00 00 00 00 00 01 ................
0x0160 00 5b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .[..............
0x0170 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 ................
0x0180 00 00 b0 00 00 00 00 00 00 00 c9 00 00 00 00 00 ................
0x0190 00 00 01 00 51 00 00 00 00 00 00 00 00 00 00 00 ....Q...........
0x01a0 00 00 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 ................
0x01b0 00 00 00 00 00 2a 00 00 00 00 00 00 00 2d 00 00 .....*.......-..
0x01c0 00 00 00 00 00 01 00 52 00 00 00 00 00 00 00 00 .......R........
0x01d0 00 00 00 00 00 00 00 00 ........
rel 8+8 t=1 "".withLen+0
rel 65+8 t=1 "".withLen+0
rel 123+8 t=1 "".withLen+0
rel 174+8 t=1 "".withLen+0
rel 225+8 t=1 "".withLen+0
rel 276+8 t=1 "".withLen+0
rel 327+8 t=1 "".withLen+0
rel 378+8 t=1 "".withLen+0
rel 429+8 t=1 "".withLen+0
go.info."".withLen SDWARFINFO size=168
0x0000 02 22 22 2e 77 69 74 68 4c 65 6e 00 00 00 00 00 ."".withLen.....
0x0010 00 00 00 00 00 00 00 00 00 00 00 00 01 9c 00 00 ................
0x0020 00 00 01 0f 73 70 69 78 00 00 1f 00 00 00 00 00 ....spix........
0x0030 00 00 00 0f 64 70 69 78 00 00 1f 00 00 00 00 00 ....dpix........
0x0040 00 00 00 13 00 00 00 00 0a 69 00 20 00 00 00 00 .........i. ....
0x0050 00 00 00 00 13 00 00 00 00 0a 73 00 21 00 00 00 ..........s.!...
0x0060 00 00 00 00 00 0a 73 72 00 22 00 00 00 00 00 00 ......sr."......
0x0070 00 00 0a 73 67 00 23 00 00 00 00 00 00 00 00 0a ...sg.#.........
0x0080 73 62 00 24 00 00 00 00 00 00 00 00 0a 73 61 00 sb.$.........sa.
0x0090 25 00 00 00 00 00 00 00 00 0a 64 00 27 00 00 00 %.........d.'...
0x00a0 00 00 00 00 00 00 00 00 ........
rel 12+8 t=1 "".withLen+0
rel 20+8 t=1 "".withLen+210
rel 30+4 t=29 gofile../home/iand/wip/bounds/bounds.go+0
rel 43+4 t=28 go.info.[]uint8+0
rel 47+4 t=28 go.loc."".withLen+0
rel 59+4 t=28 go.info.[]uint8+0
rel 63+4 t=28 go.loc."".withLen+57
rel 68+4 t=28 go.range."".withLen+0
rel 76+4 t=28 go.info.int+0
rel 80+4 t=28 go.loc."".withLen+115
rel 85+4 t=28 go.range."".withLen+64
rel 93+4 t=28 go.info.[]uint8+0
rel 97+4 t=28 go.loc."".withLen+166
rel 106+4 t=28 go.info.uint8+0
rel 110+4 t=28 go.loc."".withLen+217
rel 119+4 t=28 go.info.uint8+0
rel 123+4 t=28 go.loc."".withLen+268
rel 132+4 t=28 go.info.uint8+0
rel 136+4 t=28 go.loc."".withLen+319
rel 145+4 t=28 go.info.uint8+0
rel 149+4 t=28 go.loc."".withLen+370
rel 157+4 t=28 go.info.[]uint8+0
rel 161+4 t=28 go.loc."".withLen+421
go.range."".withLen SDWARFRANGE size=144
0x0000 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0010 0c 00 00 00 00 00 00 00 bb 00 00 00 00 00 00 00 ................
0x0020 c4 00 00 00 00 00 00 00 d2 00 00 00 00 00 00 00 ................
0x0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0040 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0050 24 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 $.......p.......
0x0060 7c 00 00 00 00 00 00 00 bb 00 00 00 00 00 00 00 |...............
0x0070 c4 00 00 00 00 00 00 00 d2 00 00 00 00 00 00 00 ................
0x0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 8+8 t=1 "".withLen+0
rel 72+8 t=1 "".withLen+0
go.isstmt."".withLen SDWARFMISC size=0
0x0000 08 0c 03 05 01 23 02 05 01 07 02 06 01 08 02 06 .....#..........
0x0010 01 08 02 06 01 11 02 07 01 02 02 04 01 05 02 03 ................
0x0020 01 17 02 14 01 11 02 0e 00 .........
go.loc."".withLenAndCap SDWARFLOC size=472
0x0000 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0010 11 00 00 00 00 00 00 00 d2 00 00 00 00 00 00 00 ................
0x0020 07 00 9c 93 08 91 08 93 08 00 00 00 00 00 00 00 ................
0x0030 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ................
0x0040 ff 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 ................
0x0050 00 d2 00 00 00 00 00 00 00 08 00 91 18 93 08 91 ................
0x0060 20 93 08 00 00 00 00 00 00 00 00 00 00 00 00 00 ...............
0x0070 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 00 ................
0x0080 00 00 00 7a 00 00 00 00 00 00 00 c9 00 00 00 00 ...z............
0x0090 00 00 00 01 00 54 00 00 00 00 00 00 00 00 00 00 .....T..........
0x00a0 00 00 00 00 00 00 ff ff ff ff ff ff ff ff 00 00 ................
0x00b0 00 00 00 00 00 00 90 00 00 00 00 00 00 00 93 00 ................
0x00c0 00 00 00 00 00 00 01 00 51 00 00 00 00 00 00 00 ........Q.......
0x00d0 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ................
0x00e0 ff 00 00 00 00 00 00 00 00 9f 00 00 00 00 00 00 ................
0x00f0 00 c9 00 00 00 00 00 00 00 01 00 59 00 00 00 00 ...........Y....
0x0100 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ................
0x0110 ff ff ff ff 00 00 00 00 00 00 00 00 a5 00 00 00 ................
0x0120 00 00 00 00 c9 00 00 00 00 00 00 00 01 00 5a 00 ..............Z.
0x0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ................
0x0140 ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ab ................
0x0150 00 00 00 00 00 00 00 c9 00 00 00 00 00 00 00 01 ................
0x0160 00 5b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .[..............
0x0170 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 ................
0x0180 00 00 b0 00 00 00 00 00 00 00 c9 00 00 00 00 00 ................
0x0190 00 00 01 00 51 00 00 00 00 00 00 00 00 00 00 00 ....Q...........
0x01a0 00 00 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 ................
0x01b0 00 00 00 00 00 2a 00 00 00 00 00 00 00 2d 00 00 .....*.......-..
0x01c0 00 00 00 00 00 01 00 52 00 00 00 00 00 00 00 00 .......R........
0x01d0 00 00 00 00 00 00 00 00 ........
rel 8+8 t=1 "".withLenAndCap+0
rel 65+8 t=1 "".withLenAndCap+0
rel 123+8 t=1 "".withLenAndCap+0
rel 174+8 t=1 "".withLenAndCap+0
rel 225+8 t=1 "".withLenAndCap+0
rel 276+8 t=1 "".withLenAndCap+0
rel 327+8 t=1 "".withLenAndCap+0
rel 378+8 t=1 "".withLenAndCap+0
rel 429+8 t=1 "".withLenAndCap+0
go.info."".withLenAndCap SDWARFINFO size=174
0x0000 02 22 22 2e 77 69 74 68 4c 65 6e 41 6e 64 43 61 ."".withLenAndCa
0x0010 70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 p...............
0x0020 00 00 01 9c 00 00 00 00 01 0f 73 70 69 78 00 00 ..........spix..
0x0030 2f 00 00 00 00 00 00 00 00 0f 64 70 69 78 00 00 /.........dpix..
0x0040 2f 00 00 00 00 00 00 00 00 13 00 00 00 00 0a 69 /..............i
0x0050 00 30 00 00 00 00 00 00 00 00 13 00 00 00 00 0a .0..............
0x0060 73 00 31 00 00 00 00 00 00 00 00 0a 73 72 00 32 s.1.........sr.2
0x0070 00 00 00 00 00 00 00 00 0a 73 67 00 33 00 00 00 .........sg.3...
0x0080 00 00 00 00 00 0a 73 62 00 34 00 00 00 00 00 00 ......sb.4......
0x0090 00 00 0a 73 61 00 35 00 00 00 00 00 00 00 00 0a ...sa.5.........
0x00a0 64 00 37 00 00 00 00 00 00 00 00 00 00 00 d.7...........
rel 18+8 t=1 "".withLenAndCap+0
rel 26+8 t=1 "".withLenAndCap+210
rel 36+4 t=29 gofile../home/iand/wip/bounds/bounds.go+0
rel 49+4 t=28 go.info.[]uint8+0
rel 53+4 t=28 go.loc."".withLenAndCap+0
rel 65+4 t=28 go.info.[]uint8+0
rel 69+4 t=28 go.loc."".withLenAndCap+57
rel 74+4 t=28 go.range."".withLenAndCap+0
rel 82+4 t=28 go.info.int+0
rel 86+4 t=28 go.loc."".withLenAndCap+115
rel 91+4 t=28 go.range."".withLenAndCap+64
rel 99+4 t=28 go.info.[]uint8+0
rel 103+4 t=28 go.loc."".withLenAndCap+166
rel 112+4 t=28 go.info.uint8+0
rel 116+4 t=28 go.loc."".withLenAndCap+217
rel 125+4 t=28 go.info.uint8+0
rel 129+4 t=28 go.loc."".withLenAndCap+268
rel 138+4 t=28 go.info.uint8+0
rel 142+4 t=28 go.loc."".withLenAndCap+319
rel 151+4 t=28 go.info.uint8+0
rel 155+4 t=28 go.loc."".withLenAndCap+370
rel 163+4 t=28 go.info.[]uint8+0
rel 167+4 t=28 go.loc."".withLenAndCap+421
go.range."".withLenAndCap SDWARFRANGE size=144
0x0000 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0010 0c 00 00 00 00 00 00 00 bb 00 00 00 00 00 00 00 ................
0x0020 c4 00 00 00 00 00 00 00 d2 00 00 00 00 00 00 00 ................
0x0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0040 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0050 24 00 00 00 00 00 00 00 70 00 00 00 00 00 00 00 $.......p.......
0x0060 7c 00 00 00 00 00 00 00 bb 00 00 00 00 00 00 00 |...............
0x0070 c4 00 00 00 00 00 00 00 d2 00 00 00 00 00 00 00 ................
0x0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 8+8 t=1 "".withLenAndCap+0
rel 72+8 t=1 "".withLenAndCap+0
go.isstmt."".withLenAndCap SDWARFMISC size=0
0x0000 08 0c 03 05 01 23 02 05 01 07 02 06 01 08 02 06 .....#..........
0x0010 01 08 02 06 01 11 02 07 01 02 02 04 01 05 02 03 ................
0x0020 01 12 02 19 01 11 02 0e 00 .........
go.loc."".withLenAndCapShort SDWARFLOC size=370
0x0000 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0010 11 00 00 00 00 00 00 00 a9 00 00 00 00 00 00 00 ................
0x0020 07 00 9c 93 08 91 10 93 08 00 00 00 00 00 00 00 ................
0x0030 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ................
0x0040 ff 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 ................
0x0050 00 a9 00 00 00 00 00 00 00 08 00 91 18 93 08 91 ................
0x0060 28 93 08 00 00 00 00 00 00 00 00 00 00 00 00 00 (...............
0x0070 00 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 00 ................
0x0080 00 00 00 64 00 00 00 00 00 00 00 a0 00 00 00 00 ...d............
0x0090 00 00 00 01 00 54 00 00 00 00 00 00 00 00 00 00 .....T..........
0x00a0 00 00 00 00 00 00 ff ff ff ff ff ff ff ff 00 00 ................
0x00b0 00 00 00 00 00 00 79 00 00 00 00 00 00 00 a0 00 ......y.........
0x00c0 00 00 00 00 00 00 01 00 58 00 00 00 00 00 00 00 ........X.......
0x00d0 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ................
0x00e0 ff 00 00 00 00 00 00 00 00 7f 00 00 00 00 00 00 ................
0x00f0 00 a0 00 00 00 00 00 00 00 01 00 59 00 00 00 00 ...........Y....
0x0100 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ................
0x0110 ff ff ff ff 00 00 00 00 00 00 00 00 85 00 00 00 ................
0x0120 00 00 00 00 a0 00 00 00 00 00 00 00 01 00 5a 00 ..............Z.
0x0130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ................
0x0140 ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 8b ................
0x0150 00 00 00 00 00 00 00 a0 00 00 00 00 00 00 00 01 ................
0x0160 00 5b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .[..............
0x0170 00 00 ..
rel 8+8 t=1 "".withLenAndCapShort+0
rel 65+8 t=1 "".withLenAndCapShort+0
rel 123+8 t=1 "".withLenAndCapShort+0
rel 174+8 t=1 "".withLenAndCapShort+0
rel 225+8 t=1 "".withLenAndCapShort+0
rel 276+8 t=1 "".withLenAndCapShort+0
rel 327+8 t=1 "".withLenAndCapShort+0
go.info."".withLenAndCapShort SDWARFINFO size=155
0x0000 02 22 22 2e 77 69 74 68 4c 65 6e 41 6e 64 43 61 ."".withLenAndCa
0x0010 70 53 68 6f 72 74 00 00 00 00 00 00 00 00 00 00 pShort..........
0x0020 00 00 00 00 00 00 00 01 9c 00 00 00 00 01 0f 73 ...............s
0x0030 70 69 78 00 00 3f 00 00 00 00 00 00 00 00 0f 64 pix..?.........d
0x0040 70 69 78 00 00 3f 00 00 00 00 00 00 00 00 13 00 pix..?..........
0x0050 00 00 00 0a 69 00 40 00 00 00 00 00 00 00 00 13 ....i.@.........
0x0060 00 00 00 00 0a 73 72 00 42 00 00 00 00 00 00 00 .....sr.B.......
0x0070 00 0a 73 67 00 43 00 00 00 00 00 00 00 00 0a 73 ..sg.C.........s
0x0080 62 00 44 00 00 00 00 00 00 00 00 0a 73 61 00 45 b.D.........sa.E
0x0090 00 00 00 00 00 00 00 00 00 00 00 ...........
rel 23+8 t=1 "".withLenAndCapShort+0
rel 31+8 t=1 "".withLenAndCapShort+169
rel 41+4 t=29 gofile../home/iand/wip/bounds/bounds.go+0
rel 54+4 t=28 go.info.[]uint8+0
rel 58+4 t=28 go.loc."".withLenAndCapShort+0
rel 70+4 t=28 go.info.[]uint8+0
rel 74+4 t=28 go.loc."".withLenAndCapShort+57
rel 79+4 t=28 go.range."".withLenAndCapShort+0
rel 87+4 t=28 go.info.int+0
rel 91+4 t=28 go.loc."".withLenAndCapShort+115
rel 96+4 t=28 go.range."".withLenAndCapShort+64
rel 105+4 t=28 go.info.uint8+0
rel 109+4 t=28 go.loc."".withLenAndCapShort+166
rel 118+4 t=28 go.info.uint8+0
rel 122+4 t=28 go.loc."".withLenAndCapShort+217
rel 131+4 t=28 go.info.uint8+0
rel 135+4 t=28 go.loc."".withLenAndCapShort+268
rel 144+4 t=28 go.info.uint8+0
rel 148+4 t=28 go.loc."".withLenAndCapShort+319
go.range."".withLenAndCapShort SDWARFRANGE size=144
0x0000 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0010 0c 00 00 00 00 00 00 00 92 00 00 00 00 00 00 00 ................
0x0020 9b 00 00 00 00 00 00 00 a9 00 00 00 00 00 00 00 ................
0x0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0040 ff ff ff ff ff ff ff ff 00 00 00 00 00 00 00 00 ................
0x0050 24 00 00 00 00 00 00 00 5a 00 00 00 00 00 00 00 $.......Z.......
0x0060 66 00 00 00 00 00 00 00 92 00 00 00 00 00 00 00 f...............
0x0070 9b 00 00 00 00 00 00 00 a9 00 00 00 00 00 00 00 ................
0x0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 8+8 t=1 "".withLenAndCapShort+0
rel 72+8 t=1 "".withLenAndCapShort+0
go.isstmt."".withLenAndCapShort SDWARFMISC size=0
0x0000 08 0c 03 05 01 13 02 05 01 07 02 06 01 08 02 06 ................
0x0010 01 08 02 06 01 0b 02 07 01 02 02 04 01 05 02 03 ................
0x0020 01 07 02 15 01 0d 02 0e 00 .........
go.loc."".init SDWARFLOC size=0
go.info."".init SDWARFINFO size=33
0x0000 02 22 22 2e 69 6e 69 74 00 00 00 00 00 00 00 00 ."".init........
0x0010 00 00 00 00 00 00 00 00 00 01 9c 00 00 00 00 01 ................
0x0020 00 .
rel 9+8 t=1 "".init+0
rel 17+8 t=1 "".init+80
rel 27+4 t=29 gofile..<autogenerated>+0
go.range."".init SDWARFRANGE size=0
go.isstmt."".init SDWARFMISC size=0
0x0000 04 0f 04 0c 03 07 01 05 02 09 01 07 02 09 01 09 ................
0x0010 02 07 00 ...
"".initdone· SNOPTRBSS size=1
runtime.gcbits.01 SRODATA dupok size=1
0x0000 01 .
type..namedata.*[]uint8- SRODATA dupok size=11
0x0000 00 00 08 2a 5b 5d 75 69 6e 74 38 ...*[]uint8
type.*[]uint8 SRODATA dupok size=56
0x0000 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ................
0x0010 a5 8e d0 69 00 08 08 36 00 00 00 00 00 00 00 00 ...i...6........
0x0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0030 00 00 00 00 00 00 00 00 ........
rel 24+8 t=1 runtime.algarray+80
rel 32+8 t=1 runtime.gcbits.01+0
rel 40+4 t=5 type..namedata.*[]uint8-+0
rel 48+8 t=1 type.[]uint8+0
type.[]uint8 SRODATA dupok size=56
0x0000 18 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ................
0x0010 df 7e 2e 38 02 08 08 17 00 00 00 00 00 00 00 00 .~.8............
0x0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0030 00 00 00 00 00 00 00 00 ........
rel 24+8 t=1 runtime.algarray+0
rel 32+8 t=1 runtime.gcbits.01+0
rel 40+4 t=5 type..namedata.*[]uint8-+0
rel 44+4 t=6 type.*[]uint8+0
rel 48+8 t=1 type.uint8+0
type..hashfunc256 SRODATA dupok size=16
0x0000 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................
rel 0+8 t=1 runtime.memhash_varlen+0
type..eqfunc256 SRODATA dupok size=16
0x0000 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 ................
rel 0+8 t=1 runtime.memequal_varlen+0
type..alg256 SRODATA dupok size=16
0x0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 0+8 t=1 type..hashfunc256+0
rel 8+8 t=1 type..eqfunc256+0
type..namedata.*[256]uint8- SRODATA dupok size=14
0x0000 00 00 0b 2a 5b 32 35 36 5d 75 69 6e 74 38 ...*[256]uint8
type.*[256]uint8 SRODATA dupok size=56
0x0000 08 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 ................
0x0010 9f 33 f5 ec 00 08 08 36 00 00 00 00 00 00 00 00 .3.....6........
0x0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0030 00 00 00 00 00 00 00 00 ........
rel 24+8 t=1 runtime.algarray+80
rel 32+8 t=1 runtime.gcbits.01+0
rel 40+4 t=5 type..namedata.*[256]uint8-+0
rel 48+8 t=1 type.[256]uint8+0
runtime.gcbits. SRODATA dupok size=0
type.[256]uint8 SRODATA dupok size=72
0x0000 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0010 9e 9d b0 ff 02 01 01 91 00 00 00 00 00 00 00 00 ................
0x0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0040 00 01 00 00 00 00 00 00 ........
rel 24+8 t=1 type..alg256+0
rel 32+8 t=1 runtime.gcbits.+0
rel 40+4 t=5 type..namedata.*[256]uint8-+0
rel 44+4 t=6 type.*[256]uint8+0
rel 48+8 t=1 type.uint8+0
rel 56+8 t=1 type.[]uint8+0
gclocals·33cdeccccebe80329f1fdbee7f5874cb SRODATA dupok size=8
0x0000 01 00 00 00 00 00 00 00 ........
gclocals·a76fe8fed1b9afb17278f569a1ac8347 SRODATA dupok size=12
0x0000 04 00 00 00 07 00 00 00 00 40 01 02 .........@..
gclocals·3f27cca7c8f9c81ee10e0666cde9bf92 SRODATA dupok size=11
0x0000 03 00 00 00 04 00 00 00 09 01 00 ...........
gclocals·7d2d5fca80364273fb07d5820a76fef4 SRODATA dupok size=8
0x0000 03 00 00 00 00 00 00 00 ........
gclocals·9ea3635389001b70160dee992f4d1966 SRODATA dupok size=11
0x0000 03 00 00 00 03 00 00 00 00 02 06 ...........
gclocals·32e934db01ae6123cadf68ff488fea0d SRODATA dupok size=11
0x0000 03 00 00 00 04 00 00 00 00 01 09 ...........
package main
func main() {
spix := make([]byte, 256)
dpix := make([]byte, 256)
compute(spix, dpix)
withLen(spix, dpix)
withLenAndCap(spix, dpix)
withLenAndCapShort(spix, dpix)
println(dpix[255])
}
func compute(spix, dpix []byte) {
for i := 0; i < 256; i += 4 {
s := spix[i:]
sr := s[0]
sg := s[1]
sb := s[2]
sa := s[3]
d := dpix[i:]
d[0] = d[0] + sr
d[1] = d[1] + sg
d[2] = d[2] + sb
d[3] = d[3] + sa
}
}
func withLen(spix, dpix []byte) {
for i := 0; i < 256; i += 4 {
s := spix[i : i+4]
sr := s[0]
sg := s[1]
sb := s[2]
sa := s[3]
d := dpix[i : i+4]
d[0] = d[0] + sr
d[1] = d[1] + sg
d[2] = d[2] + sb
d[3] = d[3] + sa
}
}
func withLenAndCap(spix, dpix []byte) {
for i := 0; i < 256; i += 4 {
s := spix[i : i+4 : len(spix)]
sr := s[0]
sg := s[1]
sb := s[2]
sa := s[3]
d := dpix[i : i+4 : len(dpix)]
d[0] = d[0] + sr
d[1] = d[1] + sg
d[2] = d[2] + sb
d[3] = d[3] + sa
}
}
func withLenAndCapShort(spix, dpix []byte) {
for i := 0; i < 256; i += 4 {
s := spix[i : i+4 : i+4]
sr := s[0]
sg := s[1]
sb := s[2]
sa := s[3]
d := dpix[i : i+4 : i+4]
d[0] = d[0] + sr
d[1] = d[1] + sg
d[2] = d[2] + sb
d[3] = d[3] + sa
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment