Skip to content

Instantly share code, notes, and snippets.

@tgruben
Created April 22, 2015 16:05
Show Gist options
  • Save tgruben/51b8aef678bf02cfb35c to your computer and use it in GitHub Desktop.
Save tgruben/51b8aef678bf02cfb35c to your computer and use it in GitHub Desktop.
package main
import "fmt"
func takesString(str string) {}
func returnInterface(str string) interface{} {
return str
}
func main() {
int_str := returnInterface("this is obviously a string")
//same solution with if..
if x, isString := int_str.(string); isString {
takesString(x)
} else {
panic("this is not a drill")
}
//
fmt.Println("Hello, playground")
}
"".takesString t=1 size=16 value=0 args=0x10 locals=0x0
0x0000 00000 (m1.go:5) TEXT "".takesString+0(SB),4,$0-16
0x0000 00000 (m1.go:5) NOP ,
0x0000 00000 (m1.go:5) NOP ,
0x0000 00000 (m1.go:5) FUNCDATA $0,gclocals·06cab038d51064a089bda21fa03e00f7+0(SB)
0x0000 00000 (m1.go:5) FUNCDATA $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
0x0000 00000 (m1.go:5) RET ,
0x0000 c3 .
"".returnInterface t=1 size=128 value=0 args=0x20 locals=0x30
0x0000 00000 (m1.go:7) TEXT "".returnInterface+0(SB),$48-32
0x0000 00000 (m1.go:7) MOVQ (TLS),CX
0x0009 00009 (m1.go:7) CMPQ SP,16(CX)
0x000d 00013 (m1.go:7) JHI ,22
0x000f 00015 (m1.go:7) CALL ,runtime.morestack_noctxt(SB)
0x0014 00020 (m1.go:7) JMP ,0
0x0016 00022 (m1.go:7) SUBQ $48,SP
0x001a 00026 (m1.go:7) FUNCDATA $0,gclocals·771157e6981a4b26b64a947269cc9ecb+0(SB)
0x001a 00026 (m1.go:7) FUNCDATA $1,gclocals·8d600a433c6aaa81a4fe446d95c5546b+0(SB)
0x001a 00026 (m1.go:7) MOVQ $0,"".~r1+72(FP)
0x0023 00035 (m1.go:7) MOVQ $0,"".~r1+80(FP)
0x002c 00044 (m1.go:8) MOVQ "".str+56(FP),BX
0x0031 00049 (m1.go:8) MOVQ BX,"".autotmp_0000+32(SP)
0x0036 00054 (m1.go:8) MOVQ "".str+64(FP),BX
0x003b 00059 (m1.go:8) MOVQ BX,"".autotmp_0000+40(SP)
0x0040 00064 (m1.go:8) MOVQ $type.string+0(SB),BX
0x0047 00071 (m1.go:8) MOVQ BX,(SP)
0x004b 00075 (m1.go:8) LEAQ "".autotmp_0000+32(SP),BX
0x0050 00080 (m1.go:8) MOVQ BX,8(SP)
0x0055 00085 (m1.go:8) PCDATA $0,$1
0x0055 00085 (m1.go:8) CALL ,runtime.convT2E(SB)
0x005a 00090 (m1.go:8) MOVQ 16(SP),BX
0x005f 00095 (m1.go:8) MOVQ BX,"".~r1+72(FP)
0x0064 00100 (m1.go:8) MOVQ 24(SP),BX
0x0069 00105 (m1.go:8) MOVQ BX,"".~r1+80(FP)
0x006e 00110 (m1.go:8) ADDQ $48,SP
0x0072 00114 (m1.go:8) RET ,
0x0000 64 48 8b 0c 25 00 00 00 00 48 3b 61 10 77 07 e8 dH..%....H;a.w..
0x0010 00 00 00 00 eb ea 48 83 ec 30 48 c7 44 24 48 00 ......H..0H.D$H.
0x0020 00 00 00 48 c7 44 24 50 00 00 00 00 48 8b 5c 24 ...H.D$P....H.\$
0x0030 38 48 89 5c 24 20 48 8b 5c 24 40 48 89 5c 24 28 8H.\$ H.\$@H.\$(
0x0040 48 8d 1d 00 00 00 00 48 89 1c 24 48 8d 5c 24 20 H......H..$H.\$
0x0050 48 89 5c 24 08 e8 00 00 00 00 48 8b 5c 24 10 48 H.\$......H.\$.H
0x0060 89 5c 24 48 48 8b 5c 24 18 48 89 5c 24 50 48 83 .\$HH.\$.H.\$PH.
0x0070 c4 30 c3 .0.
rel 5+4 t=9 +0
rel 16+4 t=3 runtime.morestack_noctxt+0
rel 67+4 t=7 type.string+0
rel 86+4 t=3 runtime.convT2E+0
"".main t=1 size=576 value=0 args=0x0 locals=0xc8
0x0000 00000 (m1.go:11) TEXT "".main+0(SB),$200-0
0x0000 00000 (m1.go:11) MOVQ (TLS),CX
0x0009 00009 (m1.go:11) LEAQ -72(SP),AX
0x000e 00014 (m1.go:11) CMPQ AX,16(CX)
0x0012 00018 (m1.go:11) JHI ,27
0x0014 00020 (m1.go:11) CALL ,runtime.morestack_noctxt(SB)
0x0019 00025 (m1.go:11) JMP ,0
0x001b 00027 (m1.go:11) SUBQ $200,SP
0x0022 00034 (m1.go:11) FUNCDATA $0,gclocals·0372b889336bbdf612862c172920463d+0(SB)
0x0022 00034 (m1.go:11) FUNCDATA $1,gclocals·28450eade0b9bb02b772f6d627cd685d+0(SB)
0x0022 00034 (m1.go:12) LEAQ go.string."this is obviously a string"+0(SB),BX
0x0029 00041 (m1.go:12) MOVQ (BX),CX
0x002c 00044 (m1.go:12) MOVQ 8(BX),BP
0x0030 00048 (m1.go:12) MOVQ $0,"".~r1+48(SP)
0x0039 00057 (m1.go:12) MOVQ $0,"".~r1+56(SP)
0x0042 00066 (m1.go:12) MOVQ CX,"".str+80(SP)
0x0047 00071 (m1.go:12) MOVQ CX,"".autotmp_0001+160(SP)
0x004f 00079 (m1.go:12) MOVQ BP,"".str+88(SP)
0x0054 00084 (m1.go:12) MOVQ BP,"".autotmp_0001+168(SP)
0x005c 00092 (m1.go:12) MOVQ $type.string+0(SB),BX
0x0063 00099 (m1.go:12) MOVQ BX,(SP)
0x0067 00103 (m1.go:12) LEAQ "".autotmp_0001+160(SP),BX
0x006f 00111 (m1.go:12) MOVQ BX,8(SP)
0x0074 00116 (m1.go:12) PCDATA $0,$1
0x0074 00116 (m1.go:12) CALL ,runtime.convT2E(SB)
0x0079 00121 (m1.go:12) MOVQ 16(SP),CX
0x007e 00126 (m1.go:12) MOVQ 24(SP),AX
0x0083 00131 (m1.go:12) MOVQ CX,"".autotmp_0005+128(SP)
0x008b 00139 (m1.go:12) MOVQ AX,"".autotmp_0005+136(SP)
0x0093 00147 (m1.go:12) MOVQ CX,"".~r1+48(SP)
0x0098 00152 (m1.go:12) MOVQ AX,"".~r1+56(SP)
0x009d 00157 (m1.go:14) MOVQ $type.string+0(SB),BX
0x00a4 00164 (m1.go:14) MOVQ BX,(SP)
0x00a8 00168 (m1.go:14) MOVQ CX,"".int_str+112(SP)
0x00ad 00173 (m1.go:14) MOVQ CX,8(SP)
0x00b2 00178 (m1.go:14) MOVQ AX,"".int_str+120(SP)
0x00b7 00183 (m1.go:14) MOVQ AX,16(SP)
0x00bc 00188 (m1.go:14) PCDATA $0,$0
0x00bc 00188 (m1.go:14) CALL ,runtime.assertE2T2(SB)
0x00c1 00193 (m1.go:14) MOVQ 24(SP),DX
0x00c6 00198 (m1.go:14) MOVQ DX,"".x+64(SP)
0x00cb 00203 (m1.go:14) MOVQ 32(SP),CX
0x00d0 00208 (m1.go:14) MOVQ CX,"".x+72(SP)
0x00d5 00213 (m1.go:14) MOVBQZX 40(SP),BX
0x00da 00218 (m1.go:14) CMPB BL,$0
0x00dd 00221 (m1.go:14) JEQ ,486
0x00e3 00227 (m1.go:15) MOVQ DX,"".str+96(SP)
0x00e8 00232 (m1.go:15) MOVQ CX,"".str+104(SP)
0x00ed 00237 (m1.go:21) LEAQ go.string."Hello, playground"+0(SB),BX
0x00f4 00244 (m1.go:21) MOVQ (BX),BP
0x00f7 00247 (m1.go:21) MOVQ BP,"".autotmp_0004+160(SP)
0x00ff 00255 (m1.go:21) MOVQ 8(BX),BP
0x0103 00259 (m1.go:21) MOVQ BP,"".autotmp_0004+168(SP)
0x010b 00267 (m1.go:21) LEAQ "".autotmp_0003+144(SP),BX
0x0113 00275 (m1.go:21) MOVQ $0,(BX)
0x011a 00282 (m1.go:21) MOVQ $0,8(BX)
0x0122 00290 (m1.go:21) LEAQ "".autotmp_0003+144(SP),BX
0x012a 00298 (m1.go:21) CMPQ BX,$0
0x012e 00302 (m1.go:21) JEQ $1,479
0x0134 00308 (m1.go:21) MOVQ $1,DX
0x013b 00315 (m1.go:21) MOVQ $1,CX
0x0142 00322 (m1.go:21) MOVQ BX,"".autotmp_0006+176(SP)
0x014a 00330 (m1.go:21) MOVQ DX,"".autotmp_0006+184(SP)
0x0152 00338 (m1.go:21) MOVQ CX,"".autotmp_0006+192(SP)
0x015a 00346 (m1.go:21) MOVQ $type.string+0(SB),BX
0x0161 00353 (m1.go:21) MOVQ BX,(SP)
0x0165 00357 (m1.go:21) LEAQ "".autotmp_0004+160(SP),BX
0x016d 00365 (m1.go:21) MOVQ BX,8(SP)
0x0172 00370 (m1.go:21) PCDATA $0,$2
0x0172 00370 (m1.go:21) CALL ,runtime.convT2E(SB)
0x0177 00375 (m1.go:21) MOVQ 16(SP),CX
0x017c 00380 (m1.go:21) MOVQ 24(SP),AX
0x0181 00385 (m1.go:21) MOVQ "".autotmp_0006+176(SP),BX
0x0189 00393 (m1.go:21) MOVQ BX,(SP)
0x018d 00397 (m1.go:21) MOVQ CX,"".autotmp_0005+128(SP)
0x0195 00405 (m1.go:21) MOVQ CX,8(SP)
0x019a 00410 (m1.go:21) MOVQ AX,"".autotmp_0005+136(SP)
0x01a2 00418 (m1.go:21) MOVQ AX,16(SP)
0x01a7 00423 (m1.go:21) PCDATA $0,$2
0x01a7 00423 (m1.go:21) CALL ,runtime.writebarrieriface(SB)
0x01ac 00428 (m1.go:21) MOVQ "".autotmp_0006+176(SP),BX
0x01b4 00436 (m1.go:21) MOVQ BX,(SP)
0x01b8 00440 (m1.go:21) MOVQ "".autotmp_0006+184(SP),BX
0x01c0 00448 (m1.go:21) MOVQ BX,8(SP)
0x01c5 00453 (m1.go:21) MOVQ "".autotmp_0006+192(SP),BX
0x01cd 00461 (m1.go:21) MOVQ BX,16(SP)
0x01d2 00466 (m1.go:21) PCDATA $0,$3
0x01d2 00466 (m1.go:21) CALL ,fmt.Println(SB)
0x01d7 00471 (m1.go:22) ADDQ $200,SP
0x01de 00478 (m1.go:22) RET ,
0x01df 00479 (m1.go:21) MOVL AX,(BX)
0x01e1 00481 (m1.go:21) JMP ,308
0x01e6 00486 (m1.go:17) LEAQ go.string."this is not a drill"+0(SB),BX
0x01ed 00493 (m1.go:17) MOVQ (BX),BP
0x01f0 00496 (m1.go:17) MOVQ BP,"".autotmp_0002+160(SP)
0x01f8 00504 (m1.go:17) MOVQ 8(BX),BP
0x01fc 00508 (m1.go:17) MOVQ BP,"".autotmp_0002+168(SP)
0x0204 00516 (m1.go:17) MOVQ $type.string+0(SB),BX
0x020b 00523 (m1.go:17) MOVQ BX,(SP)
0x020f 00527 (m1.go:17) LEAQ "".autotmp_0002+160(SP),BX
0x0217 00535 (m1.go:17) MOVQ BX,8(SP)
0x021c 00540 (m1.go:17) PCDATA $0,$1
0x021c 00540 (m1.go:17) CALL ,runtime.convT2E(SB)
0x0221 00545 (m1.go:17) LEAQ 16(SP),BX
0x0226 00550 (m1.go:17) LEAQ (SP),BP
0x022a 00554 (m1.go:17) MOVQ BP,DI
0x022d 00557 (m1.go:17) MOVQ BX,SI
0x0230 00560 (m1.go:17) MOVSQ ,
0x0232 00562 (m1.go:17) MOVSQ ,
0x0234 00564 (m1.go:17) PCDATA $0,$1
0x0234 00564 (m1.go:17) CALL ,runtime.gopanic(SB)
0x0239 00569 (m1.go:17) UNDEF ,
0x0000 64 48 8b 0c 25 00 00 00 00 48 8d 44 24 b8 48 3b dH..%....H.D$.H;
0x0010 41 10 77 07 e8 00 00 00 00 eb e5 48 81 ec c8 00 A.w........H....
0x0020 00 00 48 8d 1d 00 00 00 00 48 8b 0b 48 8b 6b 08 ..H......H..H.k.
0x0030 48 c7 44 24 30 00 00 00 00 48 c7 44 24 38 00 00 H.D$0....H.D$8..
0x0040 00 00 48 89 4c 24 50 48 89 8c 24 a0 00 00 00 48 ..H.L$PH..$....H
0x0050 89 6c 24 58 48 89 ac 24 a8 00 00 00 48 8d 1d 00 .l$XH..$....H...
0x0060 00 00 00 48 89 1c 24 48 8d 9c 24 a0 00 00 00 48 ...H..$H..$....H
0x0070 89 5c 24 08 e8 00 00 00 00 48 8b 4c 24 10 48 8b .\$......H.L$.H.
0x0080 44 24 18 48 89 8c 24 80 00 00 00 48 89 84 24 88 D$.H..$....H..$.
0x0090 00 00 00 48 89 4c 24 30 48 89 44 24 38 48 8d 1d ...H.L$0H.D$8H..
0x00a0 00 00 00 00 48 89 1c 24 48 89 4c 24 70 48 89 4c ....H..$H.L$pH.L
0x00b0 24 08 48 89 44 24 78 48 89 44 24 10 e8 00 00 00 $.H.D$xH.D$.....
0x00c0 00 48 8b 54 24 18 48 89 54 24 40 48 8b 4c 24 20 .H.T$.H.T$@H.L$
0x00d0 48 89 4c 24 48 0f b6 5c 24 28 80 fb 00 0f 84 03 H.L$H..\$(......
0x00e0 01 00 00 48 89 54 24 60 48 89 4c 24 68 48 8d 1d ...H.T$`H.L$hH..
0x00f0 00 00 00 00 48 8b 2b 48 89 ac 24 a0 00 00 00 48 ....H.+H..$....H
0x0100 8b 6b 08 48 89 ac 24 a8 00 00 00 48 8d 9c 24 90 .k.H..$....H..$.
0x0110 00 00 00 48 c7 03 00 00 00 00 48 c7 43 08 00 00 ...H......H.C...
0x0120 00 00 48 8d 9c 24 90 00 00 00 48 83 fb 00 0f 84 ..H..$....H.....
0x0130 ab 00 00 00 48 c7 c2 01 00 00 00 48 c7 c1 01 00 ....H......H....
0x0140 00 00 48 89 9c 24 b0 00 00 00 48 89 94 24 b8 00 ..H..$....H..$..
0x0150 00 00 48 89 8c 24 c0 00 00 00 48 8d 1d 00 00 00 ..H..$....H.....
0x0160 00 48 89 1c 24 48 8d 9c 24 a0 00 00 00 48 89 5c .H..$H..$....H.\
0x0170 24 08 e8 00 00 00 00 48 8b 4c 24 10 48 8b 44 24 $......H.L$.H.D$
0x0180 18 48 8b 9c 24 b0 00 00 00 48 89 1c 24 48 89 8c .H..$....H..$H..
0x0190 24 80 00 00 00 48 89 4c 24 08 48 89 84 24 88 00 $....H.L$.H..$..
0x01a0 00 00 48 89 44 24 10 e8 00 00 00 00 48 8b 9c 24 ..H.D$......H..$
0x01b0 b0 00 00 00 48 89 1c 24 48 8b 9c 24 b8 00 00 00 ....H..$H..$....
0x01c0 48 89 5c 24 08 48 8b 9c 24 c0 00 00 00 48 89 5c H.\$.H..$....H.\
0x01d0 24 10 e8 00 00 00 00 48 81 c4 c8 00 00 00 c3 89 $......H........
0x01e0 03 e9 4e ff ff ff 48 8d 1d 00 00 00 00 48 8b 2b ..N...H......H.+
0x01f0 48 89 ac 24 a0 00 00 00 48 8b 6b 08 48 89 ac 24 H..$....H.k.H..$
0x0200 a8 00 00 00 48 8d 1d 00 00 00 00 48 89 1c 24 48 ....H......H..$H
0x0210 8d 9c 24 a0 00 00 00 48 89 5c 24 08 e8 00 00 00 ..$....H.\$.....
0x0220 00 48 8d 5c 24 10 48 8d 2c 24 48 89 ef 48 89 de .H.\$.H.,$H..H..
0x0230 48 a5 48 a5 e8 00 00 00 00 0f 0b H.H........
rel 5+4 t=9 +0
rel 21+4 t=3 runtime.morestack_noctxt+0
rel 37+4 t=7 go.string."this is obviously a string"+0
rel 95+4 t=7 type.string+0
rel 117+4 t=3 runtime.convT2E+0
rel 160+4 t=7 type.string+0
rel 189+4 t=3 runtime.assertE2T2+0
rel 240+4 t=7 go.string."Hello, playground"+0
rel 349+4 t=7 type.string+0
rel 371+4 t=3 runtime.convT2E+0
rel 424+4 t=3 runtime.writebarrieriface+0
rel 467+4 t=3 fmt.Println+0
rel 489+4 t=7 go.string."this is not a drill"+0
rel 519+4 t=7 type.string+0
rel 541+4 t=3 runtime.convT2E+0
rel 565+4 t=3 runtime.gopanic+0
"".init t=1 size=80 value=0 args=0x0 locals=0x0
0x0000 00000 (m1.go:22) TEXT "".init+0(SB),$0-0
0x0000 00000 (m1.go:22) MOVQ (TLS),CX
0x0009 00009 (m1.go:22) CMPQ SP,16(CX)
0x000d 00013 (m1.go:22) JHI ,22
0x000f 00015 (m1.go:22) CALL ,runtime.morestack_noctxt(SB)
0x0014 00020 (m1.go:22) JMP ,0
0x0016 00022 (m1.go:22) NOP ,
0x0016 00022 (m1.go:22) NOP ,
0x0016 00022 (m1.go:22) FUNCDATA $0,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
0x0016 00022 (m1.go:22) FUNCDATA $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
0x0016 00022 (m1.go:22) MOVBQZX "".initdone·+0(SB),BX
0x001d 00029 (m1.go:22) CMPB BL,$0
0x0020 00032 (m1.go:22) JEQ ,54
0x0022 00034 (m1.go:22) MOVBQZX "".initdone·+0(SB),BX
0x0029 00041 (m1.go:22) CMPB BL,$2
0x002c 00044 (m1.go:22) JNE ,47
0x002e 00046 (m1.go:22) RET ,
0x002f 00047 (m1.go:22) PCDATA $0,$0
0x002f 00047 (m1.go:22) CALL ,runtime.throwinit(SB)
0x0034 00052 (m1.go:22) UNDEF ,
0x0036 00054 (m1.go:22) MOVB $1,"".initdone·+0(SB)
0x003d 00061 (m1.go:22) PCDATA $0,$0
0x003d 00061 (m1.go:22) CALL ,fmt.init(SB)
0x0042 00066 (m1.go:22) MOVB $2,"".initdone·+0(SB)
0x0049 00073 (m1.go:22) RET ,
0x0000 64 48 8b 0c 25 00 00 00 00 48 3b 61 10 77 07 e8 dH..%....H;a.w..
0x0010 00 00 00 00 eb ea 0f b6 1d 00 00 00 00 80 fb 00 ................
0x0020 74 14 0f b6 1d 00 00 00 00 80 fb 02 75 01 c3 e8 t...........u...
0x0030 00 00 00 00 0f 0b c6 05 00 00 00 00 01 e8 00 00 ................
0x0040 00 00 c6 05 00 00 00 00 02 c3 ..........
rel 5+4 t=9 +0
rel 16+4 t=3 runtime.morestack_noctxt+0
rel 25+4 t=7 "".initdone·+0
rel 37+4 t=7 "".initdone·+0
rel 48+4 t=3 runtime.throwinit+0
rel 56+4 t=7 "".initdone·+-1
rel 62+4 t=3 fmt.init+0
rel 68+4 t=7 "".initdone·+-1
type..hash.[1]interface {} t=1 dupok size=176 value=0 args=0x20 locals=0x30
0x0000 00000 (m1.go:1) TEXT type..hash.[1]interface {}+0(SB),2,$48-32
0x0000 00000 (m1.go:1) MOVQ (TLS),CX
0x0009 00009 (m1.go:1) CMPQ SP,16(CX)
0x000d 00013 (m1.go:1) JHI ,22
0x000f 00015 (m1.go:1) CALL ,runtime.morestack_noctxt(SB)
0x0014 00020 (m1.go:1) JMP ,0
0x0016 00022 (m1.go:1) SUBQ $48,SP
0x001a 00026 (m1.go:1) MOVQ "".h+72(FP),CX
0x001f 00031 (m1.go:1) FUNCDATA $0,gclocals·2dc77d960dd3e4b3de2361f9cbd75783+0(SB)
0x001f 00031 (m1.go:1) FUNCDATA $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
0x001f 00031 (m1.go:1) MOVQ $0,AX
0x0021 00033 (m1.go:1) MOVQ $1,"".autotmp_0014+32(SP)
0x002a 00042 (m1.go:1) MOVQ "".autotmp_0014+32(SP),BP
0x002f 00047 (m1.go:1) CMPQ AX,BP
0x0032 00050 (m1.go:1) JGE $0,153
0x0034 00052 (m1.go:1) MOVQ AX,"".autotmp_0013+40(SP)
0x0039 00057 (m1.go:1) MOVQ AX,BP
0x003c 00060 (m1.go:1) MOVQ CX,AX
0x003f 00063 (m1.go:1) ROLQ $3,AX
0x0043 00067 (m1.go:1) MOVQ $23344194077549503,BX
0x004d 00077 (m1.go:1) IMULQ AX,BX
0x0051 00081 (m1.go:1) MOVQ BX,AX
0x0054 00084 (m1.go:1) MOVQ "".p+56(FP),BX
0x0059 00089 (m1.go:1) CMPQ BX,$0
0x005d 00093 (m1.go:1) JEQ $1,163
0x005f 00095 (m1.go:1) IMULQ $16,BP
0x0063 00099 (m1.go:1) ADDQ BP,BX
0x0066 00102 (m1.go:1) MOVQ BX,(SP)
0x006a 00106 (m1.go:1) MOVQ $16,8(SP)
0x0073 00115 (m1.go:1) MOVQ AX,"".h+72(FP)
0x0078 00120 (m1.go:1) MOVQ AX,16(SP)
0x007d 00125 (m1.go:1) PCDATA $0,$0
0x007d 00125 (m1.go:1) CALL ,runtime.nilinterhash(SB)
0x0082 00130 (m1.go:1) MOVQ 24(SP),CX
0x0087 00135 (m1.go:1) NOP ,
0x0087 00135 (m1.go:1) MOVQ "".autotmp_0013+40(SP),AX
0x008c 00140 (m1.go:1) INCQ ,AX
0x008f 00143 (m1.go:1) MOVQ "".autotmp_0014+32(SP),BP
0x0094 00148 (m1.go:1) CMPQ AX,BP
0x0097 00151 (m1.go:1) JLT $0,52
0x0099 00153 (m1.go:1) MOVQ CX,"".~r3+80(FP)
0x009e 00158 (m1.go:1) ADDQ $48,SP
0x00a2 00162 (m1.go:1) RET ,
0x00a3 00163 (m1.go:1) MOVL AX,(BX)
0x00a5 00165 (m1.go:1) JMP ,95
0x0000 64 48 8b 0c 25 00 00 00 00 48 3b 61 10 77 07 e8 dH..%....H;a.w..
0x0010 00 00 00 00 eb ea 48 83 ec 30 48 8b 4c 24 48 31 ......H..0H.L$H1
0x0020 c0 48 c7 44 24 20 01 00 00 00 48 8b 6c 24 20 48 .H.D$ ....H.l$ H
0x0030 39 e8 7d 65 48 89 44 24 28 48 89 c5 48 89 c8 48 9.}eH.D$(H..H..H
0x0040 c1 c0 03 48 bb bf 63 8f bb 6b ef 52 00 48 0f af ...H..c..k.R.H..
0x0050 d8 48 89 d8 48 8b 5c 24 38 48 83 fb 00 74 44 48 .H..H.\$8H...tDH
0x0060 6b ed 10 48 01 eb 48 89 1c 24 48 c7 44 24 08 10 k..H..H..$H.D$..
0x0070 00 00 00 48 89 44 24 48 48 89 44 24 10 e8 00 00 ...H.D$HH.D$....
0x0080 00 00 48 8b 4c 24 18 48 8b 44 24 28 48 ff c0 48 ..H.L$.H.D$(H..H
0x0090 8b 6c 24 20 48 39 e8 7c 9b 48 89 4c 24 50 48 83 .l$ H9.|.H.L$PH.
0x00a0 c4 30 c3 89 03 eb b8 .0.....
rel 5+4 t=9 +0
rel 16+4 t=3 runtime.morestack_noctxt+0
rel 126+4 t=3 runtime.nilinterhash+0
type..eq.[1]interface {} t=1 dupok size=240 value=0 args=0x20 locals=0x58
0x0000 00000 (m1.go:1) TEXT type..eq.[1]interface {}+0(SB),2,$88-32
0x0000 00000 (m1.go:1) MOVQ (TLS),CX
0x0009 00009 (m1.go:1) CMPQ SP,16(CX)
0x000d 00013 (m1.go:1) JHI ,22
0x000f 00015 (m1.go:1) CALL ,runtime.morestack_noctxt(SB)
0x0014 00020 (m1.go:1) JMP ,0
0x0016 00022 (m1.go:1) SUBQ $88,SP
0x001a 00026 (m1.go:1) FUNCDATA $0,gclocals·9c703c5c7b9c1932c840b69f8ebce236+0(SB)
0x001a 00026 (m1.go:1) FUNCDATA $1,gclocals·44568aa369055d8938d809aa5d80843b+0(SB)
0x001a 00026 (m1.go:1) MOVQ $0,AX
0x001c 00028 (m1.go:1) MOVQ $1,"".autotmp_0016+40(SP)
0x0025 00037 (m1.go:1) MOVQ "".autotmp_0016+40(SP),BP
0x002a 00042 (m1.go:1) CMPQ AX,BP
0x002d 00045 (m1.go:1) JGE $0,197
0x0033 00051 (m1.go:1) MOVQ AX,"".autotmp_0015+48(SP)
0x0038 00056 (m1.go:1) MOVQ "".q+104(FP),BX
0x003d 00061 (m1.go:1) CMPQ BX,$0
0x0041 00065 (m1.go:1) JEQ $1,221
0x0047 00071 (m1.go:1) MOVQ AX,BP
0x004a 00074 (m1.go:1) IMULQ $16,BP
0x004e 00078 (m1.go:1) ADDQ BP,BX
0x0051 00081 (m1.go:1) MOVQ (BX),CX
0x0054 00084 (m1.go:1) MOVQ 8(BX),SI
0x0058 00088 (m1.go:1) MOVQ "".p+96(FP),BX
0x005d 00093 (m1.go:1) CMPQ BX,$0
0x0061 00097 (m1.go:1) JEQ $1,217
0x0063 00099 (m1.go:1) MOVQ AX,BP
0x0066 00102 (m1.go:1) IMULQ $16,BP
0x006a 00106 (m1.go:1) ADDQ BP,BX
0x006d 00109 (m1.go:1) MOVQ (BX),AX
0x0070 00112 (m1.go:1) MOVQ 8(BX),DX
0x0074 00116 (m1.go:1) CMPQ AX,CX
0x0077 00119 (m1.go:1) JNE ,207
0x0079 00121 (m1.go:1) MOVQ AX,"".autotmp_0018+56(SP)
0x007e 00126 (m1.go:1) MOVQ AX,(SP)
0x0082 00130 (m1.go:1) MOVQ DX,"".autotmp_0018+64(SP)
0x0087 00135 (m1.go:1) MOVQ DX,8(SP)
0x008c 00140 (m1.go:1) MOVQ CX,"".autotmp_0017+72(SP)
0x0091 00145 (m1.go:1) MOVQ CX,16(SP)
0x0096 00150 (m1.go:1) MOVQ SI,"".autotmp_0017+80(SP)
0x009b 00155 (m1.go:1) MOVQ SI,24(SP)
0x00a0 00160 (m1.go:1) PCDATA $0,$0
0x00a0 00160 (m1.go:1) CALL ,runtime.efaceeq(SB)
0x00a5 00165 (m1.go:1) MOVBQZX 32(SP),BX
0x00aa 00170 (m1.go:1) CMPB BL,$0
0x00ad 00173 (m1.go:1) JEQ ,207
0x00af 00175 (m1.go:1) MOVQ "".autotmp_0015+48(SP),AX
0x00b4 00180 (m1.go:1) INCQ ,AX
0x00b7 00183 (m1.go:1) MOVQ "".autotmp_0016+40(SP),BP
0x00bc 00188 (m1.go:1) CMPQ AX,BP
0x00bf 00191 (m1.go:1) JLT $0,51
0x00c5 00197 (m1.go:1) MOVB $1,"".~r3+120(FP)
0x00ca 00202 (m1.go:1) ADDQ $88,SP
0x00ce 00206 (m1.go:1) RET ,
0x00cf 00207 (m1.go:1) MOVB $0,"".~r3+120(FP)
0x00d4 00212 (m1.go:1) ADDQ $88,SP
0x00d8 00216 (m1.go:1) RET ,
0x00d9 00217 (m1.go:1) MOVL AX,(BX)
0x00db 00219 (m1.go:1) JMP ,99
0x00dd 00221 (m1.go:1) MOVL AX,(BX)
0x00df 00223 (m1.go:1) JMP ,71
0x0000 64 48 8b 0c 25 00 00 00 00 48 3b 61 10 77 07 e8 dH..%....H;a.w..
0x0010 00 00 00 00 eb ea 48 83 ec 58 31 c0 48 c7 44 24 ......H..X1.H.D$
0x0020 28 01 00 00 00 48 8b 6c 24 28 48 39 e8 0f 8d 92 (....H.l$(H9....
0x0030 00 00 00 48 89 44 24 30 48 8b 5c 24 68 48 83 fb ...H.D$0H.\$hH..
0x0040 00 0f 84 96 00 00 00 48 89 c5 48 6b ed 10 48 01 .......H..Hk..H.
0x0050 eb 48 8b 0b 48 8b 73 08 48 8b 5c 24 60 48 83 fb .H..H.s.H.\$`H..
0x0060 00 74 76 48 89 c5 48 6b ed 10 48 01 eb 48 8b 03 .tvH..Hk..H..H..
0x0070 48 8b 53 08 48 39 c8 75 56 48 89 44 24 38 48 89 H.S.H9.uVH.D$8H.
0x0080 04 24 48 89 54 24 40 48 89 54 24 08 48 89 4c 24 .$H.T$@H.T$.H.L$
0x0090 48 48 89 4c 24 10 48 89 74 24 50 48 89 74 24 18 HH.L$.H.t$PH.t$.
0x00a0 e8 00 00 00 00 0f b6 5c 24 20 80 fb 00 74 20 48 .......\$ ...t H
0x00b0 8b 44 24 30 48 ff c0 48 8b 6c 24 28 48 39 e8 0f .D$0H..H.l$(H9..
0x00c0 8c 6e ff ff ff c6 44 24 78 01 48 83 c4 58 c3 c6 .n....D$x.H..X..
0x00d0 44 24 78 00 48 83 c4 58 c3 89 03 eb 86 89 03 e9 D$x.H..X........
0x00e0 63 ff ff ff c...
rel 5+4 t=9 +0
rel 16+4 t=3 runtime.morestack_noctxt+0
rel 161+4 t=3 runtime.efaceeq+0
gclocals·3280bececceccd33cb74587feedb1f9f t=7 dupok size=8 value=0
0x0000 01 00 00 00 00 00 00 00 ........
gclocals·06cab038d51064a089bda21fa03e00f7 t=7 dupok size=12 value=0
0x0000 01 00 00 00 04 00 00 00 02 00 00 00 ............
gclocals·8d600a433c6aaa81a4fe446d95c5546b t=7 dupok size=16 value=0
0x0000 02 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 ................
gclocals·771157e6981a4b26b64a947269cc9ecb t=7 dupok size=16 value=0
0x0000 02 00 00 00 08 00 00 00 02 00 00 00 02 00 00 00 ................
go.string."this is obviously a string" t=7 dupok size=48 value=0
0x0000 00 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 ................
0x0010 74 68 69 73 20 69 73 20 6f 62 76 69 6f 75 73 6c this is obviousl
0x0020 79 20 61 20 73 74 72 69 6e 67 00 y a string.
rel 0+8 t=1 go.string."this is obviously a string"+16
go.string."this is not a drill" t=7 dupok size=40 value=0
0x0000 00 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 ................
0x0010 74 68 69 73 20 69 73 20 6e 6f 74 20 61 20 64 72 this is not a dr
0x0020 69 6c 6c 00 ill.
rel 0+8 t=1 go.string."this is not a drill"+16
go.string."Hello, playground" t=7 dupok size=40 value=0
0x0000 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 ................
0x0010 48 65 6c 6c 6f 2c 20 70 6c 61 79 67 72 6f 75 6e Hello, playgroun
0x0020 64 00 d.
rel 0+8 t=1 go.string."Hello, playground"+16
gclocals·28450eade0b9bb02b772f6d627cd685d t=7 dupok size=40 value=0
0x0000 04 00 00 00 26 00 00 00 00 00 00 00 00 00 00 00 ....&...........
0x0010 00 00 00 20 00 00 00 00 00 00 00 2f 02 00 00 00 ... ......./....
0x0020 00 00 00 2f 00 00 00 00 .../....
gclocals·0372b889336bbdf612862c172920463d t=7 dupok size=8 value=0
0x0000 04 00 00 00 00 00 00 00 ........
gclocals·3280bececceccd33cb74587feedb1f9f t=7 dupok size=8 value=0
0x0000 01 00 00 00 00 00 00 00 ........
gclocals·3280bececceccd33cb74587feedb1f9f t=7 dupok size=8 value=0
0x0000 01 00 00 00 00 00 00 00 ........
"".initdone· t=22 size=1 value=0
"".takesString·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 "".takesString+0
"".returnInterface·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 "".returnInterface+0
runtime.convT2E·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.convT2E+0
runtime.throwreturn·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.throwreturn+0
"".main·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 "".main+0
runtime.assertE2T2·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.assertE2T2+0
runtime.gopanic·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.gopanic+0
runtime.writebarrieriface·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.writebarrieriface+0
fmt.Println·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 fmt.Println+0
"".init·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 "".init+0
runtime.throwinit·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.throwinit+0
fmt.init·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 fmt.init+0
runtime.gcbits.0xcc000000000000000000000000000000 t=7 dupok size=16 value=0
0x0000 cc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
go.string."interface {}" t=7 dupok size=32 value=0
0x0000 00 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 ................
0x0010 69 6e 74 65 72 66 61 63 65 20 7b 7d 00 interface {}.
rel 0+8 t=1 go.string."interface {}"+16
type.interface {} t=7 dupok size=96 value=0
0x0000 10 00 00 00 00 00 00 00 e7 57 a0 18 00 08 08 14 .........W......
0x0010 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 16+8 t=1 runtime.algarray+256
rel 24+8 t=1 runtime.gcbits.0xcc000000000000000000000000000000+0
rel 40+8 t=1 go.string."interface {}"+0
rel 56+8 t=1 go.weak.type.*interface {}+0
rel 64+8 t=1 runtime.zerovalue+0
rel 72+8 t=1 type.interface {}+96
runtime.gcbits.0x48844400000000000000000000000000 t=7 dupok size=16 value=0
0x0000 48 84 44 00 00 00 00 00 00 00 00 00 00 00 00 00 H.D.............
go.string."[]interface {}" t=7 dupok size=32 value=0
0x0000 00 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 ................
0x0010 5b 5d 69 6e 74 65 72 66 61 63 65 20 7b 7d 00 []interface {}.
rel 0+8 t=1 go.string."[]interface {}"+16
type.[]interface {} t=7 dupok size=80 value=0
0x0000 18 00 00 00 00 00 00 00 70 93 ea 2f 00 08 08 17 ........p../....
0x0010 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 16+8 t=1 runtime.algarray+272
rel 24+8 t=1 runtime.gcbits.0x48844400000000000000000000000000+0
rel 40+8 t=1 go.string."[]interface {}"+0
rel 56+8 t=1 go.weak.type.*[]interface {}+0
rel 64+8 t=1 runtime.zerovalue+0
rel 72+8 t=1 type.interface {}+0
go.typelink.[]interface {}/[]interface {} t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type.[]interface {}+0
gclocals·3280bececceccd33cb74587feedb1f9f t=7 dupok size=8 value=0
0x0000 01 00 00 00 00 00 00 00 ........
gclocals·2dc77d960dd3e4b3de2361f9cbd75783 t=7 dupok size=12 value=0
0x0000 01 00 00 00 08 00 00 00 16 00 00 00 ............
gclocals·44568aa369055d8938d809aa5d80843b t=7 dupok size=12 value=0
0x0000 01 00 00 00 08 00 00 00 00 00 00 00 ............
gclocals·9c703c5c7b9c1932c840b69f8ebce236 t=7 dupok size=12 value=0
0x0000 01 00 00 00 08 00 00 00 1a 00 00 00 ............
type..hashfunc.[1]interface {} t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type..hash.[1]interface {}+0
type..eqfunc.[1]interface {} t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type..eq.[1]interface {}+0
type..alg.[1]interface {} t=7 dupok size=16 value=0
0x0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 0+8 t=1 type..hashfunc.[1]interface {}+0
rel 8+8 t=1 type..eqfunc.[1]interface {}+0
go.string."[1]interface {}" t=7 dupok size=32 value=0
0x0000 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 ................
0x0010 5b 31 5d 69 6e 74 65 72 66 61 63 65 20 7b 7d 00 [1]interface {}.
rel 0+8 t=1 go.string."[1]interface {}"+16
type.[1]interface {} t=7 dupok size=96 value=0
0x0000 10 00 00 00 00 00 00 00 50 91 5b fa 00 08 08 11 ........P.[.....
0x0010 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0050 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................
rel 16+8 t=1 type..alg.[1]interface {}+0
rel 24+8 t=1 runtime.gcbits.0xcc000000000000000000000000000000+0
rel 40+8 t=1 go.string."[1]interface {}"+0
rel 56+8 t=1 go.weak.type.*[1]interface {}+0
rel 64+8 t=1 runtime.zerovalue+0
rel 72+8 t=1 type.interface {}+0
rel 80+8 t=1 type.[]interface {}+0
go.typelink.[1]interface {}/[1]interface {} t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type.[1]interface {}+0
runtime.gcbits.0x88000000000000000000000000000000 t=7 dupok size=16 value=0
0x0000 88 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
go.string."*[1]interface {}" t=7 dupok size=40 value=0
0x0000 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 ................
0x0010 2a 5b 31 5d 69 6e 74 65 72 66 61 63 65 20 7b 7d *[1]interface {}
0x0020 00 .
rel 0+8 t=1 go.string."*[1]interface {}"+16
type.*[1]interface {} t=7 dupok size=80 value=0
0x0000 08 00 00 00 00 00 00 00 bf 03 a8 35 00 08 08 36 ...........5...6
0x0010 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 16+8 t=1 runtime.algarray+80
rel 24+8 t=1 runtime.gcbits.0x88000000000000000000000000000000+0
rel 40+8 t=1 go.string."*[1]interface {}"+0
rel 56+8 t=1 go.weak.type.**[1]interface {}+0
rel 64+8 t=1 runtime.zerovalue+0
rel 72+8 t=1 type.[1]interface {}+0
go.string."runtime" t=7 dupok size=24 value=0
0x0000 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 ................
0x0010 72 75 6e 74 69 6d 65 00 runtime.
rel 0+8 t=1 go.string."runtime"+16
go.importpath.runtime. t=7 dupok size=16 value=0
0x0000 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 ................
rel 0+8 t=1 go.string."runtime"+16
go.string."fmt" t=7 dupok size=24 value=0
0x0000 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 ................
0x0010 66 6d 74 00 fmt.
rel 0+8 t=1 go.string."fmt"+16
go.importpath.fmt. t=7 dupok size=16 value=0
0x0000 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 ................
rel 0+8 t=1 go.string."fmt"+16
type..hash.[1]interface {}·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type..hash.[1]interface {}+0
runtime.nilinterhash·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.nilinterhash+0
type..eq.[1]interface {}·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type..eq.[1]interface {}+0
runtime.efaceeq·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.efaceeq+0
runtime.zerovalue t=7 dupok size=0 value=0
package main
import "fmt"
func takesString(str string) {}
func returnInterface(str string) interface{} {
return str
}
func main() {
int_str := returnInterface("this is obviously a string")
switch t := int_str.(type) {
case string:
takesString(t)
default:
panic("this is not a drill")
}
fmt.Println("Hello, playground")
}
"".takesString t=1 size=16 value=0 args=0x10 locals=0x0
0x0000 00000 (m2.go:5) TEXT "".takesString+0(SB),4,$0-16
0x0000 00000 (m2.go:5) NOP ,
0x0000 00000 (m2.go:5) NOP ,
0x0000 00000 (m2.go:5) FUNCDATA $0,gclocals·06cab038d51064a089bda21fa03e00f7+0(SB)
0x0000 00000 (m2.go:5) FUNCDATA $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
0x0000 00000 (m2.go:5) RET ,
0x0000 c3 .
"".returnInterface t=1 size=128 value=0 args=0x20 locals=0x30
0x0000 00000 (m2.go:7) TEXT "".returnInterface+0(SB),$48-32
0x0000 00000 (m2.go:7) MOVQ (TLS),CX
0x0009 00009 (m2.go:7) CMPQ SP,16(CX)
0x000d 00013 (m2.go:7) JHI ,22
0x000f 00015 (m2.go:7) CALL ,runtime.morestack_noctxt(SB)
0x0014 00020 (m2.go:7) JMP ,0
0x0016 00022 (m2.go:7) SUBQ $48,SP
0x001a 00026 (m2.go:7) FUNCDATA $0,gclocals·771157e6981a4b26b64a947269cc9ecb+0(SB)
0x001a 00026 (m2.go:7) FUNCDATA $1,gclocals·8d600a433c6aaa81a4fe446d95c5546b+0(SB)
0x001a 00026 (m2.go:7) MOVQ $0,"".~r1+72(FP)
0x0023 00035 (m2.go:7) MOVQ $0,"".~r1+80(FP)
0x002c 00044 (m2.go:8) MOVQ "".str+56(FP),BX
0x0031 00049 (m2.go:8) MOVQ BX,"".autotmp_0000+32(SP)
0x0036 00054 (m2.go:8) MOVQ "".str+64(FP),BX
0x003b 00059 (m2.go:8) MOVQ BX,"".autotmp_0000+40(SP)
0x0040 00064 (m2.go:8) MOVQ $type.string+0(SB),BX
0x0047 00071 (m2.go:8) MOVQ BX,(SP)
0x004b 00075 (m2.go:8) LEAQ "".autotmp_0000+32(SP),BX
0x0050 00080 (m2.go:8) MOVQ BX,8(SP)
0x0055 00085 (m2.go:8) PCDATA $0,$1
0x0055 00085 (m2.go:8) CALL ,runtime.convT2E(SB)
0x005a 00090 (m2.go:8) MOVQ 16(SP),BX
0x005f 00095 (m2.go:8) MOVQ BX,"".~r1+72(FP)
0x0064 00100 (m2.go:8) MOVQ 24(SP),BX
0x0069 00105 (m2.go:8) MOVQ BX,"".~r1+80(FP)
0x006e 00110 (m2.go:8) ADDQ $48,SP
0x0072 00114 (m2.go:8) RET ,
0x0000 64 48 8b 0c 25 00 00 00 00 48 3b 61 10 77 07 e8 dH..%....H;a.w..
0x0010 00 00 00 00 eb ea 48 83 ec 30 48 c7 44 24 48 00 ......H..0H.D$H.
0x0020 00 00 00 48 c7 44 24 50 00 00 00 00 48 8b 5c 24 ...H.D$P....H.\$
0x0030 38 48 89 5c 24 20 48 8b 5c 24 40 48 89 5c 24 28 8H.\$ H.\$@H.\$(
0x0040 48 8d 1d 00 00 00 00 48 89 1c 24 48 8d 5c 24 20 H......H..$H.\$
0x0050 48 89 5c 24 08 e8 00 00 00 00 48 8b 5c 24 10 48 H.\$......H.\$.H
0x0060 89 5c 24 48 48 8b 5c 24 18 48 89 5c 24 50 48 83 .\$HH.\$.H.\$PH.
0x0070 c4 30 c3 .0.
rel 5+4 t=9 +0
rel 16+4 t=3 runtime.morestack_noctxt+0
rel 67+4 t=7 type.string+0
rel 86+4 t=3 runtime.convT2E+0
"".main t=1 size=656 value=0 args=0x0 locals=0xd8
0x0000 00000 (m2.go:11) TEXT "".main+0(SB),$216-0
0x0000 00000 (m2.go:11) MOVQ (TLS),CX
0x0009 00009 (m2.go:11) LEAQ -88(SP),AX
0x000e 00014 (m2.go:11) CMPQ AX,16(CX)
0x0012 00018 (m2.go:11) JHI ,27
0x0014 00020 (m2.go:11) CALL ,runtime.morestack_noctxt(SB)
0x0019 00025 (m2.go:11) JMP ,0
0x001b 00027 (m2.go:11) SUBQ $216,SP
0x0022 00034 (m2.go:11) FUNCDATA $0,gclocals·7c13896baab3273e10662a9a37b348ce+0(SB)
0x0022 00034 (m2.go:11) FUNCDATA $1,gclocals·5b2a24c2060902933b5475ebe99da051+0(SB)
0x0022 00034 (m2.go:12) LEAQ go.string."this is obviously a string"+0(SB),BX
0x0029 00041 (m2.go:12) MOVQ (BX),CX
0x002c 00044 (m2.go:12) MOVQ 8(BX),BP
0x0030 00048 (m2.go:12) MOVQ $0,"".~r1+48(SP)
0x0039 00057 (m2.go:12) MOVQ $0,"".~r1+56(SP)
0x0042 00066 (m2.go:12) MOVQ CX,"".str+96(SP)
0x0047 00071 (m2.go:12) MOVQ CX,"".autotmp_0001+176(SP)
0x004f 00079 (m2.go:12) MOVQ BP,"".str+104(SP)
0x0054 00084 (m2.go:12) MOVQ BP,"".autotmp_0001+184(SP)
0x005c 00092 (m2.go:12) MOVQ $type.string+0(SB),BX
0x0063 00099 (m2.go:12) MOVQ BX,(SP)
0x0067 00103 (m2.go:12) LEAQ "".autotmp_0001+176(SP),BX
0x006f 00111 (m2.go:12) MOVQ BX,8(SP)
0x0074 00116 (m2.go:12) PCDATA $0,$1
0x0074 00116 (m2.go:12) CALL ,runtime.convT2E(SB)
0x0079 00121 (m2.go:12) MOVQ 16(SP),CX
0x007e 00126 (m2.go:12) MOVQ 24(SP),AX
0x0083 00131 (m2.go:12) MOVQ CX,"".~r1+48(SP)
0x0088 00136 (m2.go:12) MOVQ AX,"".~r1+56(SP)
0x008d 00141 (m2.go:13) MOVQ CX,"".int_str+128(SP)
0x0095 00149 (m2.go:13) MOVQ AX,"".int_str+136(SP)
0x009d 00157 (m2.go:13) MOVQ CX,"".autotmp_0005+144(SP)
0x00a5 00165 (m2.go:13) MOVQ CX,(SP)
0x00a9 00169 (m2.go:13) MOVQ AX,"".autotmp_0005+152(SP)
0x00b1 00177 (m2.go:13) MOVQ AX,8(SP)
0x00b6 00182 (m2.go:13) PCDATA $0,$2
0x00b6 00182 (m2.go:13) CALL ,runtime.efacethash(SB)
0x00bb 00187 (m2.go:13) MOVL 16(SP),BX
0x00bf 00191 (m2.go:13) CMPL BX,$3774831796
0x00c5 00197 (m2.go:13) JNE ,538
0x00cb 00203 (m2.go:13) MOVQ $type.string+0(SB),BX
0x00d2 00210 (m2.go:13) MOVQ BX,(SP)
0x00d6 00214 (m2.go:13) MOVQ "".autotmp_0006+144(SP),BX
0x00de 00222 (m2.go:13) MOVQ BX,8(SP)
0x00e3 00227 (m2.go:13) MOVQ "".autotmp_0006+152(SP),BX
0x00eb 00235 (m2.go:13) MOVQ BX,16(SP)
0x00f0 00240 (m2.go:13) PCDATA $0,$2
0x00f0 00240 (m2.go:13) CALL ,runtime.assertE2T2(SB)
0x00f5 00245 (m2.go:13) MOVQ 24(SP),DX
0x00fa 00250 (m2.go:13) MOVQ DX,"".t+80(SP)
0x00ff 00255 (m2.go:13) MOVQ 32(SP),CX
0x0104 00260 (m2.go:13) MOVQ CX,"".t+88(SP)
0x0109 00265 (m2.go:13) MOVBQZX 40(SP),BX
0x010e 00270 (m2.go:13) CMPB BL,$0
0x0111 00273 (m2.go:13) JEQ ,538
0x0117 00279 (m2.go:15) MOVQ DX,"".str+112(SP)
0x011c 00284 (m2.go:15) MOVQ CX,"".str+120(SP)
0x0121 00289 (m2.go:20) LEAQ go.string."Hello, playground"+0(SB),BX
0x0128 00296 (m2.go:20) MOVQ (BX),BP
0x012b 00299 (m2.go:20) MOVQ BP,"".autotmp_0004+176(SP)
0x0133 00307 (m2.go:20) MOVQ 8(BX),BP
0x0137 00311 (m2.go:20) MOVQ BP,"".autotmp_0004+184(SP)
0x013f 00319 (m2.go:20) LEAQ "".autotmp_0003+160(SP),BX
0x0147 00327 (m2.go:20) MOVQ $0,(BX)
0x014e 00334 (m2.go:20) MOVQ $0,8(BX)
0x0156 00342 (m2.go:20) LEAQ "".autotmp_0003+160(SP),BX
0x015e 00350 (m2.go:20) CMPQ BX,$0
0x0162 00354 (m2.go:20) JEQ $1,531
0x0168 00360 (m2.go:20) MOVQ $1,DX
0x016f 00367 (m2.go:20) MOVQ $1,CX
0x0176 00374 (m2.go:20) MOVQ BX,"".autotmp_0009+192(SP)
0x017e 00382 (m2.go:20) MOVQ DX,"".autotmp_0009+200(SP)
0x0186 00390 (m2.go:20) MOVQ CX,"".autotmp_0009+208(SP)
0x018e 00398 (m2.go:20) MOVQ $type.string+0(SB),BX
0x0195 00405 (m2.go:20) MOVQ BX,(SP)
0x0199 00409 (m2.go:20) LEAQ "".autotmp_0004+176(SP),BX
0x01a1 00417 (m2.go:20) MOVQ BX,8(SP)
0x01a6 00422 (m2.go:20) PCDATA $0,$3
0x01a6 00422 (m2.go:20) CALL ,runtime.convT2E(SB)
0x01ab 00427 (m2.go:20) MOVQ 16(SP),CX
0x01b0 00432 (m2.go:20) MOVQ 24(SP),AX
0x01b5 00437 (m2.go:20) MOVQ "".autotmp_0009+192(SP),BX
0x01bd 00445 (m2.go:20) MOVQ BX,(SP)
0x01c1 00449 (m2.go:20) MOVQ CX,"".autotmp_0005+144(SP)
0x01c9 00457 (m2.go:20) MOVQ CX,8(SP)
0x01ce 00462 (m2.go:20) MOVQ AX,"".autotmp_0005+152(SP)
0x01d6 00470 (m2.go:20) MOVQ AX,16(SP)
0x01db 00475 (m2.go:20) PCDATA $0,$3
0x01db 00475 (m2.go:20) CALL ,runtime.writebarrieriface(SB)
0x01e0 00480 (m2.go:20) MOVQ "".autotmp_0009+192(SP),BX
0x01e8 00488 (m2.go:20) MOVQ BX,(SP)
0x01ec 00492 (m2.go:20) MOVQ "".autotmp_0009+200(SP),BX
0x01f4 00500 (m2.go:20) MOVQ BX,8(SP)
0x01f9 00505 (m2.go:20) MOVQ "".autotmp_0009+208(SP),BX
0x0201 00513 (m2.go:20) MOVQ BX,16(SP)
0x0206 00518 (m2.go:20) PCDATA $0,$4
0x0206 00518 (m2.go:20) CALL ,fmt.Println(SB)
0x020b 00523 (m2.go:21) ADDQ $216,SP
0x0212 00530 (m2.go:21) RET ,
0x0213 00531 (m2.go:20) MOVL AX,(BX)
0x0215 00533 (m2.go:20) JMP ,360
0x021a 00538 (m2.go:16) MOVQ "".autotmp_0006+144(SP),BX
0x0222 00546 (m2.go:16) MOVQ BX,"".t+64(SP)
0x0227 00551 (m2.go:16) MOVQ "".autotmp_0006+152(SP),BX
0x022f 00559 (m2.go:16) MOVQ BX,"".t+72(SP)
0x0234 00564 (m2.go:17) LEAQ go.string."this is not a drill"+0(SB),BX
0x023b 00571 (m2.go:17) MOVQ (BX),BP
0x023e 00574 (m2.go:17) MOVQ BP,"".autotmp_0002+176(SP)
0x0246 00582 (m2.go:17) MOVQ 8(BX),BP
0x024a 00586 (m2.go:17) MOVQ BP,"".autotmp_0002+184(SP)
0x0252 00594 (m2.go:17) MOVQ $type.string+0(SB),BX
0x0259 00601 (m2.go:17) MOVQ BX,(SP)
0x025d 00605 (m2.go:17) LEAQ "".autotmp_0002+176(SP),BX
0x0265 00613 (m2.go:17) MOVQ BX,8(SP)
0x026a 00618 (m2.go:17) PCDATA $0,$1
0x026a 00618 (m2.go:17) CALL ,runtime.convT2E(SB)
0x026f 00623 (m2.go:17) LEAQ 16(SP),BX
0x0274 00628 (m2.go:17) LEAQ (SP),BP
0x0278 00632 (m2.go:17) MOVQ BP,DI
0x027b 00635 (m2.go:17) MOVQ BX,SI
0x027e 00638 (m2.go:17) MOVSQ ,
0x0280 00640 (m2.go:17) MOVSQ ,
0x0282 00642 (m2.go:17) PCDATA $0,$1
0x0282 00642 (m2.go:17) CALL ,runtime.gopanic(SB)
0x0287 00647 (m2.go:17) UNDEF ,
0x0000 64 48 8b 0c 25 00 00 00 00 48 8d 44 24 a8 48 3b dH..%....H.D$.H;
0x0010 41 10 77 07 e8 00 00 00 00 eb e5 48 81 ec d8 00 A.w........H....
0x0020 00 00 48 8d 1d 00 00 00 00 48 8b 0b 48 8b 6b 08 ..H......H..H.k.
0x0030 48 c7 44 24 30 00 00 00 00 48 c7 44 24 38 00 00 H.D$0....H.D$8..
0x0040 00 00 48 89 4c 24 60 48 89 8c 24 b0 00 00 00 48 ..H.L$`H..$....H
0x0050 89 6c 24 68 48 89 ac 24 b8 00 00 00 48 8d 1d 00 .l$hH..$....H...
0x0060 00 00 00 48 89 1c 24 48 8d 9c 24 b0 00 00 00 48 ...H..$H..$....H
0x0070 89 5c 24 08 e8 00 00 00 00 48 8b 4c 24 10 48 8b .\$......H.L$.H.
0x0080 44 24 18 48 89 4c 24 30 48 89 44 24 38 48 89 8c D$.H.L$0H.D$8H..
0x0090 24 80 00 00 00 48 89 84 24 88 00 00 00 48 89 8c $....H..$....H..
0x00a0 24 90 00 00 00 48 89 0c 24 48 89 84 24 98 00 00 $....H..$H..$...
0x00b0 00 48 89 44 24 08 e8 00 00 00 00 8b 5c 24 10 81 .H.D$.......\$..
0x00c0 fb b4 5c ff e0 0f 85 4f 01 00 00 48 8d 1d 00 00 ..\....O...H....
0x00d0 00 00 48 89 1c 24 48 8b 9c 24 90 00 00 00 48 89 ..H..$H..$....H.
0x00e0 5c 24 08 48 8b 9c 24 98 00 00 00 48 89 5c 24 10 \$.H..$....H.\$.
0x00f0 e8 00 00 00 00 48 8b 54 24 18 48 89 54 24 50 48 .....H.T$.H.T$PH
0x0100 8b 4c 24 20 48 89 4c 24 58 0f b6 5c 24 28 80 fb .L$ H.L$X..\$(..
0x0110 00 0f 84 03 01 00 00 48 89 54 24 70 48 89 4c 24 .......H.T$pH.L$
0x0120 78 48 8d 1d 00 00 00 00 48 8b 2b 48 89 ac 24 b0 xH......H.+H..$.
0x0130 00 00 00 48 8b 6b 08 48 89 ac 24 b8 00 00 00 48 ...H.k.H..$....H
0x0140 8d 9c 24 a0 00 00 00 48 c7 03 00 00 00 00 48 c7 ..$....H......H.
0x0150 43 08 00 00 00 00 48 8d 9c 24 a0 00 00 00 48 83 C.....H..$....H.
0x0160 fb 00 0f 84 ab 00 00 00 48 c7 c2 01 00 00 00 48 ........H......H
0x0170 c7 c1 01 00 00 00 48 89 9c 24 c0 00 00 00 48 89 ......H..$....H.
0x0180 94 24 c8 00 00 00 48 89 8c 24 d0 00 00 00 48 8d .$....H..$....H.
0x0190 1d 00 00 00 00 48 89 1c 24 48 8d 9c 24 b0 00 00 .....H..$H..$...
0x01a0 00 48 89 5c 24 08 e8 00 00 00 00 48 8b 4c 24 10 .H.\$......H.L$.
0x01b0 48 8b 44 24 18 48 8b 9c 24 c0 00 00 00 48 89 1c H.D$.H..$....H..
0x01c0 24 48 89 8c 24 90 00 00 00 48 89 4c 24 08 48 89 $H..$....H.L$.H.
0x01d0 84 24 98 00 00 00 48 89 44 24 10 e8 00 00 00 00 .$....H.D$......
0x01e0 48 8b 9c 24 c0 00 00 00 48 89 1c 24 48 8b 9c 24 H..$....H..$H..$
0x01f0 c8 00 00 00 48 89 5c 24 08 48 8b 9c 24 d0 00 00 ....H.\$.H..$...
0x0200 00 48 89 5c 24 10 e8 00 00 00 00 48 81 c4 d8 00 .H.\$......H....
0x0210 00 00 c3 89 03 e9 4e ff ff ff 48 8b 9c 24 90 00 ......N...H..$..
0x0220 00 00 48 89 5c 24 40 48 8b 9c 24 98 00 00 00 48 ..H.\$@H..$....H
0x0230 89 5c 24 48 48 8d 1d 00 00 00 00 48 8b 2b 48 89 .\$HH......H.+H.
0x0240 ac 24 b0 00 00 00 48 8b 6b 08 48 89 ac 24 b8 00 .$....H.k.H..$..
0x0250 00 00 48 8d 1d 00 00 00 00 48 89 1c 24 48 8d 9c ..H......H..$H..
0x0260 24 b0 00 00 00 48 89 5c 24 08 e8 00 00 00 00 48 $....H.\$......H
0x0270 8d 5c 24 10 48 8d 2c 24 48 89 ef 48 89 de 48 a5 .\$.H.,$H..H..H.
0x0280 48 a5 e8 00 00 00 00 0f 0b H........
rel 5+4 t=9 +0
rel 21+4 t=3 runtime.morestack_noctxt+0
rel 37+4 t=7 go.string."this is obviously a string"+0
rel 95+4 t=7 type.string+0
rel 117+4 t=3 runtime.convT2E+0
rel 183+4 t=3 runtime.efacethash+0
rel 206+4 t=7 type.string+0
rel 241+4 t=3 runtime.assertE2T2+0
rel 292+4 t=7 go.string."Hello, playground"+0
rel 401+4 t=7 type.string+0
rel 423+4 t=3 runtime.convT2E+0
rel 476+4 t=3 runtime.writebarrieriface+0
rel 519+4 t=3 fmt.Println+0
rel 567+4 t=7 go.string."this is not a drill"+0
rel 597+4 t=7 type.string+0
rel 619+4 t=3 runtime.convT2E+0
rel 643+4 t=3 runtime.gopanic+0
"".init t=1 size=80 value=0 args=0x0 locals=0x0
0x0000 00000 (m2.go:21) TEXT "".init+0(SB),$0-0
0x0000 00000 (m2.go:21) MOVQ (TLS),CX
0x0009 00009 (m2.go:21) CMPQ SP,16(CX)
0x000d 00013 (m2.go:21) JHI ,22
0x000f 00015 (m2.go:21) CALL ,runtime.morestack_noctxt(SB)
0x0014 00020 (m2.go:21) JMP ,0
0x0016 00022 (m2.go:21) NOP ,
0x0016 00022 (m2.go:21) NOP ,
0x0016 00022 (m2.go:21) FUNCDATA $0,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
0x0016 00022 (m2.go:21) FUNCDATA $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
0x0016 00022 (m2.go:21) MOVBQZX "".initdone·+0(SB),BX
0x001d 00029 (m2.go:21) CMPB BL,$0
0x0020 00032 (m2.go:21) JEQ ,54
0x0022 00034 (m2.go:21) MOVBQZX "".initdone·+0(SB),BX
0x0029 00041 (m2.go:21) CMPB BL,$2
0x002c 00044 (m2.go:21) JNE ,47
0x002e 00046 (m2.go:21) RET ,
0x002f 00047 (m2.go:21) PCDATA $0,$0
0x002f 00047 (m2.go:21) CALL ,runtime.throwinit(SB)
0x0034 00052 (m2.go:21) UNDEF ,
0x0036 00054 (m2.go:21) MOVB $1,"".initdone·+0(SB)
0x003d 00061 (m2.go:21) PCDATA $0,$0
0x003d 00061 (m2.go:21) CALL ,fmt.init(SB)
0x0042 00066 (m2.go:21) MOVB $2,"".initdone·+0(SB)
0x0049 00073 (m2.go:21) RET ,
0x0000 64 48 8b 0c 25 00 00 00 00 48 3b 61 10 77 07 e8 dH..%....H;a.w..
0x0010 00 00 00 00 eb ea 0f b6 1d 00 00 00 00 80 fb 00 ................
0x0020 74 14 0f b6 1d 00 00 00 00 80 fb 02 75 01 c3 e8 t...........u...
0x0030 00 00 00 00 0f 0b c6 05 00 00 00 00 01 e8 00 00 ................
0x0040 00 00 c6 05 00 00 00 00 02 c3 ..........
rel 5+4 t=9 +0
rel 16+4 t=3 runtime.morestack_noctxt+0
rel 25+4 t=7 "".initdone·+0
rel 37+4 t=7 "".initdone·+0
rel 48+4 t=3 runtime.throwinit+0
rel 56+4 t=7 "".initdone·+-1
rel 62+4 t=3 fmt.init+0
rel 68+4 t=7 "".initdone·+-1
type..hash.[1]interface {} t=1 dupok size=176 value=0 args=0x20 locals=0x30
0x0000 00000 (m2.go:1) TEXT type..hash.[1]interface {}+0(SB),2,$48-32
0x0000 00000 (m2.go:1) MOVQ (TLS),CX
0x0009 00009 (m2.go:1) CMPQ SP,16(CX)
0x000d 00013 (m2.go:1) JHI ,22
0x000f 00015 (m2.go:1) CALL ,runtime.morestack_noctxt(SB)
0x0014 00020 (m2.go:1) JMP ,0
0x0016 00022 (m2.go:1) SUBQ $48,SP
0x001a 00026 (m2.go:1) MOVQ "".h+72(FP),CX
0x001f 00031 (m2.go:1) FUNCDATA $0,gclocals·2dc77d960dd3e4b3de2361f9cbd75783+0(SB)
0x001f 00031 (m2.go:1) FUNCDATA $1,gclocals·3280bececceccd33cb74587feedb1f9f+0(SB)
0x001f 00031 (m2.go:1) MOVQ $0,AX
0x0021 00033 (m2.go:1) MOVQ $1,"".autotmp_0017+32(SP)
0x002a 00042 (m2.go:1) MOVQ "".autotmp_0017+32(SP),BP
0x002f 00047 (m2.go:1) CMPQ AX,BP
0x0032 00050 (m2.go:1) JGE $0,153
0x0034 00052 (m2.go:1) MOVQ AX,"".autotmp_0016+40(SP)
0x0039 00057 (m2.go:1) MOVQ AX,BP
0x003c 00060 (m2.go:1) MOVQ CX,AX
0x003f 00063 (m2.go:1) ROLQ $3,AX
0x0043 00067 (m2.go:1) MOVQ $23344194077549503,BX
0x004d 00077 (m2.go:1) IMULQ AX,BX
0x0051 00081 (m2.go:1) MOVQ BX,AX
0x0054 00084 (m2.go:1) MOVQ "".p+56(FP),BX
0x0059 00089 (m2.go:1) CMPQ BX,$0
0x005d 00093 (m2.go:1) JEQ $1,163
0x005f 00095 (m2.go:1) IMULQ $16,BP
0x0063 00099 (m2.go:1) ADDQ BP,BX
0x0066 00102 (m2.go:1) MOVQ BX,(SP)
0x006a 00106 (m2.go:1) MOVQ $16,8(SP)
0x0073 00115 (m2.go:1) MOVQ AX,"".h+72(FP)
0x0078 00120 (m2.go:1) MOVQ AX,16(SP)
0x007d 00125 (m2.go:1) PCDATA $0,$0
0x007d 00125 (m2.go:1) CALL ,runtime.nilinterhash(SB)
0x0082 00130 (m2.go:1) MOVQ 24(SP),CX
0x0087 00135 (m2.go:1) NOP ,
0x0087 00135 (m2.go:1) MOVQ "".autotmp_0016+40(SP),AX
0x008c 00140 (m2.go:1) INCQ ,AX
0x008f 00143 (m2.go:1) MOVQ "".autotmp_0017+32(SP),BP
0x0094 00148 (m2.go:1) CMPQ AX,BP
0x0097 00151 (m2.go:1) JLT $0,52
0x0099 00153 (m2.go:1) MOVQ CX,"".~r3+80(FP)
0x009e 00158 (m2.go:1) ADDQ $48,SP
0x00a2 00162 (m2.go:1) RET ,
0x00a3 00163 (m2.go:1) MOVL AX,(BX)
0x00a5 00165 (m2.go:1) JMP ,95
0x0000 64 48 8b 0c 25 00 00 00 00 48 3b 61 10 77 07 e8 dH..%....H;a.w..
0x0010 00 00 00 00 eb ea 48 83 ec 30 48 8b 4c 24 48 31 ......H..0H.L$H1
0x0020 c0 48 c7 44 24 20 01 00 00 00 48 8b 6c 24 20 48 .H.D$ ....H.l$ H
0x0030 39 e8 7d 65 48 89 44 24 28 48 89 c5 48 89 c8 48 9.}eH.D$(H..H..H
0x0040 c1 c0 03 48 bb bf 63 8f bb 6b ef 52 00 48 0f af ...H..c..k.R.H..
0x0050 d8 48 89 d8 48 8b 5c 24 38 48 83 fb 00 74 44 48 .H..H.\$8H...tDH
0x0060 6b ed 10 48 01 eb 48 89 1c 24 48 c7 44 24 08 10 k..H..H..$H.D$..
0x0070 00 00 00 48 89 44 24 48 48 89 44 24 10 e8 00 00 ...H.D$HH.D$....
0x0080 00 00 48 8b 4c 24 18 48 8b 44 24 28 48 ff c0 48 ..H.L$.H.D$(H..H
0x0090 8b 6c 24 20 48 39 e8 7c 9b 48 89 4c 24 50 48 83 .l$ H9.|.H.L$PH.
0x00a0 c4 30 c3 89 03 eb b8 .0.....
rel 5+4 t=9 +0
rel 16+4 t=3 runtime.morestack_noctxt+0
rel 126+4 t=3 runtime.nilinterhash+0
type..eq.[1]interface {} t=1 dupok size=240 value=0 args=0x20 locals=0x58
0x0000 00000 (m2.go:1) TEXT type..eq.[1]interface {}+0(SB),2,$88-32
0x0000 00000 (m2.go:1) MOVQ (TLS),CX
0x0009 00009 (m2.go:1) CMPQ SP,16(CX)
0x000d 00013 (m2.go:1) JHI ,22
0x000f 00015 (m2.go:1) CALL ,runtime.morestack_noctxt(SB)
0x0014 00020 (m2.go:1) JMP ,0
0x0016 00022 (m2.go:1) SUBQ $88,SP
0x001a 00026 (m2.go:1) FUNCDATA $0,gclocals·9c703c5c7b9c1932c840b69f8ebce236+0(SB)
0x001a 00026 (m2.go:1) FUNCDATA $1,gclocals·44568aa369055d8938d809aa5d80843b+0(SB)
0x001a 00026 (m2.go:1) MOVQ $0,AX
0x001c 00028 (m2.go:1) MOVQ $1,"".autotmp_0019+40(SP)
0x0025 00037 (m2.go:1) MOVQ "".autotmp_0019+40(SP),BP
0x002a 00042 (m2.go:1) CMPQ AX,BP
0x002d 00045 (m2.go:1) JGE $0,197
0x0033 00051 (m2.go:1) MOVQ AX,"".autotmp_0018+48(SP)
0x0038 00056 (m2.go:1) MOVQ "".q+104(FP),BX
0x003d 00061 (m2.go:1) CMPQ BX,$0
0x0041 00065 (m2.go:1) JEQ $1,221
0x0047 00071 (m2.go:1) MOVQ AX,BP
0x004a 00074 (m2.go:1) IMULQ $16,BP
0x004e 00078 (m2.go:1) ADDQ BP,BX
0x0051 00081 (m2.go:1) MOVQ (BX),CX
0x0054 00084 (m2.go:1) MOVQ 8(BX),SI
0x0058 00088 (m2.go:1) MOVQ "".p+96(FP),BX
0x005d 00093 (m2.go:1) CMPQ BX,$0
0x0061 00097 (m2.go:1) JEQ $1,217
0x0063 00099 (m2.go:1) MOVQ AX,BP
0x0066 00102 (m2.go:1) IMULQ $16,BP
0x006a 00106 (m2.go:1) ADDQ BP,BX
0x006d 00109 (m2.go:1) MOVQ (BX),AX
0x0070 00112 (m2.go:1) MOVQ 8(BX),DX
0x0074 00116 (m2.go:1) CMPQ AX,CX
0x0077 00119 (m2.go:1) JNE ,207
0x0079 00121 (m2.go:1) MOVQ AX,"".autotmp_0021+56(SP)
0x007e 00126 (m2.go:1) MOVQ AX,(SP)
0x0082 00130 (m2.go:1) MOVQ DX,"".autotmp_0021+64(SP)
0x0087 00135 (m2.go:1) MOVQ DX,8(SP)
0x008c 00140 (m2.go:1) MOVQ CX,"".autotmp_0020+72(SP)
0x0091 00145 (m2.go:1) MOVQ CX,16(SP)
0x0096 00150 (m2.go:1) MOVQ SI,"".autotmp_0020+80(SP)
0x009b 00155 (m2.go:1) MOVQ SI,24(SP)
0x00a0 00160 (m2.go:1) PCDATA $0,$0
0x00a0 00160 (m2.go:1) CALL ,runtime.efaceeq(SB)
0x00a5 00165 (m2.go:1) MOVBQZX 32(SP),BX
0x00aa 00170 (m2.go:1) CMPB BL,$0
0x00ad 00173 (m2.go:1) JEQ ,207
0x00af 00175 (m2.go:1) MOVQ "".autotmp_0018+48(SP),AX
0x00b4 00180 (m2.go:1) INCQ ,AX
0x00b7 00183 (m2.go:1) MOVQ "".autotmp_0019+40(SP),BP
0x00bc 00188 (m2.go:1) CMPQ AX,BP
0x00bf 00191 (m2.go:1) JLT $0,51
0x00c5 00197 (m2.go:1) MOVB $1,"".~r3+120(FP)
0x00ca 00202 (m2.go:1) ADDQ $88,SP
0x00ce 00206 (m2.go:1) RET ,
0x00cf 00207 (m2.go:1) MOVB $0,"".~r3+120(FP)
0x00d4 00212 (m2.go:1) ADDQ $88,SP
0x00d8 00216 (m2.go:1) RET ,
0x00d9 00217 (m2.go:1) MOVL AX,(BX)
0x00db 00219 (m2.go:1) JMP ,99
0x00dd 00221 (m2.go:1) MOVL AX,(BX)
0x00df 00223 (m2.go:1) JMP ,71
0x0000 64 48 8b 0c 25 00 00 00 00 48 3b 61 10 77 07 e8 dH..%....H;a.w..
0x0010 00 00 00 00 eb ea 48 83 ec 58 31 c0 48 c7 44 24 ......H..X1.H.D$
0x0020 28 01 00 00 00 48 8b 6c 24 28 48 39 e8 0f 8d 92 (....H.l$(H9....
0x0030 00 00 00 48 89 44 24 30 48 8b 5c 24 68 48 83 fb ...H.D$0H.\$hH..
0x0040 00 0f 84 96 00 00 00 48 89 c5 48 6b ed 10 48 01 .......H..Hk..H.
0x0050 eb 48 8b 0b 48 8b 73 08 48 8b 5c 24 60 48 83 fb .H..H.s.H.\$`H..
0x0060 00 74 76 48 89 c5 48 6b ed 10 48 01 eb 48 8b 03 .tvH..Hk..H..H..
0x0070 48 8b 53 08 48 39 c8 75 56 48 89 44 24 38 48 89 H.S.H9.uVH.D$8H.
0x0080 04 24 48 89 54 24 40 48 89 54 24 08 48 89 4c 24 .$H.T$@H.T$.H.L$
0x0090 48 48 89 4c 24 10 48 89 74 24 50 48 89 74 24 18 HH.L$.H.t$PH.t$.
0x00a0 e8 00 00 00 00 0f b6 5c 24 20 80 fb 00 74 20 48 .......\$ ...t H
0x00b0 8b 44 24 30 48 ff c0 48 8b 6c 24 28 48 39 e8 0f .D$0H..H.l$(H9..
0x00c0 8c 6e ff ff ff c6 44 24 78 01 48 83 c4 58 c3 c6 .n....D$x.H..X..
0x00d0 44 24 78 00 48 83 c4 58 c3 89 03 eb 86 89 03 e9 D$x.H..X........
0x00e0 63 ff ff ff c...
rel 5+4 t=9 +0
rel 16+4 t=3 runtime.morestack_noctxt+0
rel 161+4 t=3 runtime.efaceeq+0
gclocals·3280bececceccd33cb74587feedb1f9f t=7 dupok size=8 value=0
0x0000 01 00 00 00 00 00 00 00 ........
gclocals·06cab038d51064a089bda21fa03e00f7 t=7 dupok size=12 value=0
0x0000 01 00 00 00 04 00 00 00 02 00 00 00 ............
gclocals·8d600a433c6aaa81a4fe446d95c5546b t=7 dupok size=16 value=0
0x0000 02 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 ................
gclocals·771157e6981a4b26b64a947269cc9ecb t=7 dupok size=16 value=0
0x0000 02 00 00 00 08 00 00 00 02 00 00 00 02 00 00 00 ................
go.string."this is obviously a string" t=7 dupok size=48 value=0
0x0000 00 00 00 00 00 00 00 00 1a 00 00 00 00 00 00 00 ................
0x0010 74 68 69 73 20 69 73 20 6f 62 76 69 6f 75 73 6c this is obviousl
0x0020 79 20 61 20 73 74 72 69 6e 67 00 y a string.
rel 0+8 t=1 go.string."this is obviously a string"+16
go.string."this is not a drill" t=7 dupok size=40 value=0
0x0000 00 00 00 00 00 00 00 00 13 00 00 00 00 00 00 00 ................
0x0010 74 68 69 73 20 69 73 20 6e 6f 74 20 61 20 64 72 this is not a dr
0x0020 69 6c 6c 00 ill.
rel 0+8 t=1 go.string."this is not a drill"+16
go.string."Hello, playground" t=7 dupok size=40 value=0
0x0000 00 00 00 00 00 00 00 00 11 00 00 00 00 00 00 00 ................
0x0010 48 65 6c 6c 6f 2c 20 70 6c 61 79 67 72 6f 75 6e Hello, playgroun
0x0020 64 00 d.
rel 0+8 t=1 go.string."Hello, playground"+16
gclocals·5b2a24c2060902933b5475ebe99da051 t=7 dupok size=48 value=0
0x0000 05 00 00 00 2a 00 00 00 00 00 00 00 00 00 00 00 ....*...........
0x0010 00 00 00 00 02 00 00 00 00 00 00 0f 00 00 00 00 ................
0x0020 00 00 00 f0 22 00 00 00 00 00 00 f0 02 00 00 00 ...."...........
gclocals·7c13896baab3273e10662a9a37b348ce t=7 dupok size=8 value=0
0x0000 05 00 00 00 00 00 00 00 ........
gclocals·3280bececceccd33cb74587feedb1f9f t=7 dupok size=8 value=0
0x0000 01 00 00 00 00 00 00 00 ........
gclocals·3280bececceccd33cb74587feedb1f9f t=7 dupok size=8 value=0
0x0000 01 00 00 00 00 00 00 00 ........
"".initdone· t=22 size=1 value=0
"".takesString·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 "".takesString+0
"".returnInterface·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 "".returnInterface+0
runtime.convT2E·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.convT2E+0
runtime.throwreturn·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.throwreturn+0
"".main·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 "".main+0
runtime.efacethash·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.efacethash+0
runtime.assertE2T2·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.assertE2T2+0
runtime.gopanic·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.gopanic+0
runtime.writebarrieriface·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.writebarrieriface+0
fmt.Println·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 fmt.Println+0
"".init·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 "".init+0
runtime.throwinit·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.throwinit+0
fmt.init·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 fmt.init+0
runtime.gcbits.0xcc000000000000000000000000000000 t=7 dupok size=16 value=0
0x0000 cc 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
go.string."interface {}" t=7 dupok size=32 value=0
0x0000 00 00 00 00 00 00 00 00 0c 00 00 00 00 00 00 00 ................
0x0010 69 6e 74 65 72 66 61 63 65 20 7b 7d 00 interface {}.
rel 0+8 t=1 go.string."interface {}"+16
type.interface {} t=7 dupok size=96 value=0
0x0000 10 00 00 00 00 00 00 00 e7 57 a0 18 00 08 08 14 .........W......
0x0010 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 16+8 t=1 runtime.algarray+256
rel 24+8 t=1 runtime.gcbits.0xcc000000000000000000000000000000+0
rel 40+8 t=1 go.string."interface {}"+0
rel 56+8 t=1 go.weak.type.*interface {}+0
rel 64+8 t=1 runtime.zerovalue+0
rel 72+8 t=1 type.interface {}+96
runtime.gcbits.0x48844400000000000000000000000000 t=7 dupok size=16 value=0
0x0000 48 84 44 00 00 00 00 00 00 00 00 00 00 00 00 00 H.D.............
go.string."[]interface {}" t=7 dupok size=32 value=0
0x0000 00 00 00 00 00 00 00 00 0e 00 00 00 00 00 00 00 ................
0x0010 5b 5d 69 6e 74 65 72 66 61 63 65 20 7b 7d 00 []interface {}.
rel 0+8 t=1 go.string."[]interface {}"+16
type.[]interface {} t=7 dupok size=80 value=0
0x0000 18 00 00 00 00 00 00 00 70 93 ea 2f 00 08 08 17 ........p../....
0x0010 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 16+8 t=1 runtime.algarray+272
rel 24+8 t=1 runtime.gcbits.0x48844400000000000000000000000000+0
rel 40+8 t=1 go.string."[]interface {}"+0
rel 56+8 t=1 go.weak.type.*[]interface {}+0
rel 64+8 t=1 runtime.zerovalue+0
rel 72+8 t=1 type.interface {}+0
go.typelink.[]interface {}/[]interface {} t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type.[]interface {}+0
gclocals·3280bececceccd33cb74587feedb1f9f t=7 dupok size=8 value=0
0x0000 01 00 00 00 00 00 00 00 ........
gclocals·2dc77d960dd3e4b3de2361f9cbd75783 t=7 dupok size=12 value=0
0x0000 01 00 00 00 08 00 00 00 16 00 00 00 ............
gclocals·44568aa369055d8938d809aa5d80843b t=7 dupok size=12 value=0
0x0000 01 00 00 00 08 00 00 00 00 00 00 00 ............
gclocals·9c703c5c7b9c1932c840b69f8ebce236 t=7 dupok size=12 value=0
0x0000 01 00 00 00 08 00 00 00 1a 00 00 00 ............
type..hashfunc.[1]interface {} t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type..hash.[1]interface {}+0
type..eqfunc.[1]interface {} t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type..eq.[1]interface {}+0
type..alg.[1]interface {} t=7 dupok size=16 value=0
0x0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 0+8 t=1 type..hashfunc.[1]interface {}+0
rel 8+8 t=1 type..eqfunc.[1]interface {}+0
go.string."[1]interface {}" t=7 dupok size=32 value=0
0x0000 00 00 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 ................
0x0010 5b 31 5d 69 6e 74 65 72 66 61 63 65 20 7b 7d 00 [1]interface {}.
rel 0+8 t=1 go.string."[1]interface {}"+16
type.[1]interface {} t=7 dupok size=96 value=0
0x0000 10 00 00 00 00 00 00 00 50 91 5b fa 00 08 08 11 ........P.[.....
0x0010 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0x0050 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 ................
rel 16+8 t=1 type..alg.[1]interface {}+0
rel 24+8 t=1 runtime.gcbits.0xcc000000000000000000000000000000+0
rel 40+8 t=1 go.string."[1]interface {}"+0
rel 56+8 t=1 go.weak.type.*[1]interface {}+0
rel 64+8 t=1 runtime.zerovalue+0
rel 72+8 t=1 type.interface {}+0
rel 80+8 t=1 type.[]interface {}+0
go.typelink.[1]interface {}/[1]interface {} t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type.[1]interface {}+0
runtime.gcbits.0x88000000000000000000000000000000 t=7 dupok size=16 value=0
0x0000 88 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
go.string."*[1]interface {}" t=7 dupok size=40 value=0
0x0000 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 00 ................
0x0010 2a 5b 31 5d 69 6e 74 65 72 66 61 63 65 20 7b 7d *[1]interface {}
0x0020 00 .
rel 0+8 t=1 go.string."*[1]interface {}"+16
type.*[1]interface {} t=7 dupok size=80 value=0
0x0000 08 00 00 00 00 00 00 00 bf 03 a8 35 00 08 08 36 ...........5...6
0x0010 00 00 00 00 00 00 00 00 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
rel 16+8 t=1 runtime.algarray+80
rel 24+8 t=1 runtime.gcbits.0x88000000000000000000000000000000+0
rel 40+8 t=1 go.string."*[1]interface {}"+0
rel 56+8 t=1 go.weak.type.**[1]interface {}+0
rel 64+8 t=1 runtime.zerovalue+0
rel 72+8 t=1 type.[1]interface {}+0
go.string."runtime" t=7 dupok size=24 value=0
0x0000 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 ................
0x0010 72 75 6e 74 69 6d 65 00 runtime.
rel 0+8 t=1 go.string."runtime"+16
go.importpath.runtime. t=7 dupok size=16 value=0
0x0000 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 ................
rel 0+8 t=1 go.string."runtime"+16
go.string."fmt" t=7 dupok size=24 value=0
0x0000 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 ................
0x0010 66 6d 74 00 fmt.
rel 0+8 t=1 go.string."fmt"+16
go.importpath.fmt. t=7 dupok size=16 value=0
0x0000 00 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 ................
rel 0+8 t=1 go.string."fmt"+16
type..hash.[1]interface {}·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type..hash.[1]interface {}+0
runtime.nilinterhash·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.nilinterhash+0
type..eq.[1]interface {}·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 type..eq.[1]interface {}+0
runtime.efaceeq·f t=7 dupok size=8 value=0
0x0000 00 00 00 00 00 00 00 00 ........
rel 0+8 t=1 runtime.efaceeq+0
runtime.zerovalue t=7 dupok size=0 value=0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment