package main
func main() {
var m = map[int]int{}
m[43] = 1
var n = map[string]int{}
n["abc"] = 1
println(m, n)
}
asmcall2 > go tool compile -S m.go
"".main t=1 size=336 value=0 args=0x0 locals=0x58
0x0000 00000 (m.go:3) TEXT "".main(SB), $88-0
0x0000 00000 (m.go:3) MOVQ (TLS), CX
0x0009 00009 (m.go:3) CMPQ SP, 16(CX)
0x000d 00013 (m.go:3) JLS 312
0x0013 00019 (m.go:3) SUBQ $88, SP
0x0017 00023 (m.go:4) LEAQ type.map[int]int(SB), BX // arg1 type.map[int]int(SB)
0x001e 00030 (m.go:4) MOVQ BX, (SP)
0x0022 00034 (m.go:4) MOVQ $0, 8(SP) // arg2 0
0x002b 00043 (m.go:4) MOVQ $0, 16(SP) // arg3 0
0x0034 00052 (m.go:4) MOVQ $0, 24(SP) // arg4 0
0x003d 00061 (m.go:4) PCDATA $0, $0
0x003d 00061 (m.go:4) CALL runtime.makemap(SB)
0x0042 00066 (m.go:4) MOVQ 32(SP), AX // ret1
// m[43] = 1
0x0047 00071 (m.go:5) MOVQ $43, "".autotmp_0000+48(SP)
0x0050 00080 (m.go:5) MOVQ $1, "".autotmp_0001+40(SP)
0x0059 00089 (m.go:5) LEAQ type.map[int]int(SB), BX
0x0060 00096 (m.go:5) MOVQ BX, (SP) // arg1 type.map[int]int(SB)
0x0064 00100 (m.go:5) MOVQ AX, "".m+64(SP)
0x0069 00105 (m.go:5) MOVQ AX, 8(SP) // arg2 addr_map
0x006e 00110 (m.go:5) LEAQ "".autotmp_0000+48(SP), BX
0x0073 00115 (m.go:5) MOVQ BX, 16(SP) // arg3 $43
0x0078 00120 (m.go:5) LEAQ "".autotmp_0001+40(SP), BX
0x007d 00125 (m.go:5) MOVQ BX, 24(SP) // arg4 $1
0x0082 00130 (m.go:5) PCDATA $0, $1
0x0082 00130 (m.go:5) CALL runtime.mapassign1(SB) // call map assign
0x0087 00135 (m.go:6) LEAQ type.map[string]int(SB), BX
0x008e 00142 (m.go:6) MOVQ BX, (SP)
0x0092 00146 (m.go:6) MOVQ $0, 8(SP)
0x009b 00155 (m.go:6) MOVQ $0, 16(SP)
0x00a4 00164 (m.go:6) MOVQ $0, 24(SP)
0x00ad 00173 (m.go:6) PCDATA $0, $1
0x00ad 00173 (m.go:6) CALL runtime.makemap(SB)
0x00b2 00178 (m.go:6) MOVQ 32(SP), AX
0x00b7 00183 (m.go:7) LEAQ go.string."abc"(SB), BX
0x00be 00190 (m.go:7) MOVQ BX, "".autotmp_0002+72(SP)
0x00c3 00195 (m.go:7) MOVQ $3, "".autotmp_0002+80(SP)
0x00cc 00204 (m.go:7) MOVQ $1, "".autotmp_0003+48(SP)
0x00d5 00213 (m.go:7) LEAQ type.map[string]int(SB), BX
0x00dc 00220 (m.go:7) MOVQ BX, (SP)
0x00e0 00224 (m.go:7) MOVQ AX, "".n+56(SP)
0x00e5 00229 (m.go:7) MOVQ AX, 8(SP)
0x00ea 00234 (m.go:7) LEAQ "".autotmp_0002+72(SP), BX
0x00ef 00239 (m.go:7) MOVQ BX, 16(SP)
0x00f4 00244 (m.go:7) LEAQ "".autotmp_0003+48(SP), BX
0x00f9 00249 (m.go:7) MOVQ BX, 24(SP)
0x00fe 00254 (m.go:7) PCDATA $0, $2
0x00fe 00254 (m.go:7) CALL runtime.mapassign1(SB)
0x0103 00259 (m.go:8) PCDATA $0, $3
0x0103 00259 (m.go:8) CALL runtime.printlock(SB)
0x0108 00264 (m.go:8) MOVQ "".m+64(SP), BX
0x010d 00269 (m.go:8) MOVQ BX, (SP)
0x0111 00273 (m.go:8) PCDATA $0, $4
0x0111 00273 (m.go:8) CALL runtime.printpointer(SB)
0x0116 00278 (m.go:8) PCDATA $0, $4
0x0116 00278 (m.go:8) CALL runtime.printsp(SB)
0x011b 00283 (m.go:8) MOVQ "".n+56(SP), BX
0x0120 00288 (m.go:8) MOVQ BX, (SP)
0x0124 00292 (m.go:8) PCDATA $0, $0
0x0124 00292 (m.go:8) CALL runtime.printpointer(SB)
0x0129 00297 (m.go:8) PCDATA $0, $0
0x0129 00297 (m.go:8) CALL runtime.printnl(SB)
0x012e 00302 (m.go:8) PCDATA $0, $0
0x012e 00302 (m.go:8) CALL runtime.printunlock(SB)
0x0133 00307 (m.go:9) ADDQ $88, SP
0x0137 00311 (m.go:9) RET
0x0138 00312 (m.go:9) NOP
0x0138 00312 (m.go:3) CALL runtime.morestack_noctxt(SB)
0x013d 00317 (m.go:3) JMP 0
0x0000 64 48 8b 0c 25 00 00 00 00 48 3b 61 10 0f 86 25 dH..%....H;a...%
0x0010 01 00 00 48 83 ec 58 48 8d 1d 00 00 00 00 48 89 ...H..XH......H.
0x0020 1c 24 48 c7 44 24 08 00 00 00 00 48 c7 44 24 10 .$H.D$.....H.D$.
0x0030 00 00 00 00 48 c7 44 24 18 00 00 00 00 e8 00 00 ....H.D$........
0x0040 00 00 48 8b 44 24 20 48 c7 44 24 30 2b 00 00 00 ..H.D$ H.D$0+...
0x0050 48 c7 44 24 28 01 00 00 00 48 8d 1d 00 00 00 00 H.D$(....H......
0x0060 48 89 1c 24 48 89 44 24 40 48 89 44 24 08 48 8d H..$H.D$@H.D$.H.
0x0070 5c 24 30 48 89 5c 24 10 48 8d 5c 24 28 48 89 5c \$0H.\$.H.\$(H.\
0x0080 24 18 e8 00 00 00 00 48 8d 1d 00 00 00 00 48 89 $......H......H.
0x0090 1c 24 48 c7 44 24 08 00 00 00 00 48 c7 44 24 10 .$H.D$.....H.D$.
0x00a0 00 00 00 00 48 c7 44 24 18 00 00 00 00 e8 00 00 ....H.D$........
0x00b0 00 00 48 8b 44 24 20 48 8d 1d 00 00 00 00 48 89 ..H.D$ H......H.
0x00c0 5c 24 48 48 c7 44 24 50 03 00 00 00 48 c7 44 24 \$HH.D$P....H.D$
0x00d0 30 01 00 00 00 48 8d 1d 00 00 00 00 48 89 1c 24 0....H......H..$
0x00e0 48 89 44 24 38 48 89 44 24 08 48 8d 5c 24 48 48 H.D$8H.D$.H.\$HH
0x00f0 89 5c 24 10 48 8d 5c 24 30 48 89 5c 24 18 e8 00 .\$.H.\$0H.\$...
0x0100 00 00 00 e8 00 00 00 00 48 8b 5c 24 40 48 89 1c ........H.\$@H..
0x0110 24 e8 00 00 00 00 e8 00 00 00 00 48 8b 5c 24 38 $..........H.\$8
0x0120 48 89 1c 24 e8 00 00 00 00 e8 00 00 00 00 e8 00 H..$............
0x0130 00 00 00 48 83 c4 58 c3 e8 00 00 00 00 e9 be fe ...H..X.........
0x0140 ff ff cc cc cc cc cc cc cc cc cc cc cc cc cc cc ................
rel 5+4 t=14 +0
rel 26+4 t=13 type.map[int]int+0
rel 62+4 t=6 runtime.makemap+0
rel 92+4 t=13 type.map[int]int+0
rel 131+4 t=6 runtime.mapassign1+0
rel 138+4 t=13 type.map[string]int+0
rel 174+4 t=6 runtime.makemap+0
rel 186+4 t=13 go.string."abc"+0
rel 216+4 t=13 type.map[string]int+0
rel 255+4 t=6 runtime.mapassign1+0
rel 260+4 t=6 runtime.printlock+0
rel 274+4 t=6 runtime.printpointer+0
rel 279+4 t=6 runtime.printsp+0
rel 293+4 t=6 runtime.printpointer+0
rel 298+4 t=6 runtime.printnl+0
rel 303+4 t=6 runtime.printunlock+0
rel 313+4 t=6 runtime.morestack_noctxt+0
log.Printf
package main
import (
"log"
)
func main() {
log.Printf("a=%d\n", 1)
}
96(SP) 1
88(SP) 1
80(SP) & .+64(SP)
72(SP) eface.1
64(SP) eface.1
56(SP) eface
48(SP) eface
40(SP) 1
32(SP)
24(SP)
16(SP)
8(SP)
(SP)
"".main t=1 size=256 value=0 args=0x0 locals=0x68
0x0000 00000 (x.go:6) TEXT "".main(SB), $104-0
0x0000 00000 (x.go:6) MOVQ (TLS), CX
0x0009 00009 (x.go:6) CMPQ SP, 16(CX)
0x000d 00013 (x.go:6) JLS 245
0x0013 00019 (x.go:6) SUBQ $104, SP
0x0017 00023 (x.go:7) MOVQ $1, "".autotmp_0000+40(SP) // .+40(SP) = $1
0x0020 00032 (x.go:7) MOVQ $0, BX
0x0022 00034 (x.go:7) MOVQ BX, "".autotmp_0004+64(SP) // .+64(SP) = $0
0x0027 00039 (x.go:7) MOVQ BX, "".autotmp_0004+72(SP) // .+72(SP) = $0
0x002c 00044 (x.go:7) LEAQ "".autotmp_0004+64(SP), BX
0x0031 00049 (x.go:7) CMPQ BX, $0
0x0035 00053 (x.go:7) JEQ $1, 238
0x003b 00059 (x.go:7) MOVQ $1, "".autotmp_0001+88(SP) // .+88(SP) = $1
0x0044 00068 (x.go:7) MOVQ $1, "".autotmp_0001+96(SP) // .+96(SP) = $1
0x004d 00077 (x.go:7) MOVQ BX, "".autotmp_0001+80(SP) // .+80(SP) = & .+64(SP)
0x0052 00082 (x.go:7) LEAQ type.int(SB), BX
0x0059 00089 (x.go:7) MOVQ BX, (SP) // arg1 = & type.int(SB)
0x005d 00093 (x.go:7) LEAQ "".autotmp_0000+40(SP), BX
0x0062 00098 (x.go:7) MOVQ BX, 8(SP) // arg2 = $1
0x0067 00103 (x.go:7) MOVQ $0, 16(SP) // arg3 = $0
0x0070 00112 (x.go:7) CALL runtime.convT2E(SB)
0x0075 00117 (x.go:7) MOVQ 24(SP), CX // ret1
0x007a 00122 (x.go:7) MOVQ 32(SP), AX // ret2
0x007f 00127 (x.go:7) MOVQ "".autotmp_0001+80(SP), BX
0x0084 00132 (x.go:7) MOVQ CX, "".autotmp_0005+48(SP)
0x0089 00137 (x.go:7) MOVQ CX, (BX)
0x008c 00140 (x.go:7) MOVQ AX, "".autotmp_0005+56(SP)
0x0091 00145 (x.go:7) CMPB runtime.writeBarrier(SB), $0
0x0098 00152 (x.go:7) JNE $0, 218
0x009a 00154 (x.go:7) MOVQ AX, 8(BX)
0x009e 00158 (x.go:7) LEAQ go.string."a=%d\n"(SB), BX
0x00a5 00165 (x.go:7) MOVQ BX, (SP) // arg1 = & format
0x00a9 00169 (x.go:7) MOVQ $5, 8(SP) // arg2 = $5
0x00b2 00178 (x.go:7) MOVQ "".autotmp_0001+80(SP), BX
0x00b7 00183 (x.go:7) MOVQ BX, 16(SP) // arg3 eface.1
0x00bc 00188 (x.go:7) MOVQ "".autotmp_0001+88(SP), BX
0x00c1 00193 (x.go:7) MOVQ BX, 24(SP) // arg4 $1
0x00c6 00198 (x.go:7) MOVQ "".autotmp_0001+96(SP), BX
0x00cb 00203 (x.go:7) MOVQ BX, 32(SP) // arg5 $1
0x00d0 00208 (x.go:7) CALL log.Printf(SB)
/* func (l *Logger) Printf(format string, v ...interface{}) {
l.Output(2, fmt.Sprintf(format, v...))
} */
fmt.Sprintf
package main
import (
"fmt"
"io"
"os"
)
func main() {
const name, age = "Kim", 22
s := fmt.Sprintf("%s is %d years old.\n", name, age)
io.WriteString(os.Stdout, s)
}
go build ; go tool objdump -s 'main.main' ./go_sprintf
TEXT main.main(SB) /root/gpkgs/go_sprintf/x.go
x.go:9 0x401000 64488b0c25f8ffffff FS MOVQ FS:0xfffffff8, CX
x.go:9 0x401009 488d4424c8 LEAQ -0x38(SP), AX
x.go:9 0x40100e 483b4110 CMPQ 0x10(CX), AX
x.go:9 0x401012 0f8624020000 JBE 0x40123c
x.go:9 0x401018 4881ecb8000000 SUBQ $0xb8, SP
x.go:11 0x40101f 488d1df2b70f00 LEAQ 0xfb7f2(IP), BX
x.go:11 0x401026 48895c2470 MOVQ BX, 0x70(SP)
x.go:11 0x40102b 48c744247803000000 MOVQ $0x3, 0x78(SP)
x.go:11 0x401034 48c744243816000000 MOVQ $0x16, 0x38(SP)
x.go:11 0x40103d 31db XORL BX, BX
x.go:11 0x40103f 48899c2498000000 MOVQ BX, 0x98(SP)
x.go:11 0x401047 48899c24a0000000 MOVQ BX, 0xa0(SP)
x.go:11 0x40104f 48899c24a8000000 MOVQ BX, 0xa8(SP)
x.go:11 0x401057 48899c24b0000000 MOVQ BX, 0xb0(SP)
x.go:11 0x40105f 488d9c2498000000 LEAQ 0x98(SP), BX
x.go:11 0x401067 4883fb00 CMPQ $0x0, BX
x.go:11 0x40106b 0f84c4010000 JE 0x401235
x.go:11 0x401071 48c784248800000002000000 MOVQ $0x2, 0x88(SP)
x.go:11 0x40107d 48c784249000000002000000 MOVQ $0x2, 0x90(SP)
x.go:11 0x401089 48899c2480000000 MOVQ BX, 0x80(SP)
x.go:11 0x401091 488d1dc87d0b00 LEAQ 0xb7dc8(IP), BX
x.go:11 0x401098 48891c24 MOVQ BX, 0(SP)
x.go:11 0x40109c 488d5c2470 LEAQ 0x70(SP), BX
x.go:11 0x4010a1 48895c2408 MOVQ BX, 0x8(SP)
x.go:11 0x4010a6 48c744241000000000 MOVQ $0x0, 0x10(SP)
x.go:11 0x4010af e89caa0000 CALL runtime.convT2E(SB)
x.go:11 0x4010b4 488b4c2418 MOVQ 0x18(SP), CX
x.go:11 0x4010b9 488b442420 MOVQ 0x20(SP), AX
x.go:11 0x4010be 488b9c2480000000 MOVQ 0x80(SP), BX
x.go:11 0x4010c6 48894c2460 MOVQ CX, 0x60(SP)
x.go:11 0x4010cb 48890b MOVQ CX, 0(BX)
x.go:11 0x4010ce 4889442468 MOVQ AX, 0x68(SP)
x.go:11 0x4010d3 803d06da190000 CMPL $0x0, 0x19da06(IP)
x.go:11 0x4010da 0f853e010000 JNE 0x40121e
x.go:11 0x4010e0 48894308 MOVQ AX, 0x8(BX)
x.go:11 0x4010e4 488d1df5730b00 LEAQ 0xb73f5(IP), BX
x.go:11 0x4010eb 48891c24 MOVQ BX, 0(SP)
x.go:11 0x4010ef 488d5c2438 LEAQ 0x38(SP), BX
x.go:11 0x4010f4 48895c2408 MOVQ BX, 0x8(SP)
x.go:11 0x4010f9 48c744241000000000 MOVQ $0x0, 0x10(SP)
x.go:11 0x401102 e849aa0000 CALL runtime.convT2E(SB)
x.go:11 0x401107 488b4c2418 MOVQ 0x18(SP), CX
x.go:11 0x40110c 488b442420 MOVQ 0x20(SP), AX
x.go:11 0x401111 488b9c2480000000 MOVQ 0x80(SP), BX
x.go:11 0x401119 4883c310 ADDQ $0x10, BX
x.go:11 0x40111d 48894c2460 MOVQ CX, 0x60(SP)
x.go:11 0x401122 48890b MOVQ CX, 0(BX)
x.go:11 0x401125 4889442468 MOVQ AX, 0x68(SP)
x.go:11 0x40112a 803dafd9190000 CMPL $0x0, 0x19d9af(IP)
x.go:11 0x401131 0f85d0000000 JNE 0x401207
x.go:11 0x401137 48894308 MOVQ AX, 0x8(BX)
x.go:11 0x40113b 488d1d1ee71000 LEAQ 0x10e71e(IP), BX
x.go:11 0x401142 48891c24 MOVQ BX, 0(SP)
x.go:11 0x401146 48c744240814000000 MOVQ $0x14, 0x8(SP)
x.go:11 0x40114f 488b9c2480000000 MOVQ 0x80(SP), BX
x.go:11 0x401157 48895c2410 MOVQ BX, 0x10(SP)
x.go:11 0x40115c 488b9c2488000000 MOVQ 0x88(SP), BX
x.go:11 0x401164 48895c2418 MOVQ BX, 0x18(SP)
x.go:11 0x401169 488b9c2490000000 MOVQ 0x90(SP), BX
x.go:11 0x401171 48895c2420 MOVQ BX, 0x20(SP)
x.go:11 0x401176 e8c5960500 CALL fmt.Sprintf(SB) // Call
x.go:11 0x40117b 488b5c2428 MOVQ 0x28(SP), BX
x.go:11 0x401180 48895c2440 MOVQ BX, 0x40(SP)
x.go:11 0x401185 488b5c2430 MOVQ 0x30(SP), BX
x.go:11 0x40118a 48895c2448 MOVQ BX, 0x48(SP)
x.go:13 0x40118f 488b05aad91900 MOVQ 0x19d9aa(IP), AX
x.go:13 0x401196 31ed XORL BP, BP
x.go:13 0x401198 4839e8 CMPQ BP, AX
x.go:13 0x40119b 743b JE 0x4011d8
x.go:13 0x40119d 488b0dfc301800 MOVQ 0x1830fc(IP), CX
x.go:13 0x4011a4 4889442450 MOVQ AX, 0x50(SP)
x.go:13 0x4011a9 48890424 MOVQ AX, 0(SP)
x.go:13 0x4011ad 48894c2458 MOVQ CX, 0x58(SP)
x.go:13 0x4011b2 48894c2408 MOVQ CX, 0x8(SP)
x.go:13 0x4011b7 488b5c2440 MOVQ 0x40(SP), BX
x.go:13 0x4011bc 48895c2410 MOVQ BX, 0x10(SP)
x.go:13 0x4011c1 488b5c2448 MOVQ 0x48(SP), BX
x.go:13 0x4011c6 48895c2418 MOVQ BX, 0x18(SP)
x.go:13 0x4011cb e8c0640600 CALL io.WriteString(SB)
x.go:14 0x4011d0 4881c4b8000000 ADDQ $0xb8, SP
x.go:14 0x4011d7 c3 RET
x.go:13 0x4011d8 488d1da1020f00 LEAQ 0xf02a1(IP), BX
x.go:13 0x4011df 48891c24 MOVQ BX, 0(SP)
x.go:13 0x4011e3 488d1dd6550d00 LEAQ 0xd55d6(IP), BX
x.go:13 0x4011ea 48895c2408 MOVQ BX, 0x8(SP)
x.go:13 0x4011ef 488d1d4ad91900 LEAQ 0x19d94a(IP), BX
x.go:13 0x4011f6 48895c2410 MOVQ BX, 0x10(SP)
x.go:13 0x4011fb e8e0a80000 CALL runtime.typ2Itab(SB)
x.go:13 0x401200 488b442418 MOVQ 0x18(SP), AX
x.go:13 0x401205 eb96 JMP 0x40119d
x.go:11 0x401207 4c8d4308 LEAQ 0x8(BX), R8
x.go:11 0x40120b 4c890424 MOVQ R8, 0(SP)
x.go:11 0x40120f 4889442408 MOVQ AX, 0x8(SP)
x.go:11 0x401214 e847df0000 CALL runtime.writebarrierptr(SB)
x.go:11 0x401219 e91dffffff JMP 0x40113b
x.go:11 0x40121e 4c8d4308 LEAQ 0x8(BX), R8
x.go:11 0x401222 4c890424 MOVQ R8, 0(SP)
x.go:11 0x401226 4889442408 MOVQ AX, 0x8(SP)
x.go:11 0x40122b e830df0000 CALL runtime.writebarrierptr(SB)
x.go:11 0x401230 e9affeffff JMP 0x4010e4
x.go:11 0x401235 8903 MOVL AX, 0(BX)
x.go:11 0x401237 e935feffff JMP 0x401071
x.go:9 0x40123c e85f220500 CALL runtime.morestack_noctxt(SB)
x.go:9 0x401241 e9bafdffff JMP main.main(SB)
package main
import (
"fmt"
"reflect"
)
var sum uintptr = 0;
func sub(inter interface{}) {
t := reflect.TypeOf(inter)
sum += t.Size()
}
func main() {
var inter int = 1
sub(inter)
fmt.Println(sum)
}
go_interface > go tool objdump -s 'main.main' ./x2
TEXT main.main(SB) /root/gpkgs/go_interface/x2.go
x2.go:15 0x401150 64488b0c25f8ffffff FS MOVQ FS:0xfffffff8, CX
x2.go:15 0x401159 483b6110 CMPQ 0x10(CX), SP
x2.go:15 0x40115d 0f860f010000 JBE 0x401272
x2.go:15 0x401163 4883ec70 SUBQ $0x70, SP
// var inter int = 1
x2.go:16 0x401167 48c7c001000000 MOVQ $0x1, AX
x2.go:17 0x40116e 4889442430 MOVQ AX, 0x30(SP) // 0x30(SP) = 1
x2.go:17 0x401173 488d1d06730b00 LEAQ 0xb7306(IP), BX
x2.go:17 0x40117a 48891c24 MOVQ BX, 0(SP)
x2.go:17 0x40117e 488d5c2430 LEAQ 0x30(SP), BX
x2.go:17 0x401183 48895c2408 MOVQ BX, 0x8(SP)
x2.go:17 0x401188 48c744241000000000 MOVQ $0x0, 0x10(SP)
x2.go:17 0x401191 e8daa90000 CALL runtime.convT2E(SB)
x2.go:17 0x401196 488d5c2418 LEAQ 0x18(SP), BX
x2.go:17 0x40119b 488b0b MOVQ 0(BX), CX
x2.go:17 0x40119e 48890c24 MOVQ CX, 0(SP)
x2.go:17 0x4011a2 488b4b08 MOVQ 0x8(BX), CX
x2.go:17 0x4011a6 48894c2408 MOVQ CX, 0x8(SP)
x2.go:17 0x4011ab e850feffff CALL main.sub(SB)
x2.go:18 0x4011b0 31db XORL BX, BX
x2.go:18 0x4011b2 48895c2448 MOVQ BX, 0x48(SP)
x2.go:18 0x4011b7 48895c2450 MOVQ BX, 0x50(SP)
x2.go:18 0x4011bc 488d5c2448 LEAQ 0x48(SP), BX
x2.go:18 0x4011c1 4883fb00 CMPQ $0x0, BX
x2.go:18 0x4011c5 0f84a0000000 JE 0x40126b
x2.go:18 0x4011cb 48c744246001000000 MOVQ $0x1, 0x60(SP)
x2.go:18 0x4011d4 48c744246801000000 MOVQ $0x1, 0x68(SP)
x2.go:18 0x4011dd 48895c2458 MOVQ BX, 0x58(SP)
x2.go:18 0x4011e2 488d1d177f0b00 LEAQ 0xb7f17(IP), BX
x2.go:18 0x4011e9 48891c24 MOVQ BX, 0(SP)
x2.go:18 0x4011ed 488d1d9cd91900 LEAQ 0x19d99c(IP), BX
x2.go:18 0x4011f4 48895c2408 MOVQ BX, 0x8(SP)
x2.go:18 0x4011f9 48c744241000000000 MOVQ $0x0, 0x10(SP)
x2.go:18 0x401202 e869a90000 CALL runtime.convT2E(SB)
x2.go:18 0x401207 488b4c2418 MOVQ 0x18(SP), CX
x2.go:18 0x40120c 488b442420 MOVQ 0x20(SP), AX
x2.go:18 0x401211 488b5c2458 MOVQ 0x58(SP), BX
x2.go:18 0x401216 48894c2438 MOVQ CX, 0x38(SP)
x2.go:18 0x40121b 48890b MOVQ CX, 0(BX)
x2.go:18 0x40121e 4889442440 MOVQ AX, 0x40(SP)
x2.go:18 0x401223 803db6d8190000 CMPL $0x0, 0x19d8b6(IP)
x2.go:18 0x40122a 752b JNE 0x401257
x2.go:18 0x40122c 48894308 MOVQ AX, 0x8(BX)
x2.go:18 0x401230 488b5c2458 MOVQ 0x58(SP), BX
x2.go:18 0x401235 48891c24 MOVQ BX, 0(SP)
x2.go:18 0x401239 488b5c2460 MOVQ 0x60(SP), BX
x2.go:18 0x40123e 48895c2408 MOVQ BX, 0x8(SP)
x2.go:18 0x401243 488b5c2468 MOVQ 0x68(SP), BX
x2.go:18 0x401248 48895c2410 MOVQ BX, 0x10(SP)
x2.go:18 0x40124d e8ee950500 CALL fmt.Println(SB)
x2.go:19 0x401252 4883c470 ADDQ $0x70, SP
x2.go:19 0x401256 c3 RET
x2.go:18 0x401257 4c8d4308 LEAQ 0x8(BX), R8
x2.go:18 0x40125b 4c890424 MOVQ R8, 0(SP)
x2.go:18 0x40125f 4889442408 MOVQ AX, 0x8(SP)
x2.go:18 0x401264 e807de0000 CALL runtime.writebarrierptr(SB)
x2.go:18 0x401269 ebc5 JMP 0x401230
x2.go:18 0x40126b 8903 MOVL AX, 0(BX)
x2.go:18 0x40126d e959ffffff JMP 0x4011cb
x2.go:15 0x401272 e839210500 CALL runtime.morestack_noctxt(SB)
x2.go:15 0x401277 e9d4feffff JMP main.main(SB)