-
-
Save kbara/5a93c82f83c62515cf84 to your computer and use it in GitHub Desktop.
{ "if", | |
{ ">=", | |
"len", | |
54 }, | |
{ "let", | |
"var1", | |
{ "[]", | |
12, | |
2 }, | |
{ "if", | |
{ "if", | |
{ "=", | |
"var1", | |
56710 }, | |
{ "let", | |
"var2", | |
{ "[]", | |
20, | |
1 }, | |
{ "if", | |
{ "if", | |
{ "if", | |
{ "=", | |
"var2", | |
58 }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var2", | |
44 }, | |
{ "if", | |
{ ">=", | |
"len", | |
55 }, | |
{ "=", | |
{ "[]", | |
54, | |
1 }, | |
58 }, | |
{ "fail" } }, | |
{ "false" } } }, | |
{ "if", | |
{ "=", | |
{ "[]", | |
22, | |
4 }, | |
17169983 }, | |
{ "if", | |
{ "=", | |
{ "[]", | |
26, | |
4 }, | |
17825792 }, | |
{ "if", | |
{ "=", | |
{ "[]", | |
30, | |
4 }, | |
0 }, | |
{ "=", | |
{ "[]", | |
34, | |
4 }, | |
33554432 }, | |
{ "false" } }, | |
{ "false" } }, | |
{ "false" } }, | |
{ "false" } }, | |
{ "if", | |
{ "=", | |
{ "[]", | |
38, | |
4 }, | |
117833279 }, | |
{ "if", | |
{ "=", | |
{ "[]", | |
42, | |
4 }, | |
16777216 }, | |
{ "if", | |
{ "=", | |
{ "[]", | |
46, | |
4 }, | |
4286971906 }, | |
{ "=", | |
{ "&", | |
{ "[]", | |
50, | |
4 }, | |
15794175 }, | |
8390142 }, | |
{ "false" } }, | |
{ "false" } }, | |
{ "false" } }, | |
{ "false" } } }, | |
{ "false" } }, | |
{ "match" }, | |
{ "if", | |
{ "if", | |
{ "if", | |
{ "=", | |
"var1", | |
56710 }, | |
{ "let", | |
"var15", | |
{ "[]", | |
20, | |
1 }, | |
{ "if", | |
{ "if", | |
{ "if", | |
{ "=", | |
"var15", | |
17 }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var15", | |
44 }, | |
{ "if", | |
{ ">=", | |
"len", | |
55 }, | |
{ "=", | |
{ "[]", | |
54, | |
1 }, | |
17 }, | |
{ "fail" } }, | |
{ "false" } } }, | |
{ "=", | |
{ "&", | |
{ "[]", | |
22, | |
4 }, | |
-251658241 }, | |
392767 }, | |
{ "false" } }, | |
{ "if", | |
{ "=", | |
{ "[]", | |
38, | |
4 }, | |
17169983 }, | |
{ "=", | |
{ "[]", | |
42, | |
4 }, | |
6472 }, | |
{ "false" } }, | |
{ "false" } } }, | |
{ "false" } }, | |
{ "if", | |
{ "=", | |
"var1", | |
8 }, | |
{ "let", | |
"var23", | |
{ "[]", | |
23, | |
1 }, | |
{ "if", | |
{ "if", | |
{ "=", | |
"var23", | |
6 }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var23", | |
17 }, | |
{ "true" }, | |
{ "=", | |
"var23", | |
132 } } }, | |
{ "if", | |
{ "=", | |
{ "&", | |
{ "[]", | |
20, | |
2 }, | |
65311 }, | |
0 }, | |
{ "let", | |
"var30", | |
{ "<<", | |
{ "&", | |
{ "[]", | |
14, | |
1 }, | |
15 }, | |
2 }, | |
{ "if", | |
{ "<=", | |
{ "+", | |
"var30", | |
16 }, | |
"len" }, | |
{ "let", | |
"var37", | |
{ "ntohs", | |
{ "[]", | |
{ "+", | |
"var30", | |
14 }, | |
2 } }, | |
{ "if", | |
{ ">=", | |
"var37", | |
2397 }, | |
{ "<=", | |
"var37", | |
2399 }, | |
{ "false" } } }, | |
{ "fail" } } }, | |
{ "false" } }, | |
{ "false" } } }, | |
{ "if", | |
{ "=", | |
"var1", | |
56710 }, | |
{ "let", | |
"var45", | |
{ "[]", | |
20, | |
1 }, | |
{ "if", | |
{ "if", | |
{ "if", | |
{ "=", | |
"var45", | |
6 }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var45", | |
44 }, | |
{ "if", | |
{ ">=", | |
"len", | |
55 }, | |
{ "=", | |
{ "[]", | |
54, | |
1 }, | |
6 }, | |
{ "fail" } }, | |
{ "false" } } }, | |
{ "true" }, | |
{ "if", | |
{ "if", | |
{ "=", | |
"var45", | |
17 }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var45", | |
44 }, | |
{ "if", | |
{ ">=", | |
"len", | |
55 }, | |
{ "=", | |
{ "[]", | |
54, | |
1 }, | |
17 }, | |
{ "fail" } }, | |
{ "false" } } }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var45", | |
132 }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var45", | |
44 }, | |
{ "if", | |
{ ">=", | |
"len", | |
55 }, | |
{ "=", | |
{ "[]", | |
54, | |
1 }, | |
132 }, | |
{ "fail" } }, | |
{ "false" } } } } }, | |
{ "if", | |
{ ">=", | |
"len", | |
56 }, | |
{ "let", | |
"var55", | |
{ "ntohs", | |
{ "[]", | |
54, | |
2 } }, | |
{ "if", | |
{ ">=", | |
"var55", | |
2397 }, | |
{ "<=", | |
"var55", | |
2399 }, | |
{ "false" } } }, | |
{ "fail" } }, | |
{ "false" } } }, | |
{ "false" } } }, | |
{ "false" } }, | |
{ "if", | |
{ "=", | |
"var1", | |
8 }, | |
{ "let", | |
"var59", | |
{ "[]", | |
23, | |
1 }, | |
{ "if", | |
{ "if", | |
{ "=", | |
"var59", | |
6 }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var59", | |
17 }, | |
{ "true" }, | |
{ "=", | |
"var59", | |
132 } } }, | |
{ "if", | |
{ "=", | |
{ "&", | |
{ "[]", | |
20, | |
2 }, | |
65311 }, | |
0 }, | |
{ "let", | |
"var66", | |
{ "<<", | |
{ "&", | |
{ "[]", | |
14, | |
1 }, | |
15 }, | |
2 }, | |
{ "if", | |
{ "<=", | |
{ "+", | |
"var66", | |
18 }, | |
"len" }, | |
{ "=", | |
{ "[]", | |
{ "+", | |
"var66", | |
16 }, | |
2 }, | |
13568 }, | |
{ "fail" } } }, | |
{ "fail" } }, | |
{ "fail" } } }, | |
{ "if", | |
{ ">=", | |
"len", | |
58 }, | |
{ "if", | |
{ "=", | |
"var1", | |
56710 }, | |
{ "let", | |
"var74", | |
{ "[]", | |
20, | |
1 }, | |
{ "if", | |
{ "if", | |
{ "if", | |
{ "=", | |
"var74", | |
6 }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var74", | |
44 }, | |
{ "=", | |
{ "[]", | |
54, | |
1 }, | |
6 }, | |
{ "false" } } }, | |
{ "true" }, | |
{ "if", | |
{ "if", | |
{ "=", | |
"var74", | |
17 }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var74", | |
44 }, | |
{ "=", | |
{ "[]", | |
54, | |
1 }, | |
17 }, | |
{ "false" } } }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var74", | |
132 }, | |
{ "true" }, | |
{ "if", | |
{ "=", | |
"var74", | |
44 }, | |
{ "=", | |
{ "[]", | |
54, | |
1 }, | |
132 }, | |
{ "false" } } } } }, | |
{ "=", | |
{ "[]", | |
56, | |
2 }, | |
13568 }, | |
{ "fail" } } }, | |
{ "fail" } }, | |
{ "fail" } } }, | |
{ "fail" } } } }, | |
{ "fail" } } |
p = require("parse") | |
ssa = require("ssa") | |
data = assert(loadstring('anf = ' .. io.open("anf"):read("*a")))() | |
ssa.lower(anf) |
---- TRACE 2 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x4009d414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x41465068}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x4009d458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 2 mcode 441 | |
0bcbfc50 add rsp, -0x10 | |
0bcbfc54 mov dword [0x4009d410], 0x2 | |
0bcbfc5f mov edi, [0x4009d3d8] | |
0bcbfc66 cmp edi, [0x4009d3dc] | |
0bcbfc6d jb 0x0bcbfc86 | |
0bcbfc6f mov esi, 0x3 | |
0bcbfc74 mov edi, 0x4009d3b8 | |
0bcbfc79 call 0x00421730 ->lj_gc_step_jit | |
0bcbfc7e test eax, eax | |
0bcbfc80 jnz 0x0bcb0010 ->0 | |
0bcbfc86 mov edx, [0x4009d4b4] | |
0bcbfc8d mov ebp, [rdx-0x8] | |
0bcbfc90 mov edi, [rbp+0x14] | |
0bcbfc93 mov ebx, [rdi+0x10] | |
0bcbfc96 cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfc9d jnb 0x0bcb0010 ->0 | |
0bcbfca3 movsd xmm7, [rbx] | |
0bcbfca7 addsd xmm7, [0x400acda8] | |
0bcbfcb0 movsd [rsp+0x10], xmm7 | |
0bcbfcb6 movsd [rbx], xmm7 | |
0bcbfcba mov edi, 0x4009d414 | |
0bcbfcbf mov esi, [rdi+0x8] | |
0bcbfcc2 mov [rdi], esi | |
0bcbfcc4 mov esi, 0x4c | |
0bcbfcc9 call 0x00421b60 ->lj_buf_putchar | |
0bcbfcce mov edi, eax | |
0bcbfcd0 lea rsi, [rsp+0x10] | |
0bcbfcd5 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfcda mov edi, eax | |
0bcbfcdc call 0x00421ff0 ->lj_buf_tostr | |
0bcbfce1 mov [rsp+0xc], eax | |
0bcbfce5 mov edi, [0x4009d4b0] | |
0bcbfcec mov esi, 0x41465068 | |
0bcbfcf1 call 0x004223c0 ->lj_tab_dup | |
0bcbfcf6 mov ebx, eax | |
0bcbfcf8 mov [rsp+0x8], ebx | |
0bcbfcfc mov edi, [0x4009d4b0] | |
0bcbfd03 xor esi, esi | |
0bcbfd05 call 0x00422350 ->lj_tab_new1 | |
0bcbfd0a mov r15d, eax | |
0bcbfd0d mov edi, [0x4009d4b0] | |
0bcbfd14 mov eax, [rsp+0xc] | |
0bcbfd18 mov ebx, [rbx+0x14] | |
0bcbfd1b mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfd22 mov [rbx], r15d | |
0bcbfd25 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbfd2c mov [rbx+0x18], eax | |
0bcbfd2f mov esi, [rbp+0x18] | |
0bcbfd32 mov ebp, [rsi+0x10] | |
0bcbfd35 cmp dword [rbp+0x4], -0x0c | |
0bcbfd39 jnz 0x0bcb0018 ->2 | |
0bcbfd3f mov ebp, [rbp+0x0] | |
0bcbfd42 cmp dword [rbp+0x1c], +0x01 | |
0bcbfd46 jnz 0x0bcb0018 ->2 | |
0bcbfd4c mov ebp, [rbp+0x14] | |
0bcbfd4f mov rsi, 0xfffffffb41466c58 | |
0bcbfd59 cmp rsi, [rbp+0x8] | |
0bcbfd5d jnz 0x0bcb0018 ->2 | |
0bcbfd63 cmp dword [rbp+0x4], -0x0c | |
0bcbfd67 jnz 0x0bcb0018 ->2 | |
0bcbfd6d mov ebp, [rbp+0x0] | |
0bcbfd70 mov esi, [rbp+0x1c] | |
0bcbfd73 and esi, [rax+0x8] | |
0bcbfd76 lea esi, [rsi+rsi*2] | |
0bcbfd79 shl esi, 0x03 | |
0bcbfd7c add esi, [rbp+0x14] | |
0bcbfd7f cmp dword [rsi+0xc], -0x05 | |
0bcbfd83 jnz 0x0bcbfd8e | |
0bcbfd85 cmp eax, [rsi+0x8] | |
0bcbfd88 jz 0x0bcb0018 ->2 | |
0bcbfd8e mov esi, [rsi+0x10] | |
0bcbfd91 test esi, esi | |
0bcbfd93 jnz 0x0bcbfd7f | |
0bcbfd95 cmp dword [rbp+0x10], +0x00 | |
0bcbfd99 jnz 0x0bcb0018 ->2 | |
0bcbfd9f mov edx, 0x4009d448 | |
0bcbfda4 mov dword [rdx+0x4], 0xfffffffb | |
0bcbfdab mov [rdx], eax | |
0bcbfdad mov esi, ebp | |
0bcbfdaf call 0x00422cf0 ->lj_tab_newkey | |
0bcbfdb4 mov ebx, eax | |
0bcbfdb6 mov edx, [0x4009d4b4] | |
0bcbfdbd mov eax, [rsp+0x8] | |
0bcbfdc1 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfdc8 mov [rbx], eax | |
0bcbfdca test byte [rbp+0x4], 0x4 | |
0bcbfdce jz 0x0bcbfde5 | |
0bcbfdd0 and byte [rbp+0x4], 0xfb | |
0bcbfdd4 mov edi, [0x4009d3f4] | |
0bcbfddb mov [0x4009d3f4], ebp | |
0bcbfde2 mov [rbp+0xc], edi | |
0bcbfde5 mov byte [rbp+0x6], 0x0 | |
0bcbfde9 mov dword [rdx+0xc], 0xfffffff4 | |
0bcbfdf0 mov [rdx+0x8], eax | |
0bcbfdf3 xor eax, eax | |
0bcbfdf5 mov ebx, 0x414720d0 | |
0bcbfdfa mov r14d, 0x4009e008 | |
0bcbfe00 add rsp, +0x10 | |
0bcbfe04 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 3 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0070 ISNES 4 12 ; "match" | |
0071 JMP 5 => 0077 | |
0077 ISNES 4 14 ; "fail" | |
0078 JMP 5 => 0084 | |
0084 GGET 5 0 ; "assert" | |
0085 UGET 6 4 ; relops | |
0086 TGETV 6 6 4 | |
0087 CALL 5 1 2 | |
0000 . FUNCC ; assert | |
0088 UGET 5 5 ; finish_if | |
0089 MOV 6 1 | |
0090 MOV 7 0 | |
0091 MOV 8 2 | |
0092 MOV 9 3 | |
0093 CALL 5 1 5 | |
0000 . FUNCF 6 ; ssa.lua:49 | |
0001 . TDUP 4 1 | |
0002 . TSETB 1 4 2 | |
0003 . TGETS 5 2 2 ; "label" | |
0004 . TSETB 5 4 3 | |
0005 . TGETS 5 3 2 ; "label" | |
0006 . TSETB 5 4 4 | |
0007 . TSETS 4 0 0 ; "control" | |
0008 . RET0 0 1 | |
0094 RET0 0 1 | |
---- TRACE 3 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 r15 [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x4009d458] | |
0005 rbx [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 rbx p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 rbx > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 rbx p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x4009d458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 r15 > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 rbx > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m NE 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [32mstr[m NE 0028 [32m"match"[m | |
.... SNAP #6 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0034 > [32mstr[m NE 0028 [32m"fail"[m | |
.... SNAP #7 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0035 r14 > p32 UREFC 0001 #4 | |
0036 r13 > [31mtab[m ULOAD 0035 | |
0037 r14 p32 HREF 0036 0028 | |
0038 > tru HLOAD 0037 | |
0039 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0040 rbp > [31mtab[m SLOAD #2 T | |
0041 r13 > [31mtab[m SLOAD #3 T | |
0042 r14 > [31mtab[m SLOAD #4 T | |
0043 [8] > [31mtab[m TDUP [31m{0x400ba0c0}[m | |
0044 rax p32 FLOAD 0043 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 [31mtab[m ASTORE 0045 0021 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- [31m0041[m [31m0042[m [31m0043[m ] | |
0047 [35mint[m FLOAD 0041 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+1 [m | |
0049 r15 p32 FLOAD 0041 tab.node | |
0050 > p32 HREFK 0049 [32m"label"[m @1 | |
0051 r15 > [32mstr[m HLOAD 0050 | |
0052 p32 AREF 0044 [35m+3 [m | |
0053 [32mstr[m ASTORE 0052 0051 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- [31m0042[m [31m0043[m ---- ] | |
0054 [35mint[m FLOAD 0042 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 r15 p32 FLOAD 0042 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 r15 > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0044 [35m+4 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- ---- [31m0043[m ---- ] | |
0061 rsi p32 HREF 0040 [32m"control"[m | |
0062 > p32 EQ 0061 [0x4009d458] | |
0063 [31mtab[m FLOAD 0040 tab.meta | |
0064 > [31mtab[m EQ 0063 [31m[NULL][m | |
0065 rbx p32 NEWREF 0040 [32m"control"[m | |
0066 [31mtab[m HSTORE 0065 0043 | |
0067 nil TBAR 0040 | |
.... SNAP #11 [ [1mssa.lua:55[m|] | |
---- TRACE 3 mcode 916 | |
0bcbf8b5 mov dword [0x4009d410], 0x3 | |
0bcbf8c0 mov edi, [0x4009d3d8] | |
0bcbf8c7 cmp edi, [0x4009d3dc] | |
0bcbf8ce jb 0x0bcbf8e7 | |
0bcbf8d0 mov esi, 0x1 | |
0bcbf8d5 mov edi, 0x4009d3b8 | |
0bcbf8da call 0x00421730 ->lj_gc_step_jit | |
0bcbf8df test eax, eax | |
0bcbf8e1 jnz 0x0bcb0010 ->0 | |
0bcbf8e7 mov edi, [0x4009d4b0] | |
0bcbf8ee mov edx, [0x4009d4b4] | |
0bcbf8f5 mov ebp, [rdx-0x8] | |
0bcbf8f8 mov r15d, [rbp+0x8] | |
0bcbf8fc mov esi, [r15+0x1c] | |
0bcbf900 and esi, 0xce2b6183 | |
0bcbf906 lea esi, [rsi+rsi*2] | |
0bcbf909 shl esi, 0x03 | |
0bcbf90c add esi, [r15+0x14] | |
0bcbf910 cmp dword [rsi+0xc], -0x05 | |
0bcbf914 jnz 0x0bcbf923 | |
0bcbf916 cmp dword [rsi+0x8], 0x4009fdb0 | |
0bcbf91d jz 0x0bcb0010 ->0 | |
0bcbf923 mov esi, [rsi+0x10] | |
0bcbf926 test esi, esi | |
0bcbf928 jnz 0x0bcbf910 | |
0bcbf92a mov ebx, [r15+0x10] | |
0bcbf92e test ebx, ebx | |
0bcbf930 jz 0x0bcb0010 ->0 | |
0bcbf936 cmp dword [rbx+0x1c], +0x01 | |
0bcbf93a jnz 0x0bcb0010 ->0 | |
0bcbf940 mov ebx, [rbx+0x14] | |
0bcbf943 mov rsi, 0xfffffffb4009f4c8 | |
0bcbf94d cmp rsi, [rbx+0x20] | |
0bcbf951 jnz 0x0bcb0010 ->0 | |
0bcbf957 cmp dword [rbx+0x1c], -0x0c | |
0bcbf95b jnz 0x0bcb0010 ->0 | |
0bcbf961 mov ebx, [rbx+0x18] | |
0bcbf964 cmp dword [rbx+0x1c], +0x3f | |
0bcbf968 jnz 0x0bcb0010 ->0 | |
0bcbf96e mov ebx, [rbx+0x14] | |
0bcbf971 mov rsi, 0xfffffffb4009fdb0 | |
0bcbf97b cmp rsi, [rbx+0x50] | |
0bcbf97f jnz 0x0bcb0010 ->0 | |
0bcbf985 cmp dword [rbx+0x4c], -0x09 | |
0bcbf989 jnz 0x0bcb0010 ->0 | |
0bcbf98f mov esi, [r15+0x1c] | |
0bcbf993 and esi, 0x798a813c | |
0bcbf999 lea esi, [rsi+rsi*2] | |
0bcbf99c shl esi, 0x03 | |
0bcbf99f add esi, [r15+0x14] | |
0bcbf9a3 cmp dword [rsi+0xc], -0x05 | |
0bcbf9a7 jnz 0x0bcbf9b6 | |
0bcbf9a9 cmp dword [rsi+0x8], 0x4009ffb0 | |
0bcbf9b0 jz 0x0bcb0010 ->0 | |
0bcbf9b6 mov esi, [rsi+0x10] | |
0bcbf9b9 test esi, esi | |
0bcbf9bb jnz 0x0bcbf9a3 | |
0bcbf9bd mov rsi, 0xfffffffb4009ffb0 | |
0bcbf9c7 cmp rsi, [rbx+0x5a8] | |
0bcbf9ce jnz 0x0bcb0010 ->0 | |
0bcbf9d4 cmp dword [rbx+0x5a4], -0x09 | |
0bcbf9db jnz 0x0bcb0010 ->0 | |
0bcbf9e1 cmp dword [rdx+0x4], -0x0c | |
0bcbf9e5 jnz 0x0bcb0010 ->0 | |
0bcbf9eb mov r15d, [rdx] | |
0bcbf9ee cmp dword [rbx+0x5a0], 0x4009ff18 | |
0bcbf9f8 jnz 0x0bcb0010 ->0 | |
0bcbf9fe cmp dword [rbx+0x48], 0x4009fd88 | |
0bcbfa05 jnz 0x0bcb0010 ->0 | |
0bcbfa0b cmp dword [r15+0x18], +0x01 | |
0bcbfa10 jbe 0x0bcb0010 ->0 | |
0bcbfa16 mov ebx, [r15+0x8] | |
0bcbfa1a cmp dword [rbx+0xc], -0x05 | |
0bcbfa1e jnz 0x0bcb0010 ->0 | |
0bcbfa24 mov ebx, [rbx+0x8] | |
0bcbfa27 cmp ebx, 0x4009f8f8 | |
0bcbfa2d jz 0x0bcb0014 ->1 | |
0bcbfa33 cmp ebx, 0x400b9160 | |
0bcbfa39 jz 0x0bcb0018 ->2 | |
0bcbfa3f cmp ebx, 0x4009fa18 | |
0bcbfa45 jz 0x0bcb001c ->3 | |
0bcbfa4b cmp ebx, 0x4009f870 | |
0bcbfa51 jz 0x0bcb0020 ->4 | |
0bcbfa57 cmp ebx, 0x400a2cb0 | |
0bcbfa5d jz 0x0bcb0024 ->5 | |
0bcbfa63 cmp ebx, 0x414627b0 | |
0bcbfa69 jz 0x0bcb0028 ->6 | |
0bcbfa6f mov esi, [rbp+0x24] | |
0bcbfa72 cmp byte [rsi+0x6], 0x1 | |
0bcbfa76 jnz 0x0bcb002c ->7 | |
0bcbfa7c lea r14d, [rsi+0x8] | |
0bcbfa80 cmp dword [r14+0x4], -0x0c | |
0bcbfa85 jnz 0x0bcb002c ->7 | |
0bcbfa8b mov r13d, [r14] | |
0bcbfa8e mov r14d, [r13+0x1c] | |
0bcbfa92 and r14d, [rbx+0x8] | |
0bcbfa96 lea r14d, [r14+r14*2] | |
0bcbfa9a shl r14d, 0x03 | |
0bcbfa9e add r14d, [r13+0x14] | |
0bcbfaa2 cmp dword [r14+0xc], -0x05 | |
0bcbfaa7 jnz 0x0bcbfaaf | |
0bcbfaa9 cmp ebx, [r14+0x8] | |
0bcbfaad jz 0x0bcbfabe | |
0bcbfaaf mov r14d, [r14+0x10] | |
0bcbfab3 test r14d, r14d | |
0bcbfab6 jnz 0x0bcbfaa2 | |
0bcbfab8 mov r14d, 0x4009d458 | |
0bcbfabe cmp dword [r14+0x4], -0x03 | |
0bcbfac3 jnz 0x0bcb002c ->7 | |
0bcbfac9 cmp ebp, 0x4146c4a8 | |
0bcbfacf jnz 0x0bcb002c ->7 | |
0bcbfad5 cmp dword [rdx+0xc], -0x0c | |
0bcbfad9 jnz 0x0bcb002c ->7 | |
0bcbfadf mov ebp, [rdx+0x8] | |
0bcbfae2 cmp dword [rdx+0x14], -0x0c | |
0bcbfae6 jnz 0x0bcb002c ->7 | |
0bcbfaec mov r13d, [rdx+0x10] | |
0bcbfaf0 cmp dword [rdx+0x1c], -0x0c | |
0bcbfaf4 jnz 0x0bcb002c ->7 | |
0bcbfafa mov r14d, [rdx+0x18] | |
0bcbfafe mov esi, 0x400ba0c0 | |
0bcbfb03 call 0x004223c0 ->lj_tab_dup | |
0bcbfb08 mov [rsp+0x8], eax | |
0bcbfb0c mov edi, [0x4009d4b0] | |
0bcbfb13 mov eax, [rax+0x8] | |
0bcbfb16 mov dword [rax+0x14], 0xfffffff4 | |
0bcbfb1d mov [rax+0x10], r15d | |
0bcbfb21 cmp dword [r13+0x1c], +0x01 | |
0bcbfb26 jnz 0x0bcb0030 ->8 | |
0bcbfb2c mov r15d, [r13+0x14] | |
0bcbfb30 mov rsi, 0xfffffffb41460c98 | |
0bcbfb3a cmp rsi, [r15+0x20] | |
0bcbfb3e jnz 0x0bcb0030 ->8 | |
0bcbfb44 cmp dword [r15+0x1c], -0x05 | |
0bcbfb49 jnz 0x0bcb0030 ->8 | |
0bcbfb4f mov r15d, [r15+0x18] | |
0bcbfb53 mov dword [rax+0x1c], 0xfffffffb | |
0bcbfb5a mov [rax+0x18], r15d | |
0bcbfb5e cmp dword [r14+0x1c], +0x01 | |
0bcbfb63 jnz 0x0bcb0034 ->9 | |
0bcbfb69 mov r15d, [r14+0x14] | |
0bcbfb6d mov rsi, 0xfffffffb41460c98 | |
0bcbfb77 cmp rsi, [r15+0x20] | |
0bcbfb7b jnz 0x0bcb0034 ->9 | |
0bcbfb81 cmp dword [r15+0x1c], -0x05 | |
0bcbfb86 jnz 0x0bcb0034 ->9 | |
0bcbfb8c mov r15d, [r15+0x18] | |
0bcbfb90 mov dword [rax+0x24], 0xfffffffb | |
0bcbfb97 mov [rax+0x20], r15d | |
0bcbfb9b mov esi, [rbp+0x1c] | |
0bcbfb9e and esi, 0x2a54dc55 | |
0bcbfba4 lea esi, [rsi+rsi*2] | |
0bcbfba7 shl esi, 0x03 | |
0bcbfbaa add esi, [rbp+0x14] | |
0bcbfbad cmp dword [rsi+0xc], -0x05 | |
0bcbfbb1 jnz 0x0bcbfbc0 | |
0bcbfbb3 cmp dword [rsi+0x8], 0x414612c0 | |
0bcbfbba jz 0x0bcb0038 ->10 | |
0bcbfbc0 mov esi, [rsi+0x10] | |
0bcbfbc3 test esi, esi | |
0bcbfbc5 jnz 0x0bcbfbad | |
0bcbfbc7 cmp dword [rbp+0x10], +0x00 | |
0bcbfbcb jnz 0x0bcb0038 ->10 | |
0bcbfbd1 mov edx, 0x4009d448 | |
0bcbfbd6 mov dword [rdx+0x4], 0xfffffffb | |
0bcbfbdd mov dword [rdx], 0x414612c0 | |
0bcbfbe3 mov esi, ebp | |
0bcbfbe5 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfbea mov ebx, eax | |
0bcbfbec mov edx, [0x4009d4b4] | |
0bcbfbf3 mov eax, [rsp+0x8] | |
0bcbfbf7 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfbfe mov [rbx], eax | |
0bcbfc00 test byte [rbp+0x4], 0x4 | |
0bcbfc04 jz 0x0bcbfc1b | |
0bcbfc06 and byte [rbp+0x4], 0xfb | |
0bcbfc0a mov edi, [0x4009d3f4] | |
0bcbfc11 mov [0x4009d3f4], ebp | |
0bcbfc18 mov [rbp+0xc], edi | |
0bcbfc1b mov eax, [0x4009d4b0] | |
0bcbfc22 mov eax, [rax+0x20] | |
0bcbfc25 sub eax, edx | |
0bcbfc27 cmp eax, +0x68 | |
0bcbfc2a jb 0x0bcb003c ->11 | |
0bcbfc30 mov dword [rdx-0x8], 0x4146c4a8 | |
0bcbfc37 xor eax, eax | |
0bcbfc39 mov ebx, 0x41473430 | |
0bcbfc3e mov r14d, 0x4009e008 | |
0bcbfc44 jmp 0x00420177 | |
---- TRACE 3 stop -> return | |
---- TRACE 3 exit 2 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 2 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 3 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 6 | |
---- TRACE 4 start ssa.lua:46 | |
0001 TDUP 2 1 | |
0002 TSETB 1 2 2 | |
0003 TSETS 2 0 0 ; "control" | |
0004 RET0 0 1 | |
---- TRACE 4 IR | |
.... SNAP #0 [ ---- ---- ---- ] | |
0001 [8] > [31mtab[m TDUP [31m{0x41460e90}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 rax p32 FLOAD 0001 tab.array | |
0004 p32 AREF 0003 [35m+2 [m | |
0005 [31mtab[m ASTORE 0004 0002 | |
.... SNAP #1 [ ---- ---- ---- [31m0001[m ] | |
0006 rbp > [31mtab[m SLOAD #1 T | |
0007 rsi p32 HREF 0006 [32m"control"[m | |
0008 > p32 EQ 0007 [0x4009d458] | |
0009 [31mtab[m FLOAD 0006 tab.meta | |
0010 > [31mtab[m EQ 0009 [31m[NULL][m | |
0011 rbx p32 NEWREF 0006 [32m"control"[m | |
0012 [31mtab[m HSTORE 0011 0001 | |
0013 nil TBAR 0006 | |
.... SNAP #2 [ ---- ] | |
---- TRACE 4 mcode 269 | |
0bcbf7a1 mov dword [0x4009d410], 0x4 | |
0bcbf7ac mov edi, [0x4009d3d8] | |
0bcbf7b3 cmp edi, [0x4009d3dc] | |
0bcbf7ba jb 0x0bcbf7d3 | |
0bcbf7bc mov esi, 0x1 | |
0bcbf7c1 mov edi, 0x4009d3b8 | |
0bcbf7c6 call 0x00421730 ->lj_gc_step_jit | |
0bcbf7cb test eax, eax | |
0bcbf7cd jnz 0x0bcb0010 ->0 | |
0bcbf7d3 mov edi, [0x4009d4b0] | |
0bcbf7da mov esi, 0x41460e90 | |
0bcbf7df call 0x004223c0 ->lj_tab_dup | |
0bcbf7e4 mov [rsp+0x8], eax | |
0bcbf7e8 mov edi, [0x4009d4b0] | |
0bcbf7ef mov edx, [0x4009d4b4] | |
0bcbf7f6 cmp dword [rdx+0xc], -0x0c | |
0bcbf7fa jnz 0x0bcb0010 ->0 | |
0bcbf800 mov ebp, [rdx+0x8] | |
0bcbf803 mov eax, [rax+0x8] | |
0bcbf806 mov dword [rax+0x14], 0xfffffff4 | |
0bcbf80d mov [rax+0x10], ebp | |
0bcbf810 cmp dword [rdx+0x4], -0x0c | |
0bcbf814 jnz 0x0bcb0014 ->1 | |
0bcbf81a mov ebp, [rdx] | |
0bcbf81c mov esi, [rbp+0x1c] | |
0bcbf81f and esi, 0x2a54dc55 | |
0bcbf825 lea esi, [rsi+rsi*2] | |
0bcbf828 shl esi, 0x03 | |
0bcbf82b add esi, [rbp+0x14] | |
0bcbf82e cmp dword [rsi+0xc], -0x05 | |
0bcbf832 jnz 0x0bcbf841 | |
0bcbf834 cmp dword [rsi+0x8], 0x414612c0 | |
0bcbf83b jz 0x0bcb0014 ->1 | |
0bcbf841 mov esi, [rsi+0x10] | |
0bcbf844 test esi, esi | |
0bcbf846 jnz 0x0bcbf82e | |
0bcbf848 cmp dword [rbp+0x10], +0x00 | |
0bcbf84c jnz 0x0bcb0014 ->1 | |
0bcbf852 mov edx, 0x4009d448 | |
0bcbf857 mov dword [rdx+0x4], 0xfffffffb | |
0bcbf85e mov dword [rdx], 0x414612c0 | |
0bcbf864 mov esi, ebp | |
0bcbf866 call 0x00422cf0 ->lj_tab_newkey | |
0bcbf86b mov ebx, eax | |
0bcbf86d mov edx, [0x4009d4b4] | |
0bcbf874 mov eax, [rsp+0x8] | |
0bcbf878 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbf87f mov [rbx], eax | |
0bcbf881 test byte [rbp+0x4], 0x4 | |
0bcbf885 jz 0x0bcbf89c | |
0bcbf887 and byte [rbp+0x4], 0xfb | |
0bcbf88b mov edi, [0x4009d3f4] | |
0bcbf892 mov [0x4009d3f4], ebp | |
0bcbf899 mov [rbp+0xc], edi | |
0bcbf89c xor eax, eax | |
0bcbf89e mov ebx, 0x41472c38 | |
0bcbf8a3 mov r14d, 0x4009e008 | |
0bcbf8a9 jmp 0x00420177 | |
---- TRACE 4 stop -> return | |
---- TRACE 3 exit 4 | |
---- TRACE 5 start ssa.lua:52 | |
0001 TDUP 2 1 | |
0002 TGETS 3 1 2 ; "label" | |
0003 TSETB 3 2 2 | |
0004 TSETS 2 0 0 ; "control" | |
0005 RET0 0 1 | |
---- TRACE 5 IR | |
.... SNAP #0 [ ---- ---- ---- ] | |
0001 [8] > [31mtab[m TDUP [31m{0x400a5320}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 [35mint[m FLOAD 0002 tab.hmask | |
0004 > [35mint[m EQ 0003 [35m+1 [m | |
0005 rbp p32 FLOAD 0002 tab.node | |
0006 > p32 HREFK 0005 [32m"label"[m @1 | |
0007 rbp > [32mstr[m HLOAD 0006 | |
0008 rax p32 FLOAD 0001 tab.array | |
0009 p32 AREF 0008 [35m+2 [m | |
0010 [32mstr[m ASTORE 0009 0007 | |
.... SNAP #1 [ ---- ---- ---- [31m0001[m ---- ] | |
0011 rbp > [31mtab[m SLOAD #1 T | |
0012 rsi p32 HREF 0011 [32m"control"[m | |
0013 > p32 EQ 0012 [0x4009d458] | |
0014 [31mtab[m FLOAD 0011 tab.meta | |
0015 > [31mtab[m EQ 0014 [31m[NULL][m | |
0016 rbx p32 NEWREF 0011 [32m"control"[m | |
0017 [31mtab[m HSTORE 0016 0001 | |
0018 nil TBAR 0011 | |
.... SNAP #2 [ ---- ] | |
---- TRACE 5 mcode 315 | |
0bcbf65f mov dword [0x4009d410], 0x5 | |
0bcbf66a mov edi, [0x4009d3d8] | |
0bcbf671 cmp edi, [0x4009d3dc] | |
0bcbf678 jb 0x0bcbf691 | |
0bcbf67a mov esi, 0x1 | |
0bcbf67f mov edi, 0x4009d3b8 | |
0bcbf684 call 0x00421730 ->lj_gc_step_jit | |
0bcbf689 test eax, eax | |
0bcbf68b jnz 0x0bcb0010 ->0 | |
0bcbf691 mov edi, [0x4009d4b0] | |
0bcbf698 mov esi, 0x400a5320 | |
0bcbf69d call 0x004223c0 ->lj_tab_dup | |
0bcbf6a2 mov [rsp+0x8], eax | |
0bcbf6a6 mov edi, [0x4009d4b0] | |
0bcbf6ad mov edx, [0x4009d4b4] | |
0bcbf6b4 cmp dword [rdx+0xc], -0x0c | |
0bcbf6b8 jnz 0x0bcb0010 ->0 | |
0bcbf6be mov ebp, [rdx+0x8] | |
0bcbf6c1 cmp dword [rbp+0x1c], +0x01 | |
0bcbf6c5 jnz 0x0bcb0010 ->0 | |
0bcbf6cb mov ebp, [rbp+0x14] | |
0bcbf6ce mov rsi, 0xfffffffb41460c98 | |
0bcbf6d8 cmp rsi, [rbp+0x20] | |
0bcbf6dc jnz 0x0bcb0010 ->0 | |
0bcbf6e2 cmp dword [rbp+0x1c], -0x05 | |
0bcbf6e6 jnz 0x0bcb0010 ->0 | |
0bcbf6ec mov ebp, [rbp+0x18] | |
0bcbf6ef mov eax, [rax+0x8] | |
0bcbf6f2 mov dword [rax+0x14], 0xfffffffb | |
0bcbf6f9 mov [rax+0x10], ebp | |
0bcbf6fc cmp dword [rdx+0x4], -0x0c | |
0bcbf700 jnz 0x0bcb0014 ->1 | |
0bcbf706 mov ebp, [rdx] | |
0bcbf708 mov esi, [rbp+0x1c] | |
0bcbf70b and esi, 0x2a54dc55 | |
0bcbf711 lea esi, [rsi+rsi*2] | |
0bcbf714 shl esi, 0x03 | |
0bcbf717 add esi, [rbp+0x14] | |
0bcbf71a cmp dword [rsi+0xc], -0x05 | |
0bcbf71e jnz 0x0bcbf72d | |
0bcbf720 cmp dword [rsi+0x8], 0x414612c0 | |
0bcbf727 jz 0x0bcb0014 ->1 | |
0bcbf72d mov esi, [rsi+0x10] | |
0bcbf730 test esi, esi | |
0bcbf732 jnz 0x0bcbf71a | |
0bcbf734 cmp dword [rbp+0x10], +0x00 | |
0bcbf738 jnz 0x0bcb0014 ->1 | |
0bcbf73e mov edx, 0x4009d448 | |
0bcbf743 mov dword [rdx+0x4], 0xfffffffb | |
0bcbf74a mov dword [rdx], 0x414612c0 | |
0bcbf750 mov esi, ebp | |
0bcbf752 call 0x00422cf0 ->lj_tab_newkey | |
0bcbf757 mov ebx, eax | |
0bcbf759 mov edx, [0x4009d4b4] | |
0bcbf760 mov eax, [rsp+0x8] | |
0bcbf764 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbf76b mov [rbx], eax | |
0bcbf76d test byte [rbp+0x4], 0x4 | |
0bcbf771 jz 0x0bcbf788 | |
0bcbf773 and byte [rbp+0x4], 0xfb | |
0bcbf777 mov edi, [0x4009d3f4] | |
0bcbf77e mov [0x4009d3f4], ebp | |
0bcbf785 mov [rbp+0xc], edi | |
0bcbf788 xor eax, eax | |
0bcbf78a mov ebx, 0x400ae9ec | |
0bcbf78f mov r14d, 0x4009e008 | |
0bcbf795 jmp 0x00420177 | |
---- TRACE 5 stop -> return | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 1 | |
---- TRACE 6 start 3/1 ssa.lua:59 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . JFUNCF 13 3 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 3 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 3 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 5 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 3 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 5 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 6 abort ssa.lua:79 -- down-recursion, restarting | |
---- TRACE 6 start ssa.lua:79 | |
0094 RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 3 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 5 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 3 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 5 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 3 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 3 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . JFUNCF 13 3 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0014 . . UGET 5 0 ; add_block | |
0015 . . CALL 5 2 1 | |
0000 . . . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0016 . . UGET 6 0 ; add_block | |
0017 . . CALL 6 2 1 | |
0000 . . . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0018 . . UGET 7 1 ; compile_bool | |
0019 . . TGETB 8 0 2 | |
0020 . . MOV 9 1 | |
0021 . . MOV 10 5 | |
0022 . . MOV 11 6 | |
0023 . . CALL 7 1 5 | |
0000 . . . JFUNCF 13 3 ; ssa.lua:55 | |
0001 . . . GGET 4 0 ; "assert" | |
0002 . . . GGET 5 1 ; "type" | |
0003 . . . MOV 6 0 | |
0004 . . . CALL 5 2 2 | |
0000 . . . . FUNCC ; type | |
0005 . . . ISEQS 5 2 ; "table" | |
0006 . . . JMP 5 => 0009 | |
0009 . . . KPRI 5 2 | |
0010 . . . CALL 4 1 2 | |
0000 . . . . FUNCC ; assert | |
0011 . . . TGETB 4 0 1 | |
0012 . . . ISNES 4 3 ; "if" | |
0013 . . . JMP 5 => 0037 | |
0037 . . . ISNES 4 4 ; "let" | |
0038 . . . JMP 5 => 0056 | |
0056 . . . ISNES 4 10 ; "true" | |
0057 . . . JMP 5 => 0063 | |
0063 . . . ISNES 4 11 ; "false" | |
0064 . . . JMP 5 => 0070 | |
0070 . . . ISNES 4 12 ; "match" | |
0071 . . . JMP 5 => 0077 | |
0077 . . . ISNES 4 14 ; "fail" | |
0078 . . . JMP 5 => 0084 | |
0084 . . . GGET 5 0 ; "assert" | |
0085 . . . UGET 6 4 ; relops | |
0086 . . . TGETV 6 6 4 | |
0087 . . . CALL 5 1 2 | |
0000 . . . . FUNCC ; assert | |
0088 . . . UGET 5 5 ; finish_if | |
0089 . . . MOV 6 1 | |
0090 . . . MOV 7 0 | |
0091 . . . MOV 8 2 | |
0092 . . . MOV 9 3 | |
0093 . . . CALL 5 1 5 | |
0000 . . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . . TDUP 4 1 | |
0002 . . . . TSETB 1 4 2 | |
0003 . . . . TGETS 5 2 2 ; "label" | |
0004 . . . . TSETB 5 4 3 | |
0005 . . . . TGETS 5 3 2 ; "label" | |
0006 . . . . TSETB 5 4 4 | |
0007 . . . . TSETS 4 0 0 ; "control" | |
0008 . . . . RET0 0 1 | |
0094 . . . RET0 0 1 | |
0024 . . UGET 7 1 ; compile_bool | |
0025 . . TGETB 8 0 3 | |
0026 . . MOV 9 5 | |
0027 . . MOV 10 2 | |
0028 . . MOV 11 3 | |
0029 . . CALL 7 1 5 | |
0000 . . . JFUNCF 13 3 ; ssa.lua:55 | |
0001 . . . GGET 4 0 ; "assert" | |
0002 . . . GGET 5 1 ; "type" | |
0003 . . . MOV 6 0 | |
0004 . . . CALL 5 2 2 | |
0000 . . . . FUNCC ; type | |
0005 . . . ISEQS 5 2 ; "table" | |
0006 . . . JMP 5 => 0009 | |
0009 . . . KPRI 5 2 | |
0010 . . . CALL 4 1 2 | |
0000 . . . . FUNCC ; assert | |
0011 . . . TGETB 4 0 1 | |
0012 . . . ISNES 4 3 ; "if" | |
0013 . . . JMP 5 => 0037 | |
0014 . . . UGET 5 0 ; add_block | |
0015 . . . CALL 5 2 1 | |
0000 . . . . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . . . . UGET 0 0 ; label_counter | |
0002 . . . . ADDVN 0 0 0 ; 1 | |
0003 . . . . USETV 0 0 ; label_counter | |
0004 . . . . KSTR 0 0 ; "L" | |
0005 . . . . UGET 1 0 ; label_counter | |
0006 . . . . CAT 0 0 1 | |
0007 . . . . TDUP 1 1 | |
0008 . . . . TNEW 2 0 | |
0009 . . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . . TSETS 0 1 3 ; "label" | |
0011 . . . . UGET 2 1 ; ssa | |
0012 . . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . . TSETV 1 2 0 | |
0014 . . . . RET1 1 2 | |
0016 . . . UGET 6 0 ; add_block | |
0017 . . . CALL 6 2 1 | |
0000 . . . . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . . . . UGET 0 0 ; label_counter | |
0002 . . . . ADDVN 0 0 0 ; 1 | |
0003 . . . . USETV 0 0 ; label_counter | |
0004 . . . . KSTR 0 0 ; "L" | |
0005 . . . . UGET 1 0 ; label_counter | |
0006 . . . . CAT 0 0 1 | |
0007 . . . . TDUP 1 1 | |
0008 . . . . TNEW 2 0 | |
0009 . . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . . TSETS 0 1 3 ; "label" | |
0011 . . . . UGET 2 1 ; ssa | |
0012 . . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . . TSETV 1 2 0 | |
0014 . . . . RET1 1 2 | |
0018 . . . UGET 7 1 ; compile_bool | |
0019 . . . TGETB 8 0 2 | |
0020 . . . MOV 9 1 | |
0021 . . . MOV 10 5 | |
0022 . . . MOV 11 6 | |
0023 . . . CALL 7 1 5 | |
0000 . . . . JFUNCF 13 3 ; ssa.lua:55 | |
---- TRACE 6 abort ssa.lua:55 -- call unroll limit reached | |
---- TRACE 6 start ssa.lua:49 | |
0001 TDUP 4 1 | |
0002 TSETB 1 4 2 | |
0003 TGETS 5 2 2 ; "label" | |
0004 TSETB 5 4 3 | |
0005 TGETS 5 3 2 ; "label" | |
0006 TSETB 5 4 4 | |
0007 TSETS 4 0 0 ; "control" | |
0008 RET0 0 1 | |
---- TRACE 6 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rax > [31mtab[m TDUP [31m{0x400ba0c0}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 rbx p32 FLOAD 0001 tab.array | |
0004 p32 AREF 0003 [35m+2 [m | |
0005 [31mtab[m ASTORE 0004 0002 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [31m0001[m ] | |
0006 rbp > [31mtab[m SLOAD #3 T | |
0007 [35mint[m FLOAD 0006 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 rbp p32 FLOAD 0006 tab.node | |
0010 > p32 HREFK 0009 [32m"label"[m @1 | |
0011 rbp > [32mstr[m HLOAD 0010 | |
0012 p32 AREF 0003 [35m+3 [m | |
0013 [32mstr[m ASTORE 0012 0011 | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0014 rbp > [31mtab[m SLOAD #4 T | |
0015 [35mint[m FLOAD 0014 tab.hmask | |
0016 > [35mint[m EQ 0015 [35m+1 [m | |
0017 rbp p32 FLOAD 0014 tab.node | |
0018 > p32 HREFK 0017 [32m"label"[m @1 | |
0019 rbp > [32mstr[m HLOAD 0018 | |
0020 p32 AREF 0003 [35m+4 [m | |
0021 [32mstr[m ASTORE 0020 0019 | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0022 rbp > [31mtab[m SLOAD #1 T | |
0023 [35mint[m FLOAD 0022 tab.hmask | |
0024 > [35mint[m EQ 0023 [35m+3 [m | |
0025 rbx p32 FLOAD 0022 tab.node | |
0026 > p32 HREFK 0025 [32m"control"[m @1 | |
0027 [31mtab[m FLOAD 0022 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 [31mtab[m HSTORE 0026 0001 | |
0030 nil TBAR 0022 | |
.... SNAP #4 [ ---- ] | |
---- TRACE 6 mcode 348 | |
0bcbf4fc mov dword [0x4009d410], 0x6 | |
0bcbf507 mov edi, [0x4009d3d8] | |
0bcbf50e cmp edi, [0x4009d3dc] | |
0bcbf515 jb 0x0bcbf52e | |
0bcbf517 mov esi, 0x1 | |
0bcbf51c mov edi, 0x4009d3b8 | |
0bcbf521 call 0x00421730 ->lj_gc_step_jit | |
0bcbf526 test eax, eax | |
0bcbf528 jnz 0x0bcb0010 ->0 | |
0bcbf52e mov edi, [0x4009d4b0] | |
0bcbf535 mov esi, 0x400ba0c0 | |
0bcbf53a call 0x004223c0 ->lj_tab_dup | |
0bcbf53f mov edx, [0x4009d4b4] | |
0bcbf546 cmp dword [rdx+0xc], -0x0c | |
0bcbf54a jnz 0x0bcb0010 ->0 | |
0bcbf550 mov ebp, [rdx+0x8] | |
0bcbf553 mov ebx, [rax+0x8] | |
0bcbf556 mov dword [rbx+0x14], 0xfffffff4 | |
0bcbf55d mov [rbx+0x10], ebp | |
0bcbf560 cmp dword [rdx+0x14], -0x0c | |
0bcbf564 jnz 0x0bcb0014 ->1 | |
0bcbf56a mov ebp, [rdx+0x10] | |
0bcbf56d cmp dword [rbp+0x1c], +0x01 | |
0bcbf571 jnz 0x0bcb0014 ->1 | |
0bcbf577 mov ebp, [rbp+0x14] | |
0bcbf57a mov rdi, 0xfffffffb41460c98 | |
0bcbf584 cmp rdi, [rbp+0x20] | |
0bcbf588 jnz 0x0bcb0014 ->1 | |
0bcbf58e cmp dword [rbp+0x1c], -0x05 | |
0bcbf592 jnz 0x0bcb0014 ->1 | |
0bcbf598 mov ebp, [rbp+0x18] | |
0bcbf59b mov dword [rbx+0x1c], 0xfffffffb | |
0bcbf5a2 mov [rbx+0x18], ebp | |
0bcbf5a5 cmp dword [rdx+0x1c], -0x0c | |
0bcbf5a9 jnz 0x0bcb0018 ->2 | |
0bcbf5af mov ebp, [rdx+0x18] | |
0bcbf5b2 cmp dword [rbp+0x1c], +0x01 | |
0bcbf5b6 jnz 0x0bcb0018 ->2 | |
0bcbf5bc mov ebp, [rbp+0x14] | |
0bcbf5bf mov rdi, 0xfffffffb41460c98 | |
0bcbf5c9 cmp rdi, [rbp+0x20] | |
0bcbf5cd jnz 0x0bcb0018 ->2 | |
0bcbf5d3 cmp dword [rbp+0x1c], -0x05 | |
0bcbf5d7 jnz 0x0bcb0018 ->2 | |
0bcbf5dd mov ebp, [rbp+0x18] | |
0bcbf5e0 mov dword [rbx+0x24], 0xfffffffb | |
0bcbf5e7 mov [rbx+0x20], ebp | |
0bcbf5ea cmp dword [rdx+0x4], -0x0c | |
0bcbf5ee jnz 0x0bcb001c ->3 | |
0bcbf5f4 mov ebp, [rdx] | |
0bcbf5f6 cmp dword [rbp+0x1c], +0x03 | |
0bcbf5fa jnz 0x0bcb001c ->3 | |
0bcbf600 mov ebx, [rbp+0x14] | |
0bcbf603 mov rdi, 0xfffffffb414612c0 | |
0bcbf60d cmp rdi, [rbx+0x20] | |
0bcbf611 jnz 0x0bcb001c ->3 | |
0bcbf617 cmp dword [rbp+0x10], +0x00 | |
0bcbf61b jnz 0x0bcb001c ->3 | |
0bcbf621 mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbf628 mov [rbx+0x18], eax | |
0bcbf62b test byte [rbp+0x4], 0x4 | |
0bcbf62f jz 0x0bcbf646 | |
0bcbf631 and byte [rbp+0x4], 0xfb | |
0bcbf635 mov edi, [0x4009d3f4] | |
0bcbf63c mov [0x4009d3f4], ebp | |
0bcbf643 mov [rbp+0xc], edi | |
0bcbf646 xor eax, eax | |
0bcbf648 mov ebx, 0x400ba820 | |
0bcbf64d mov r14d, 0x4009e008 | |
0bcbf653 jmp 0x00420177 | |
---- TRACE 6 stop -> return | |
---- TRACE 5 exit 1 | |
---- TRACE 6 exit 1 |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x41937414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x40372418}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x41937458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x41937410], 0x1 | |
0bcbfe53 mov edi, [0x419373d8] | |
0bcbfe5a cmp edi, [0x419373dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x419373b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x419374b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x403610a0] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x41937414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x419374b0] | |
0bcbfee0 mov esi, 0x40372418 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x419374b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x419374b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb403716f0 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x41937448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x419374b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x419373f4] | |
0bcbffcf mov [0x419373f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x403732a0 | |
0bcbffee mov r14d, 0x41938008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0070 ISNES 4 12 ; "match" | |
0071 JMP 5 => 0077 | |
0077 ISNES 4 14 ; "fail" | |
0078 JMP 5 => 0084 | |
0084 GGET 5 0 ; "assert" | |
0085 UGET 6 4 ; relops | |
0086 TGETV 6 6 4 | |
0087 CALL 5 1 2 | |
0000 . FUNCC ; assert | |
0088 UGET 5 5 ; finish_if | |
0089 MOV 6 1 | |
0090 MOV 7 0 | |
0091 MOV 8 2 | |
0092 MOV 9 3 | |
0093 CALL 5 1 5 | |
0000 . FUNCF 6 ; ssa.lua:49 | |
0001 . TDUP 4 1 | |
0002 . TSETB 1 4 2 | |
0003 . TGETS 5 2 2 ; "label" | |
0004 . TSETB 5 4 3 | |
0005 . TGETS 5 3 2 ; "label" | |
0006 . TSETB 5 4 4 | |
0007 . TSETS 4 0 0 ; "control" | |
0008 . RET0 0 1 | |
0094 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 r15 [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x41937458] | |
0005 rbx [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 rbx p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 rbx > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 rbx p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x41937458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 r15 > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 rbx > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m NE 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [32mstr[m NE 0028 [32m"match"[m | |
.... SNAP #6 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0034 > [32mstr[m NE 0028 [32m"fail"[m | |
.... SNAP #7 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0035 r14 > p32 UREFC 0001 #4 | |
0036 r13 > [31mtab[m ULOAD 0035 | |
0037 r14 p32 HREF 0036 0028 | |
0038 > tru HLOAD 0037 | |
0039 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0040 rbp > [31mtab[m SLOAD #2 T | |
0041 r13 > [31mtab[m SLOAD #3 T | |
0042 r14 > [31mtab[m SLOAD #4 T | |
0043 [8] > [31mtab[m TDUP [31m{0x40366b30}[m | |
0044 rax p32 FLOAD 0043 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 [31mtab[m ASTORE 0045 0021 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- [31m0041[m [31m0042[m [31m0043[m ] | |
0047 [35mint[m FLOAD 0041 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+1 [m | |
0049 r15 p32 FLOAD 0041 tab.node | |
0050 > p32 HREFK 0049 [32m"label"[m @1 | |
0051 r15 > [32mstr[m HLOAD 0050 | |
0052 p32 AREF 0044 [35m+3 [m | |
0053 [32mstr[m ASTORE 0052 0051 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- [31m0042[m [31m0043[m ---- ] | |
0054 [35mint[m FLOAD 0042 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 r15 p32 FLOAD 0042 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 r15 > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0044 [35m+4 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- ---- [31m0043[m ---- ] | |
0061 rsi p32 HREF 0040 [32m"control"[m | |
0062 > p32 EQ 0061 [0x41937458] | |
0063 [31mtab[m FLOAD 0040 tab.meta | |
0064 > [31mtab[m EQ 0063 [31m[NULL][m | |
0065 rbx p32 NEWREF 0040 [32m"control"[m | |
0066 [31mtab[m HSTORE 0065 0043 | |
0067 nil TBAR 0040 | |
.... SNAP #11 [ [1mssa.lua:55[m|] | |
---- TRACE 2 mcode 916 | |
0bcbfaa9 mov dword [0x41937410], 0x2 | |
0bcbfab4 mov edi, [0x419373d8] | |
0bcbfabb cmp edi, [0x419373dc] | |
0bcbfac2 jb 0x0bcbfadb | |
0bcbfac4 mov esi, 0x1 | |
0bcbfac9 mov edi, 0x419373b8 | |
0bcbface call 0x00421730 ->lj_gc_step_jit | |
0bcbfad3 test eax, eax | |
0bcbfad5 jnz 0x0bcb0010 ->0 | |
0bcbfadb mov edi, [0x419374b0] | |
0bcbfae2 mov edx, [0x419374b4] | |
0bcbfae9 mov ebp, [rdx-0x8] | |
0bcbfaec mov r15d, [rbp+0x8] | |
0bcbfaf0 mov esi, [r15+0x1c] | |
0bcbfaf4 and esi, 0xce2b6183 | |
0bcbfafa lea esi, [rsi+rsi*2] | |
0bcbfafd shl esi, 0x03 | |
0bcbfb00 add esi, [r15+0x14] | |
0bcbfb04 cmp dword [rsi+0xc], -0x05 | |
0bcbfb08 jnz 0x0bcbfb17 | |
0bcbfb0a cmp dword [rsi+0x8], 0x41939db0 | |
0bcbfb11 jz 0x0bcb0010 ->0 | |
0bcbfb17 mov esi, [rsi+0x10] | |
0bcbfb1a test esi, esi | |
0bcbfb1c jnz 0x0bcbfb04 | |
0bcbfb1e mov ebx, [r15+0x10] | |
0bcbfb22 test ebx, ebx | |
0bcbfb24 jz 0x0bcb0010 ->0 | |
0bcbfb2a cmp dword [rbx+0x1c], +0x01 | |
0bcbfb2e jnz 0x0bcb0010 ->0 | |
0bcbfb34 mov ebx, [rbx+0x14] | |
0bcbfb37 mov rsi, 0xfffffffb419394c8 | |
0bcbfb41 cmp rsi, [rbx+0x20] | |
0bcbfb45 jnz 0x0bcb0010 ->0 | |
0bcbfb4b cmp dword [rbx+0x1c], -0x0c | |
0bcbfb4f jnz 0x0bcb0010 ->0 | |
0bcbfb55 mov ebx, [rbx+0x18] | |
0bcbfb58 cmp dword [rbx+0x1c], +0x3f | |
0bcbfb5c jnz 0x0bcb0010 ->0 | |
0bcbfb62 mov ebx, [rbx+0x14] | |
0bcbfb65 mov rsi, 0xfffffffb41939db0 | |
0bcbfb6f cmp rsi, [rbx+0x50] | |
0bcbfb73 jnz 0x0bcb0010 ->0 | |
0bcbfb79 cmp dword [rbx+0x4c], -0x09 | |
0bcbfb7d jnz 0x0bcb0010 ->0 | |
0bcbfb83 mov esi, [r15+0x1c] | |
0bcbfb87 and esi, 0x798a813c | |
0bcbfb8d lea esi, [rsi+rsi*2] | |
0bcbfb90 shl esi, 0x03 | |
0bcbfb93 add esi, [r15+0x14] | |
0bcbfb97 cmp dword [rsi+0xc], -0x05 | |
0bcbfb9b jnz 0x0bcbfbaa | |
0bcbfb9d cmp dword [rsi+0x8], 0x41939fb0 | |
0bcbfba4 jz 0x0bcb0010 ->0 | |
0bcbfbaa mov esi, [rsi+0x10] | |
0bcbfbad test esi, esi | |
0bcbfbaf jnz 0x0bcbfb97 | |
0bcbfbb1 mov rsi, 0xfffffffb41939fb0 | |
0bcbfbbb cmp rsi, [rbx+0x5a8] | |
0bcbfbc2 jnz 0x0bcb0010 ->0 | |
0bcbfbc8 cmp dword [rbx+0x5a4], -0x09 | |
0bcbfbcf jnz 0x0bcb0010 ->0 | |
0bcbfbd5 cmp dword [rdx+0x4], -0x0c | |
0bcbfbd9 jnz 0x0bcb0010 ->0 | |
0bcbfbdf mov r15d, [rdx] | |
0bcbfbe2 cmp dword [rbx+0x5a0], 0x41939f18 | |
0bcbfbec jnz 0x0bcb0010 ->0 | |
0bcbfbf2 cmp dword [rbx+0x48], 0x41939d88 | |
0bcbfbf9 jnz 0x0bcb0010 ->0 | |
0bcbfbff cmp dword [r15+0x18], +0x01 | |
0bcbfc04 jbe 0x0bcb0010 ->0 | |
0bcbfc0a mov ebx, [r15+0x8] | |
0bcbfc0e cmp dword [rbx+0xc], -0x05 | |
0bcbfc12 jnz 0x0bcb0010 ->0 | |
0bcbfc18 mov ebx, [rbx+0x8] | |
0bcbfc1b cmp ebx, 0x419398f8 | |
0bcbfc21 jz 0x0bcb0014 ->1 | |
0bcbfc27 cmp ebx, 0x40367440 | |
0bcbfc2d jz 0x0bcb0018 ->2 | |
0bcbfc33 cmp ebx, 0x41939a18 | |
0bcbfc39 jz 0x0bcb001c ->3 | |
0bcbfc3f cmp ebx, 0x41939870 | |
0bcbfc45 jz 0x0bcb0020 ->4 | |
0bcbfc4b cmp ebx, 0x4193ccb0 | |
0bcbfc51 jz 0x0bcb0024 ->5 | |
0bcbfc57 cmp ebx, 0x4193f138 | |
0bcbfc5d jz 0x0bcb0028 ->6 | |
0bcbfc63 mov esi, [rbp+0x24] | |
0bcbfc66 cmp byte [rsi+0x6], 0x1 | |
0bcbfc6a jnz 0x0bcb002c ->7 | |
0bcbfc70 lea r14d, [rsi+0x8] | |
0bcbfc74 cmp dword [r14+0x4], -0x0c | |
0bcbfc79 jnz 0x0bcb002c ->7 | |
0bcbfc7f mov r13d, [r14] | |
0bcbfc82 mov r14d, [r13+0x1c] | |
0bcbfc86 and r14d, [rbx+0x8] | |
0bcbfc8a lea r14d, [r14+r14*2] | |
0bcbfc8e shl r14d, 0x03 | |
0bcbfc92 add r14d, [r13+0x14] | |
0bcbfc96 cmp dword [r14+0xc], -0x05 | |
0bcbfc9b jnz 0x0bcbfca3 | |
0bcbfc9d cmp ebx, [r14+0x8] | |
0bcbfca1 jz 0x0bcbfcb2 | |
0bcbfca3 mov r14d, [r14+0x10] | |
0bcbfca7 test r14d, r14d | |
0bcbfcaa jnz 0x0bcbfc96 | |
0bcbfcac mov r14d, 0x41937458 | |
0bcbfcb2 cmp dword [r14+0x4], -0x03 | |
0bcbfcb7 jnz 0x0bcb002c ->7 | |
0bcbfcbd cmp ebp, 0x403641d8 | |
0bcbfcc3 jnz 0x0bcb002c ->7 | |
0bcbfcc9 cmp dword [rdx+0xc], -0x0c | |
0bcbfccd jnz 0x0bcb002c ->7 | |
0bcbfcd3 mov ebp, [rdx+0x8] | |
0bcbfcd6 cmp dword [rdx+0x14], -0x0c | |
0bcbfcda jnz 0x0bcb002c ->7 | |
0bcbfce0 mov r13d, [rdx+0x10] | |
0bcbfce4 cmp dword [rdx+0x1c], -0x0c | |
0bcbfce8 jnz 0x0bcb002c ->7 | |
0bcbfcee mov r14d, [rdx+0x18] | |
0bcbfcf2 mov esi, 0x40366b30 | |
0bcbfcf7 call 0x004223c0 ->lj_tab_dup | |
0bcbfcfc mov [rsp+0x8], eax | |
0bcbfd00 mov edi, [0x419374b0] | |
0bcbfd07 mov eax, [rax+0x8] | |
0bcbfd0a mov dword [rax+0x14], 0xfffffff4 | |
0bcbfd11 mov [rax+0x10], r15d | |
0bcbfd15 cmp dword [r13+0x1c], +0x01 | |
0bcbfd1a jnz 0x0bcb0030 ->8 | |
0bcbfd20 mov r15d, [r13+0x14] | |
0bcbfd24 mov rsi, 0xfffffffb40371790 | |
0bcbfd2e cmp rsi, [r15+0x20] | |
0bcbfd32 jnz 0x0bcb0030 ->8 | |
0bcbfd38 cmp dword [r15+0x1c], -0x05 | |
0bcbfd3d jnz 0x0bcb0030 ->8 | |
0bcbfd43 mov r15d, [r15+0x18] | |
0bcbfd47 mov dword [rax+0x1c], 0xfffffffb | |
0bcbfd4e mov [rax+0x18], r15d | |
0bcbfd52 cmp dword [r14+0x1c], +0x01 | |
0bcbfd57 jnz 0x0bcb0034 ->9 | |
0bcbfd5d mov r15d, [r14+0x14] | |
0bcbfd61 mov rsi, 0xfffffffb40371790 | |
0bcbfd6b cmp rsi, [r15+0x20] | |
0bcbfd6f jnz 0x0bcb0034 ->9 | |
0bcbfd75 cmp dword [r15+0x1c], -0x05 | |
0bcbfd7a jnz 0x0bcb0034 ->9 | |
0bcbfd80 mov r15d, [r15+0x18] | |
0bcbfd84 mov dword [rax+0x24], 0xfffffffb | |
0bcbfd8b mov [rax+0x20], r15d | |
0bcbfd8f mov esi, [rbp+0x1c] | |
0bcbfd92 and esi, 0x2a54dc55 | |
0bcbfd98 lea esi, [rsi+rsi*2] | |
0bcbfd9b shl esi, 0x03 | |
0bcbfd9e add esi, [rbp+0x14] | |
0bcbfda1 cmp dword [rsi+0xc], -0x05 | |
0bcbfda5 jnz 0x0bcbfdb4 | |
0bcbfda7 cmp dword [rsi+0x8], 0x40371ef8 | |
0bcbfdae jz 0x0bcb0038 ->10 | |
0bcbfdb4 mov esi, [rsi+0x10] | |
0bcbfdb7 test esi, esi | |
0bcbfdb9 jnz 0x0bcbfda1 | |
0bcbfdbb cmp dword [rbp+0x10], +0x00 | |
0bcbfdbf jnz 0x0bcb0038 ->10 | |
0bcbfdc5 mov edx, 0x41937448 | |
0bcbfdca mov dword [rdx+0x4], 0xfffffffb | |
0bcbfdd1 mov dword [rdx], 0x40371ef8 | |
0bcbfdd7 mov esi, ebp | |
0bcbfdd9 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfdde mov ebx, eax | |
0bcbfde0 mov edx, [0x419374b4] | |
0bcbfde7 mov eax, [rsp+0x8] | |
0bcbfdeb mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfdf2 mov [rbx], eax | |
0bcbfdf4 test byte [rbp+0x4], 0x4 | |
0bcbfdf8 jz 0x0bcbfe0f | |
0bcbfdfa and byte [rbp+0x4], 0xfb | |
0bcbfdfe mov edi, [0x419373f4] | |
0bcbfe05 mov [0x419373f4], ebp | |
0bcbfe0c mov [rbp+0xc], edi | |
0bcbfe0f mov eax, [0x419374b0] | |
0bcbfe16 mov eax, [rax+0x20] | |
0bcbfe19 sub eax, edx | |
0bcbfe1b cmp eax, +0x68 | |
0bcbfe1e jb 0x0bcb003c ->11 | |
0bcbfe24 mov dword [rdx-0x8], 0x403641d8 | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x40372f58 | |
0bcbfe32 mov r14d, 0x41938008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 2 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 3 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 6 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 3 start ssa.lua:52 | |
0001 TDUP 2 1 | |
0002 TGETS 3 1 2 ; "label" | |
0003 TSETB 3 2 2 | |
0004 TSETS 2 0 0 ; "control" | |
0005 RET0 0 1 | |
---- TRACE 3 IR | |
.... SNAP #0 [ ---- ---- ---- ] | |
0001 [8] > [31mtab[m TDUP [31m{0x403608f0}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 [35mint[m FLOAD 0002 tab.hmask | |
0004 > [35mint[m EQ 0003 [35m+1 [m | |
0005 rbp p32 FLOAD 0002 tab.node | |
0006 > p32 HREFK 0005 [32m"label"[m @1 | |
0007 rbp > [32mstr[m HLOAD 0006 | |
0008 rax p32 FLOAD 0001 tab.array | |
0009 p32 AREF 0008 [35m+2 [m | |
0010 [32mstr[m ASTORE 0009 0007 | |
.... SNAP #1 [ ---- ---- ---- [31m0001[m ---- ] | |
0011 rbp > [31mtab[m SLOAD #1 T | |
0012 rsi p32 HREF 0011 [32m"control"[m | |
0013 > p32 EQ 0012 [0x41937458] | |
0014 [31mtab[m FLOAD 0011 tab.meta | |
0015 > [31mtab[m EQ 0014 [31m[NULL][m | |
0016 rbx p32 NEWREF 0011 [32m"control"[m | |
0017 [31mtab[m HSTORE 0016 0001 | |
0018 nil TBAR 0011 | |
.... SNAP #2 [ ---- ] | |
---- TRACE 3 mcode 315 | |
0bcbf967 mov dword [0x41937410], 0x3 | |
0bcbf972 mov edi, [0x419373d8] | |
0bcbf979 cmp edi, [0x419373dc] | |
0bcbf980 jb 0x0bcbf999 | |
0bcbf982 mov esi, 0x1 | |
0bcbf987 mov edi, 0x419373b8 | |
0bcbf98c call 0x00421730 ->lj_gc_step_jit | |
0bcbf991 test eax, eax | |
0bcbf993 jnz 0x0bcb0010 ->0 | |
0bcbf999 mov edi, [0x419374b0] | |
0bcbf9a0 mov esi, 0x403608f0 | |
0bcbf9a5 call 0x004223c0 ->lj_tab_dup | |
0bcbf9aa mov [rsp+0x8], eax | |
0bcbf9ae mov edi, [0x419374b0] | |
0bcbf9b5 mov edx, [0x419374b4] | |
0bcbf9bc cmp dword [rdx+0xc], -0x0c | |
0bcbf9c0 jnz 0x0bcb0010 ->0 | |
0bcbf9c6 mov ebp, [rdx+0x8] | |
0bcbf9c9 cmp dword [rbp+0x1c], +0x01 | |
0bcbf9cd jnz 0x0bcb0010 ->0 | |
0bcbf9d3 mov ebp, [rbp+0x14] | |
0bcbf9d6 mov rsi, 0xfffffffb40371790 | |
0bcbf9e0 cmp rsi, [rbp+0x20] | |
0bcbf9e4 jnz 0x0bcb0010 ->0 | |
0bcbf9ea cmp dword [rbp+0x1c], -0x05 | |
0bcbf9ee jnz 0x0bcb0010 ->0 | |
0bcbf9f4 mov ebp, [rbp+0x18] | |
0bcbf9f7 mov eax, [rax+0x8] | |
0bcbf9fa mov dword [rax+0x14], 0xfffffffb | |
0bcbfa01 mov [rax+0x10], ebp | |
0bcbfa04 cmp dword [rdx+0x4], -0x0c | |
0bcbfa08 jnz 0x0bcb0014 ->1 | |
0bcbfa0e mov ebp, [rdx] | |
0bcbfa10 mov esi, [rbp+0x1c] | |
0bcbfa13 and esi, 0x2a54dc55 | |
0bcbfa19 lea esi, [rsi+rsi*2] | |
0bcbfa1c shl esi, 0x03 | |
0bcbfa1f add esi, [rbp+0x14] | |
0bcbfa22 cmp dword [rsi+0xc], -0x05 | |
0bcbfa26 jnz 0x0bcbfa35 | |
0bcbfa28 cmp dword [rsi+0x8], 0x40371ef8 | |
0bcbfa2f jz 0x0bcb0014 ->1 | |
0bcbfa35 mov esi, [rsi+0x10] | |
0bcbfa38 test esi, esi | |
0bcbfa3a jnz 0x0bcbfa22 | |
0bcbfa3c cmp dword [rbp+0x10], +0x00 | |
0bcbfa40 jnz 0x0bcb0014 ->1 | |
0bcbfa46 mov edx, 0x41937448 | |
0bcbfa4b mov dword [rdx+0x4], 0xfffffffb | |
0bcbfa52 mov dword [rdx], 0x40371ef8 | |
0bcbfa58 mov esi, ebp | |
0bcbfa5a call 0x00422cf0 ->lj_tab_newkey | |
0bcbfa5f mov ebx, eax | |
0bcbfa61 mov edx, [0x419374b4] | |
0bcbfa68 mov eax, [rsp+0x8] | |
0bcbfa6c mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfa73 mov [rbx], eax | |
0bcbfa75 test byte [rbp+0x4], 0x4 | |
0bcbfa79 jz 0x0bcbfa90 | |
0bcbfa7b and byte [rbp+0x4], 0xfb | |
0bcbfa7f mov edi, [0x419373f4] | |
0bcbfa86 mov [0x419373f4], ebp | |
0bcbfa8d mov [rbp+0xc], edi | |
0bcbfa90 xor eax, eax | |
0bcbfa92 mov ebx, 0x4037372c | |
0bcbfa97 mov r14d, 0x41938008 | |
0bcbfa9d jmp 0x00420177 | |
---- TRACE 3 stop -> return | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 4 start 2/1 ssa.lua:59 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0030 . UGET 7 1 ; compile_bool | |
0031 . TGETB 8 0 4 | |
0032 . MOV 9 6 | |
0033 . MOV 10 2 | |
0034 . MOV 11 3 | |
0035 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0065 . . UGET 5 2 ; finish_goto | |
0066 . . MOV 6 1 | |
0067 . . MOV 7 3 | |
0068 . . CALL 5 1 3 | |
0000 . . . JFUNCF 4 3 ; ssa.lua:52 | |
0001 . . . TDUP 2 1 | |
0002 . . . TGETS 3 1 2 ; "label" | |
0003 . . . TSETB 3 2 2 | |
0004 . . . TSETS 2 0 0 ; "control" | |
0005 . . . RET0 0 1 | |
0069 . . JMP 5 => 0094 | |
0094 . . RET0 0 1 | |
0036 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 3 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 3 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 4 abort ssa.lua:79 -- down-recursion, restarting | |
---- TRACE 4 start ssa.lua:79 | |
0094 RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 3 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0055 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 3 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 4 IR | |
.... SNAP #0 [ ---- ] | |
.... SNAP #1 [ ---- ] | |
0002 > p32 RETF proto: 0x40372da0 [0x40372e58] | |
.... SNAP #2 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0003 [1mfun[m SLOAD #0 R | |
0004 > [1mfun[m EQ 0003 [1mssa.lua:55[m | |
0005 rbp > [31mtab[m SLOAD #1 T | |
0006 [35mint[m FLOAD 0005 tab.asize | |
0007 > [35mint[m ABC 0006 [35m+4 [m | |
0008 rbp p32 FLOAD 0005 tab.array | |
0009 p32 AREF 0008 [35m+4 [m | |
0010 rbx > [31mtab[m ALOAD 0009 | |
0011 rbp > [31mtab[m SLOAD #7 T | |
0012 r15 > [31mtab[m SLOAD #3 T | |
0013 r14 > [31mtab[m SLOAD #4 T | |
0014 r12 [31mtab[m FLOAD [1mssa.lua:55[m func.env | |
0015 rsi p32 HREF 0014 [32m"assert"[m | |
0016 > p32 EQ 0015 [0x41937458] | |
0017 r13 [31mtab[m FLOAD 0014 tab.meta | |
0018 > [31mtab[m NE 0017 [31m[NULL][m | |
0019 [35mint[m FLOAD 0017 tab.hmask | |
0020 > [35mint[m EQ 0019 [35m+1 [m | |
0021 rsi p32 FLOAD 0017 tab.node | |
0022 > p32 HREFK 0021 [32m"__index"[m @1 | |
0023 rsi > [31mtab[m HLOAD 0022 | |
0024 [35mint[m FLOAD 0023 tab.hmask | |
0025 > [35mint[m EQ 0024 [35m+63 [m | |
0026 rsi p32 FLOAD 0023 tab.node | |
0027 > p32 HREFK 0026 [32m"assert"[m @3 | |
0028 > [1mfun[m HLOAD 0027 | |
0029 rdx p32 HREF 0014 [32m"type"[m | |
0030 > p32 EQ 0029 [0x41937458] | |
0031 > p32 HREFK 0026 [32m"type"[m @60 | |
0032 > [1mfun[m HLOAD 0031 | |
0033 > [1mfun[m EQ 0032 [1mtype[m | |
0034 > [1mfun[m EQ 0028 [1massert[m | |
0035 [35mint[m FLOAD 0010 tab.asize | |
0036 > [35mint[m ABC 0035 [35m+1 [m | |
0037 rsi p32 FLOAD 0010 tab.array | |
0038 p32 AREF 0037 [35m+1 [m | |
0039 [10] > [32mstr[m ALOAD 0038 | |
.... SNAP #3 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0040 > [32mstr[m NE 0039 [32m"if"[m | |
.... SNAP #4 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0041 > [32mstr[m NE 0039 [32m"let"[m | |
.... SNAP #5 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0042 > [32mstr[m NE 0039 [32m"true"[m | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0043 > [32mstr[m EQ 0039 [32m"false"[m | |
.... SNAP #7 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0044 [c] > [31mtab[m TDUP [31m{0x403608f0}[m | |
0045 [35mint[m FLOAD 0013 tab.hmask | |
0046 > [35mint[m EQ 0045 [35m+1 [m | |
0047 rdx p32 FLOAD 0013 tab.node | |
0048 > p32 HREFK 0047 [32m"label"[m @1 | |
0049 rdx > [32mstr[m HLOAD 0048 | |
0050 rax p32 FLOAD 0044 tab.array | |
0051 p32 AREF 0050 [35m+2 [m | |
0052 [32mstr[m ASTORE 0051 0049 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:52[m|[31m0011[m ---- [31m0044[m ---- ] | |
0053 rdx p32 HREF 0011 [32m"control"[m | |
0054 > p32 EQ 0053 [0x41937458] | |
0055 [31mtab[m FLOAD 0011 tab.meta | |
0056 > [31mtab[m EQ 0055 [31m[NULL][m | |
0057 rbx p32 NEWREF 0011 [32m"control"[m | |
0058 [31mtab[m HSTORE 0057 0044 | |
0059 nil TBAR 0011 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ] | |
0060 > p32 RETF proto: 0x40372da0 [0x40372ebc] | |
.... SNAP #10 [ ---- ---- ---- ---- ---- ---- ] | |
0061 > p32 RETF proto: 0x40372da0 [0x40372e58] | |
.... SNAP #11 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0062 [1mfun[m SLOAD #0 R | |
0063 > [1mfun[m EQ 0062 [1mssa.lua:55[m | |
0064 rbp > [31mtab[m SLOAD #1 T | |
0065 [35mint[m FLOAD 0064 tab.asize | |
0066 > [35mint[m ABC 0065 [35m+4 [m | |
0067 rbp p32 FLOAD 0064 tab.array | |
0068 p32 AREF 0067 [35m+4 [m | |
0069 rbx > [31mtab[m ALOAD 0068 | |
0070 rbp > [31mtab[m SLOAD #7 T | |
0071 r15 > [31mtab[m SLOAD #3 T | |
0072 r14 > [31mtab[m SLOAD #4 T | |
0073 rsi p32 HREF 0014 [32m"assert"[m | |
0074 > p32 EQ 0073 [0x41937458] | |
0075 [35mint[m FLOAD 0017 tab.hmask | |
0076 > [35mint[m EQ 0075 [35m+1 [m | |
0077 r13 p32 FLOAD 0017 tab.node | |
0078 > p32 HREFK 0077 [32m"__index"[m @1 | |
0079 r13 > [31mtab[m HLOAD 0078 | |
0080 [35mint[m FLOAD 0079 tab.hmask | |
0081 > [35mint[m EQ 0080 [35m+63 [m | |
0082 r13 p32 FLOAD 0079 tab.node | |
0083 > p32 HREFK 0082 [32m"assert"[m @3 | |
0084 > [1mfun[m HLOAD 0083 | |
0085 rsi p32 HREF 0014 [32m"type"[m | |
0086 > p32 EQ 0085 [0x41937458] | |
0087 > p32 HREFK 0082 [32m"type"[m @60 | |
0088 > [1mfun[m HLOAD 0087 | |
0089 > [1mfun[m EQ 0088 [1mtype[m | |
0090 > [1mfun[m EQ 0084 [1massert[m | |
0091 [35mint[m FLOAD 0069 tab.asize | |
0092 > [35mint[m ABC 0091 [35m+1 [m | |
0093 r13 p32 FLOAD 0069 tab.array | |
0094 p32 AREF 0093 [35m+1 [m | |
0095 r13 > [32mstr[m ALOAD 0094 | |
.... SNAP #12 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m ] | |
0096 > [32mstr[m NE 0095 [32m"if"[m | |
.... SNAP #13 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m ] | |
0097 > [32mstr[m NE 0095 [32m"let"[m | |
.... SNAP #14 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m ] | |
0098 > [32mstr[m NE 0095 [32m"true"[m | |
.... SNAP #15 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m ] | |
0099 > [32mstr[m EQ 0095 [32m"false"[m | |
.... SNAP #16 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m ] | |
0100 [8] > [31mtab[m TDUP [31m{0x403608f0}[m | |
0101 [35mint[m FLOAD 0072 tab.hmask | |
0102 > [35mint[m EQ 0101 [35m+1 [m | |
0103 r12 p32 FLOAD 0072 tab.node | |
0104 > p32 HREFK 0103 [32m"label"[m @1 | |
0105 r12 > [32mstr[m HLOAD 0104 | |
0106 rax p32 FLOAD 0100 tab.array | |
0107 p32 AREF 0106 [35m+2 [m | |
0108 [32mstr[m ASTORE 0107 0105 | |
.... SNAP #17 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m [1mssa.lua:52[m|[31m0070[m ---- [31m0100[m ---- ] | |
0109 rsi p32 HREF 0070 [32m"control"[m | |
0110 > p32 EQ 0109 [0x41937458] | |
0111 [31mtab[m FLOAD 0070 tab.meta | |
0112 > [31mtab[m EQ 0111 [31m[NULL][m | |
0113 rbx p32 NEWREF 0070 [32m"control"[m | |
0114 [31mtab[m HSTORE 0113 0100 | |
0115 nil TBAR 0070 | |
.... SNAP #18 [ [1mssa.lua:55[m|] | |
---- TRACE 4 mcode 1484 | |
0bcbf398 add rsp, -0x10 | |
0bcbf39c mov dword [0x41937410], 0x4 | |
0bcbf3a7 mov edi, [0x419373d8] | |
0bcbf3ae cmp edi, [0x419373dc] | |
0bcbf3b5 jb 0x0bcbf3ce | |
0bcbf3b7 mov esi, 0x2 | |
0bcbf3bc mov edi, 0x419373b8 | |
0bcbf3c1 call 0x00421730 ->lj_gc_step_jit | |
0bcbf3c6 test eax, eax | |
0bcbf3c8 jnz 0x0bcb0010 ->0 | |
0bcbf3ce mov edi, [0x419374b0] | |
0bcbf3d5 mov edx, [0x419374b4] | |
0bcbf3dc cmp dword [rdx-0x4], 0x40372e58 | |
0bcbf3e3 jnz 0x0bcb0014 ->1 | |
0bcbf3e9 add edx, -0x40 | |
0bcbf3ec mov [0x419374b4], edx | |
0bcbf3f3 cmp dword [rdx-0x8], 0x403641d8 | |
0bcbf3fa jnz 0x0bcb0018 ->2 | |
0bcbf400 cmp dword [rdx+0x4], -0x0c | |
0bcbf404 jnz 0x0bcb0018 ->2 | |
0bcbf40a mov ebp, [rdx] | |
0bcbf40c cmp dword [rbp+0x18], +0x04 | |
0bcbf410 jbe 0x0bcb0018 ->2 | |
0bcbf416 mov ebp, [rbp+0x8] | |
0bcbf419 cmp dword [rbp+0x24], -0x0c | |
0bcbf41d jnz 0x0bcb0018 ->2 | |
0bcbf423 mov ebx, [rbp+0x20] | |
0bcbf426 cmp dword [rdx+0x34], -0x0c | |
0bcbf42a jnz 0x0bcb0018 ->2 | |
0bcbf430 mov ebp, [rdx+0x30] | |
0bcbf433 cmp dword [rdx+0x14], -0x0c | |
0bcbf437 jnz 0x0bcb0018 ->2 | |
0bcbf43d mov r15d, [rdx+0x10] | |
0bcbf441 cmp dword [rdx+0x1c], -0x0c | |
0bcbf445 jnz 0x0bcb0018 ->2 | |
0bcbf44b mov r14d, [rdx+0x18] | |
0bcbf44f mov r12d, [0x403641e0] | |
0bcbf457 mov esi, [r12+0x1c] | |
0bcbf45c and esi, 0xce2b6183 | |
0bcbf462 lea esi, [rsi+rsi*2] | |
0bcbf465 shl esi, 0x03 | |
0bcbf468 add esi, [r12+0x14] | |
0bcbf46d cmp dword [rsi+0xc], -0x05 | |
0bcbf471 jnz 0x0bcbf480 | |
0bcbf473 cmp dword [rsi+0x8], 0x41939db0 | |
0bcbf47a jz 0x0bcb0018 ->2 | |
0bcbf480 mov esi, [rsi+0x10] | |
0bcbf483 test esi, esi | |
0bcbf485 jnz 0x0bcbf46d | |
0bcbf487 mov r13d, [r12+0x10] | |
0bcbf48c test r13d, r13d | |
0bcbf48f jz 0x0bcb0018 ->2 | |
0bcbf495 cmp dword [r13+0x1c], +0x01 | |
0bcbf49a jnz 0x0bcb0018 ->2 | |
0bcbf4a0 mov esi, [r13+0x14] | |
0bcbf4a4 mov rdx, 0xfffffffb419394c8 | |
0bcbf4ae cmp rdx, [rsi+0x20] | |
0bcbf4b2 jnz 0x0bcb0018 ->2 | |
0bcbf4b8 cmp dword [rsi+0x1c], -0x0c | |
0bcbf4bc jnz 0x0bcb0018 ->2 | |
0bcbf4c2 mov esi, [rsi+0x18] | |
0bcbf4c5 cmp dword [rsi+0x1c], +0x3f | |
0bcbf4c9 jnz 0x0bcb0018 ->2 | |
0bcbf4cf mov esi, [rsi+0x14] | |
0bcbf4d2 mov rdx, 0xfffffffb41939db0 | |
0bcbf4dc cmp rdx, [rsi+0x50] | |
0bcbf4e0 jnz 0x0bcb0018 ->2 | |
0bcbf4e6 cmp dword [rsi+0x4c], -0x09 | |
0bcbf4ea jnz 0x0bcb0018 ->2 | |
0bcbf4f0 mov edx, [r12+0x1c] | |
0bcbf4f5 and edx, 0x798a813c | |
0bcbf4fb lea edx, [rdx+rdx*2] | |
0bcbf4fe shl edx, 0x03 | |
0bcbf501 add edx, [r12+0x14] | |
0bcbf506 cmp dword [rdx+0xc], -0x05 | |
0bcbf50a jnz 0x0bcbf519 | |
0bcbf50c cmp dword [rdx+0x8], 0x41939fb0 | |
0bcbf513 jz 0x0bcb0018 ->2 | |
0bcbf519 mov edx, [rdx+0x10] | |
0bcbf51c test edx, edx | |
0bcbf51e jnz 0x0bcbf506 | |
0bcbf520 mov rdx, 0xfffffffb41939fb0 | |
0bcbf52a cmp rdx, [rsi+0x5a8] | |
0bcbf531 jnz 0x0bcb0018 ->2 | |
0bcbf537 cmp dword [rsi+0x5a4], -0x09 | |
0bcbf53e jnz 0x0bcb0018 ->2 | |
0bcbf544 cmp dword [rsi+0x5a0], 0x41939f18 | |
0bcbf54e jnz 0x0bcb0018 ->2 | |
0bcbf554 cmp dword [rsi+0x48], 0x41939d88 | |
0bcbf55b jnz 0x0bcb0018 ->2 | |
0bcbf561 cmp dword [rbx+0x18], +0x01 | |
0bcbf565 jbe 0x0bcb0018 ->2 | |
0bcbf56b mov esi, [rbx+0x8] | |
0bcbf56e cmp dword [rsi+0xc], -0x05 | |
0bcbf572 jnz 0x0bcb0018 ->2 | |
0bcbf578 mov esi, [rsi+0x8] | |
0bcbf57b mov [rsp+0x10], esi | |
0bcbf57f cmp esi, 0x419398f8 | |
0bcbf585 jz 0x0bcb001c ->3 | |
0bcbf58b cmp esi, 0x40367440 | |
0bcbf591 jz 0x0bcb0020 ->4 | |
0bcbf597 cmp esi, 0x41939a18 | |
0bcbf59d jz 0x0bcb0024 ->5 | |
0bcbf5a3 cmp esi, 0x41939870 | |
0bcbf5a9 jnz 0x0bcb0028 ->6 | |
0bcbf5af mov esi, 0x403608f0 | |
0bcbf5b4 call 0x004223c0 ->lj_tab_dup | |
0bcbf5b9 mov [rsp+0xc], eax | |
0bcbf5bd mov edi, [0x419374b0] | |
0bcbf5c4 cmp dword [r14+0x1c], +0x01 | |
0bcbf5c9 jnz 0x0bcb002c ->7 | |
0bcbf5cf mov edx, [r14+0x14] | |
0bcbf5d3 mov rcx, 0xfffffffb40371790 | |
0bcbf5dd cmp rcx, [rdx+0x20] | |
0bcbf5e1 jnz 0x0bcb002c ->7 | |
0bcbf5e7 cmp dword [rdx+0x1c], -0x05 | |
0bcbf5eb jnz 0x0bcb002c ->7 | |
0bcbf5f1 mov edx, [rdx+0x18] | |
0bcbf5f4 mov eax, [rax+0x8] | |
0bcbf5f7 mov dword [rax+0x14], 0xfffffffb | |
0bcbf5fe mov [rax+0x10], edx | |
0bcbf601 mov edx, [rbp+0x1c] | |
0bcbf604 and edx, 0x2a54dc55 | |
0bcbf60a lea edx, [rdx+rdx*2] | |
0bcbf60d shl edx, 0x03 | |
0bcbf610 add edx, [rbp+0x14] | |
0bcbf613 cmp dword [rdx+0xc], -0x05 | |
0bcbf617 jnz 0x0bcbf626 | |
0bcbf619 cmp dword [rdx+0x8], 0x40371ef8 | |
0bcbf620 jz 0x0bcb0030 ->8 | |
0bcbf626 mov edx, [rdx+0x10] | |
0bcbf629 test edx, edx | |
0bcbf62b jnz 0x0bcbf613 | |
0bcbf62d cmp dword [rbp+0x10], +0x00 | |
0bcbf631 jnz 0x0bcb0030 ->8 | |
0bcbf637 mov edx, 0x41937448 | |
0bcbf63c mov dword [rdx+0x4], 0xfffffffb | |
0bcbf643 mov dword [rdx], 0x40371ef8 | |
0bcbf649 mov esi, ebp | |
0bcbf64b call 0x00422cf0 ->lj_tab_newkey | |
0bcbf650 mov ebx, eax | |
0bcbf652 mov edi, [0x419374b0] | |
0bcbf659 mov edx, [0x419374b4] | |
0bcbf660 mov eax, [rsp+0xc] | |
0bcbf664 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbf66b mov [rbx], eax | |
0bcbf66d test byte [rbp+0x4], 0x4 | |
0bcbf671 jz 0x0bcbf688 | |
0bcbf673 and byte [rbp+0x4], 0xfb | |
0bcbf677 mov esi, [0x419373f4] | |
0bcbf67e mov [0x419373f4], ebp | |
0bcbf685 mov [rbp+0xc], esi | |
0bcbf688 cmp dword [rdx-0x4], 0x40372ebc | |
0bcbf68f jnz 0x0bcb0034 ->9 | |
0bcbf695 add edx, -0x48 | |
0bcbf698 mov [0x419374b4], edx | |
0bcbf69f cmp dword [rdx-0x4], 0x40372e58 | |
0bcbf6a6 jnz 0x0bcb0038 ->10 | |
0bcbf6ac add edx, -0x40 | |
0bcbf6af mov [0x419374b4], edx | |
0bcbf6b6 cmp dword [rdx-0x8], 0x403641d8 | |
0bcbf6bd jnz 0x0bcb003c ->11 | |
0bcbf6c3 cmp dword [rdx+0x4], -0x0c | |
0bcbf6c7 jnz 0x0bcb003c ->11 | |
0bcbf6cd mov ebp, [rdx] | |
0bcbf6cf cmp dword [rbp+0x18], +0x04 | |
0bcbf6d3 jbe 0x0bcb003c ->11 | |
0bcbf6d9 mov ebp, [rbp+0x8] | |
0bcbf6dc cmp dword [rbp+0x24], -0x0c | |
0bcbf6e0 jnz 0x0bcb003c ->11 | |
0bcbf6e6 mov ebx, [rbp+0x20] | |
0bcbf6e9 cmp dword [rdx+0x34], -0x0c | |
0bcbf6ed jnz 0x0bcb003c ->11 | |
0bcbf6f3 mov ebp, [rdx+0x30] | |
0bcbf6f6 cmp dword [rdx+0x14], -0x0c | |
0bcbf6fa jnz 0x0bcb003c ->11 | |
0bcbf700 mov r15d, [rdx+0x10] | |
0bcbf704 cmp dword [rdx+0x1c], -0x0c | |
0bcbf708 jnz 0x0bcb003c ->11 | |
0bcbf70e mov r14d, [rdx+0x18] | |
0bcbf712 mov esi, [r12+0x1c] | |
0bcbf717 and esi, 0xce2b6183 | |
0bcbf71d lea esi, [rsi+rsi*2] | |
0bcbf720 shl esi, 0x03 | |
0bcbf723 add esi, [r12+0x14] | |
0bcbf728 cmp dword [rsi+0xc], -0x05 | |
0bcbf72c jnz 0x0bcbf73b | |
0bcbf72e cmp dword [rsi+0x8], 0x41939db0 | |
0bcbf735 jz 0x0bcb003c ->11 | |
0bcbf73b mov esi, [rsi+0x10] | |
0bcbf73e test esi, esi | |
0bcbf740 jnz 0x0bcbf728 | |
0bcbf742 cmp dword [r13+0x1c], +0x01 | |
0bcbf747 jnz 0x0bcb003c ->11 | |
0bcbf74d mov r13d, [r13+0x14] | |
0bcbf751 mov rsi, 0xfffffffb419394c8 | |
0bcbf75b cmp rsi, [r13+0x20] | |
0bcbf75f jnz 0x0bcb003c ->11 | |
0bcbf765 cmp dword [r13+0x1c], -0x0c | |
0bcbf76a jnz 0x0bcb003c ->11 | |
0bcbf770 mov r13d, [r13+0x18] | |
0bcbf774 cmp dword [r13+0x1c], +0x3f | |
0bcbf779 jnz 0x0bcb003c ->11 | |
0bcbf77f mov r13d, [r13+0x14] | |
0bcbf783 mov rsi, 0xfffffffb41939db0 | |
0bcbf78d cmp rsi, [r13+0x50] | |
0bcbf791 jnz 0x0bcb003c ->11 | |
0bcbf797 cmp dword [r13+0x4c], -0x09 | |
0bcbf79c jnz 0x0bcb003c ->11 | |
0bcbf7a2 mov esi, [r12+0x1c] | |
0bcbf7a7 and esi, 0x798a813c | |
0bcbf7ad lea esi, [rsi+rsi*2] | |
0bcbf7b0 shl esi, 0x03 | |
0bcbf7b3 add esi, [r12+0x14] | |
0bcbf7b8 cmp dword [rsi+0xc], -0x05 | |
0bcbf7bc jnz 0x0bcbf7cb | |
0bcbf7be cmp dword [rsi+0x8], 0x41939fb0 | |
0bcbf7c5 jz 0x0bcb003c ->11 | |
0bcbf7cb mov esi, [rsi+0x10] | |
0bcbf7ce test esi, esi | |
0bcbf7d0 jnz 0x0bcbf7b8 | |
0bcbf7d2 mov rsi, 0xfffffffb41939fb0 | |
0bcbf7dc cmp rsi, [r13+0x5a8] | |
0bcbf7e3 jnz 0x0bcb003c ->11 | |
0bcbf7e9 cmp dword [r13+0x5a4], -0x09 | |
0bcbf7f1 jnz 0x0bcb003c ->11 | |
0bcbf7f7 cmp dword [r13+0x5a0], 0x41939f18 | |
0bcbf802 jnz 0x0bcb003c ->11 | |
0bcbf808 cmp dword [r13+0x48], 0x41939d88 | |
0bcbf810 jnz 0x0bcb003c ->11 | |
0bcbf816 cmp dword [rbx+0x18], +0x01 | |
0bcbf81a jbe 0x0bcb003c ->11 | |
0bcbf820 mov r13d, [rbx+0x8] | |
0bcbf824 cmp dword [r13+0xc], -0x05 | |
0bcbf829 jnz 0x0bcb003c ->11 | |
0bcbf82f mov r13d, [r13+0x8] | |
0bcbf833 cmp r13d, 0x419398f8 | |
0bcbf83a jz 0x0bcb0040 ->12 | |
0bcbf840 cmp r13d, 0x40367440 | |
0bcbf847 jz 0x0bcb0044 ->13 | |
0bcbf84d cmp r13d, 0x41939a18 | |
0bcbf854 jz 0x0bcb0048 ->14 | |
0bcbf85a cmp r13d, 0x41939870 | |
0bcbf861 jnz 0x0bcb004c ->15 | |
0bcbf867 mov esi, 0x403608f0 | |
0bcbf86c call 0x004223c0 ->lj_tab_dup | |
0bcbf871 mov [rsp+0x8], eax | |
0bcbf875 mov edi, [0x419374b0] | |
0bcbf87c cmp dword [r14+0x1c], +0x01 | |
0bcbf881 jnz 0x0bcb0050 ->16 | |
0bcbf887 mov r12d, [r14+0x14] | |
0bcbf88b mov rsi, 0xfffffffb40371790 | |
0bcbf895 cmp rsi, [r12+0x20] | |
0bcbf89a jnz 0x0bcb0050 ->16 | |
0bcbf8a0 cmp dword [r12+0x1c], -0x05 | |
0bcbf8a6 jnz 0x0bcb0050 ->16 | |
0bcbf8ac mov r12d, [r12+0x18] | |
0bcbf8b1 mov eax, [rax+0x8] | |
0bcbf8b4 mov dword [rax+0x14], 0xfffffffb | |
0bcbf8bb mov [rax+0x10], r12d | |
0bcbf8bf mov esi, [rbp+0x1c] | |
0bcbf8c2 and esi, 0x2a54dc55 | |
0bcbf8c8 lea esi, [rsi+rsi*2] | |
0bcbf8cb shl esi, 0x03 | |
0bcbf8ce add esi, [rbp+0x14] | |
0bcbf8d1 cmp dword [rsi+0xc], -0x05 | |
0bcbf8d5 jnz 0x0bcbf8e4 | |
0bcbf8d7 cmp dword [rsi+0x8], 0x40371ef8 | |
0bcbf8de jz 0x0bcb0054 ->17 | |
0bcbf8e4 mov esi, [rsi+0x10] | |
0bcbf8e7 test esi, esi | |
0bcbf8e9 jnz 0x0bcbf8d1 | |
0bcbf8eb cmp dword [rbp+0x10], +0x00 | |
0bcbf8ef jnz 0x0bcb0054 ->17 | |
0bcbf8f5 mov edx, 0x41937448 | |
0bcbf8fa mov dword [rdx+0x4], 0xfffffffb | |
0bcbf901 mov dword [rdx], 0x40371ef8 | |
0bcbf907 mov esi, ebp | |
0bcbf909 call 0x00422cf0 ->lj_tab_newkey | |
0bcbf90e mov ebx, eax | |
0bcbf910 mov edx, [0x419374b4] | |
0bcbf917 mov eax, [rsp+0x8] | |
0bcbf91b mov dword [rbx+0x4], 0xfffffff4 | |
0bcbf922 mov [rbx], eax | |
0bcbf924 test byte [rbp+0x4], 0x4 | |
0bcbf928 jz 0x0bcbf93f | |
0bcbf92a and byte [rbp+0x4], 0xfb | |
0bcbf92e mov edi, [0x419373f4] | |
0bcbf935 mov [0x419373f4], ebp | |
0bcbf93c mov [rbp+0xc], edi | |
0bcbf93f mov eax, [0x419374b0] | |
0bcbf946 mov eax, [rax+0x20] | |
0bcbf949 sub eax, edx | |
0bcbf94b cmp eax, +0x68 | |
0bcbf94e jb 0x0bcb0058 ->18 | |
0bcbf954 mov dword [rdx-0x8], 0x403641d8 | |
0bcbf95b add rsp, +0x10 | |
0bcbf95f jmp 0x0bcbf398 | |
---- TRACE 4 stop -> down-recursion | |
---- TRACE 4 exit 1 | |
---- TRACE 2 exit 5 | |
---- TRACE 4 exit 3 | |
---- TRACE 2 exit 1 | |
---- TRACE 5 start 2/1 ssa.lua:59 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . JLOOP 1 4 | |
---- TRACE 5 IR | |
0001 rbx [32mstr[m SLOAD #5 PI | |
.... SNAP #0 [ ---- ---- ---- ---- ---- [32m0001[m ] | |
0002 [1mfun[m SLOAD #0 R | |
0003 > [1mfun[m EQ 0002 [1mssa.lua:55[m | |
0004 [44] > p32 UREFO [1mssa.lua:39[m #0 | |
0005 xmm7 > [34mnum[m ULOAD 0004 | |
0006 [58] [34mnum[m ADD 0005 [34m+1 [m | |
0007 [34mnum[m USTORE 0004 0006 | |
.... SNAP #1 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [1mssa.lua:39[m|---- ] | |
0008 [32mstr[m TOSTR 0006 NUM | |
0009 rdi p32 BUFHDR [0x41937414] RESET | |
0010 rdi p32 BUFPUT 0009 [32m"L" [m | |
0011 rdi p32 BUFPUT 0010 0008 | |
0012 [60] [32mstr[m BUFSTR 0011 0009 | |
0013 [8] > [31mtab[m TDUP [31m{0x40372418}[m | |
0014 r15 > [31mtab[m TNEW #0 #0 | |
0015 rbp p32 FLOAD 0013 tab.node | |
0016 p32 HREFK 0015 [32m"bindings"[m @2 | |
0017 [31mtab[m HSTORE 0016 0014 | |
0018 p32 HREFK 0015 [32m"label"[m @3 | |
0019 [32mstr[m HSTORE 0018 0012 | |
.... SNAP #2 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [1mssa.lua:39[m|[32m0012[m [31m0013[m ---- ] | |
0020 rbp > p32 UREFO [1mssa.lua:39[m #1 | |
0021 [2c] > [31mtab[m ULOAD 0020 | |
0022 [35mint[m FLOAD 0021 tab.hmask | |
0023 > [35mint[m EQ 0022 [35m+1 [m | |
0024 rbp p32 FLOAD 0021 tab.node | |
0025 > p32 HREFK 0024 [32m"blocks"[m @0 | |
0026 rbp > [31mtab[m HLOAD 0025 | |
0027 rsi p32 HREF 0026 0012 | |
0028 > p32 EQ 0027 [0x41937458] | |
0029 [31mtab[m FLOAD 0026 tab.meta | |
0030 > [31mtab[m EQ 0029 [31m[NULL][m | |
0031 r15 p32 NEWREF 0026 0012 | |
0032 [31mtab[m HSTORE 0031 0013 | |
0033 nil TBAR 0026 | |
0034 p32 FREF 0026 tab.nomm | |
0035 [35mu8 [m FSTORE 0034 [35m+0 [m | |
0036 [50] [34mnum[m ADD 0006 [34m+1 [m | |
0037 [34mnum[m USTORE 0004 0036 | |
.... SNAP #3 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [1mssa.lua:39[m|---- ] | |
0038 [32mstr[m TOSTR 0036 NUM | |
0039 rdi p32 BUFHDR [0x41937414] RESET | |
0040 rdi p32 BUFPUT 0039 [32m"L" [m | |
0041 rdi p32 BUFPUT 0040 0038 | |
0042 [4c] [32mstr[m BUFSTR 0041 0039 | |
0043 rbp > [31mtab[m TDUP [31m{0x40372418}[m | |
0044 r14 > [31mtab[m TNEW #0 #0 | |
0045 r15 p32 FLOAD 0043 tab.node | |
0046 p32 HREFK 0045 [32m"bindings"[m @2 | |
0047 [31mtab[m HSTORE 0046 0044 | |
0048 p32 HREFK 0045 [32m"label"[m @3 | |
0049 [32mstr[m HSTORE 0048 0042 | |
.... SNAP #4 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [1mssa.lua:39[m|[32m0042[m [31m0043[m ---- ] | |
0050 [35mint[m FLOAD 0021 tab.hmask | |
0051 > [35mint[m EQ 0050 [35m+1 [m | |
0052 r15 p32 FLOAD 0021 tab.node | |
0053 > p32 HREFK 0052 [32m"blocks"[m @0 | |
0054 r15 > [31mtab[m HLOAD 0053 | |
0055 rsi p32 HREF 0054 0042 | |
0056 > p32 EQ 0055 [0x41937458] | |
0057 [31mtab[m FLOAD 0054 tab.meta | |
0058 > [31mtab[m EQ 0057 [31m[NULL][m | |
0059 rax p32 NEWREF 0054 0042 | |
0060 [31mtab[m HSTORE 0059 0043 | |
0061 nil TBAR 0054 | |
0062 p32 FREF 0054 tab.nomm | |
0063 [35mu8 [m FSTORE 0062 [35m+0 [m | |
.... SNAP #5 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [1mssa.lua:39[m|---- [31m0043[m ---- ] | |
0064 r15 > [31mtab[m SLOAD #1 T | |
0065 [35mint[m FLOAD 0064 tab.asize | |
0066 > [35mint[m ABC 0065 [35m+2 [m | |
0067 r15 p32 FLOAD 0064 tab.array | |
0068 p32 AREF 0067 [35m+2 [m | |
0069 r15 > [31mtab[m ALOAD 0068 | |
0070 r14 > [31mtab[m SLOAD #2 T | |
0071 [20] [31mtab[m FLOAD [1mssa.lua:55[m func.env | |
0072 rsi p32 HREF 0071 [32m"assert"[m | |
0073 > p32 EQ 0072 [0x41937458] | |
0074 [28] [31mtab[m FLOAD 0071 tab.meta | |
0075 > [31mtab[m NE 0074 [31m[NULL][m | |
0076 [35mint[m FLOAD 0074 tab.hmask | |
0077 > [35mint[m EQ 0076 [35m+1 [m | |
0078 r13 p32 FLOAD 0074 tab.node | |
0079 > p32 HREFK 0078 [32m"__index"[m @1 | |
0080 r13 > [31mtab[m HLOAD 0079 | |
0081 [35mint[m FLOAD 0080 tab.hmask | |
0082 > [35mint[m EQ 0081 [35m+63 [m | |
0083 r13 p32 FLOAD 0080 tab.node | |
0084 > p32 HREFK 0083 [32m"assert"[m @3 | |
0085 > [1mfun[m HLOAD 0084 | |
0086 rsi p32 HREF 0071 [32m"type"[m | |
0087 > p32 EQ 0086 [0x41937458] | |
0088 > p32 HREFK 0083 [32m"type"[m @60 | |
0089 > [1mfun[m HLOAD 0088 | |
0090 > [1mfun[m EQ 0089 [1mtype[m | |
0091 > [1mfun[m EQ 0085 [1massert[m | |
0092 [35mint[m FLOAD 0069 tab.asize | |
0093 > [35mint[m ABC 0092 [35m+1 [m | |
0094 r13 p32 FLOAD 0069 tab.array | |
0095 p32 AREF 0094 [35m+1 [m | |
0096 r13 > [32mstr[m ALOAD 0095 | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m ] | |
0097 > [32mstr[m EQ 0096 [32m"if"[m | |
0098 [38] [34mnum[m ADD 0036 [34m+1 [m | |
0099 [34mnum[m USTORE 0004 0098 | |
.... SNAP #7 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [1mssa.lua:39[m|---- ] | |
0100 [32mstr[m TOSTR 0098 NUM | |
0101 rdi p32 BUFHDR [0x41937414] RESET | |
0102 rdi p32 BUFPUT 0101 [32m"L" [m | |
0103 rdi p32 BUFPUT 0102 0100 | |
0104 [48] [32mstr[m BUFSTR 0103 0101 | |
0105 r12 > [31mtab[m TDUP [31m{0x40372418}[m | |
0106 rcx > [31mtab[m TNEW #0 #0 | |
0107 rdx p32 FLOAD 0105 tab.node | |
0108 p32 HREFK 0107 [32m"bindings"[m @2 | |
0109 [31mtab[m HSTORE 0108 0106 | |
0110 p32 HREFK 0107 [32m"label"[m @3 | |
0111 [32mstr[m HSTORE 0110 0104 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [1mssa.lua:39[m|[32m0104[m [31m0105[m ---- ] | |
0112 [35mint[m FLOAD 0021 tab.hmask | |
0113 > [35mint[m EQ 0112 [35m+1 [m | |
0114 rsi p32 FLOAD 0021 tab.node | |
0115 > p32 HREFK 0114 [32m"blocks"[m @0 | |
0116 [40] > [31mtab[m HLOAD 0115 | |
0117 rdx p32 HREF 0116 0104 | |
0118 > p32 EQ 0117 [0x41937458] | |
0119 [31mtab[m FLOAD 0116 tab.meta | |
0120 > [31mtab[m EQ 0119 [31m[NULL][m | |
0121 rax p32 NEWREF 0116 0104 | |
0122 [31mtab[m HSTORE 0121 0105 | |
0123 nil TBAR 0116 | |
0124 p32 FREF 0116 tab.nomm | |
0125 [35mu8 [m FSTORE 0124 [35m+0 [m | |
0126 [30] [34mnum[m ADD 0098 [34m+1 [m | |
0127 [34mnum[m USTORE 0004 0126 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [1mssa.lua:39[m|---- ] | |
0128 [32mstr[m TOSTR 0126 NUM | |
0129 rdi p32 BUFHDR [0x41937414] RESET | |
0130 rdi p32 BUFPUT 0129 [32m"L" [m | |
0131 rdi p32 BUFPUT 0130 0128 | |
0132 [18] [32mstr[m BUFSTR 0131 0129 | |
0133 [14] > [31mtab[m TDUP [31m{0x40372418}[m | |
0134 rcx > [31mtab[m TNEW #0 #0 | |
0135 rdx p32 FLOAD 0133 tab.node | |
0136 p32 HREFK 0135 [32m"bindings"[m @2 | |
0137 [31mtab[m HSTORE 0136 0134 | |
0138 p32 HREFK 0135 [32m"label"[m @3 | |
0139 [32mstr[m HSTORE 0138 0132 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [1mssa.lua:39[m|[32m0132[m [31m0133[m ---- ] | |
0140 [35mint[m FLOAD 0021 tab.hmask | |
0141 > [35mint[m EQ 0140 [35m+1 [m | |
0142 rsi p32 FLOAD 0021 tab.node | |
0143 > p32 HREFK 0142 [32m"blocks"[m @0 | |
0144 [24] > [31mtab[m HLOAD 0143 | |
0145 rdx p32 HREF 0144 0132 | |
0146 > p32 EQ 0145 [0x41937458] | |
0147 [31mtab[m FLOAD 0144 tab.meta | |
0148 > [31mtab[m EQ 0147 [31m[NULL][m | |
0149 rcx p32 NEWREF 0144 0132 | |
0150 [31mtab[m HSTORE 0149 0133 | |
0151 nil TBAR 0144 | |
0152 p32 FREF 0144 tab.nomm | |
0153 [35mu8 [m FSTORE 0152 [35m+0 [m | |
.... SNAP #11 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [1mssa.lua:39[m|---- [31m0133[m ---- ] | |
0154 [35mint[m FLOAD 0069 tab.asize | |
0155 > [35mint[m ABC 0154 [35m+2 [m | |
0156 rdx p32 FLOAD 0069 tab.array | |
0157 p32 AREF 0156 [35m+2 [m | |
0158 [10] > [31mtab[m ALOAD 0157 | |
0159 rdx p32 HREF 0071 [32m"assert"[m | |
0160 > p32 EQ 0159 [0x41937458] | |
0161 [35mint[m FLOAD 0074 tab.hmask | |
0162 > [35mint[m EQ 0161 [35m+1 [m | |
0163 rsi p32 FLOAD 0074 tab.node | |
0164 > p32 HREFK 0163 [32m"__index"[m @1 | |
0165 rsi > [31mtab[m HLOAD 0164 | |
0166 [35mint[m FLOAD 0165 tab.hmask | |
0167 > [35mint[m EQ 0166 [35m+63 [m | |
0168 rsi p32 FLOAD 0165 tab.node | |
0169 > p32 HREFK 0168 [32m"assert"[m @3 | |
0170 > [1mfun[m HLOAD 0169 | |
0171 rdx p32 HREF 0071 [32m"type"[m | |
0172 > p32 EQ 0171 [0x41937458] | |
0173 > p32 HREFK 0168 [32m"type"[m @60 | |
0174 > [1mfun[m HLOAD 0173 | |
0175 > [1mfun[m EQ 0174 [1mtype[m | |
0176 > [1mfun[m EQ 0170 [1massert[m | |
0177 [35mint[m FLOAD 0158 tab.asize | |
0178 > [35mint[m ABC 0177 [35m+1 [m | |
0179 rsi p32 FLOAD 0158 tab.array | |
0180 p32 AREF 0179 [35m+1 [m | |
0181 [1c] > [32mstr[m ALOAD 0180 | |
.... SNAP #12 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0182 > [32mstr[m NE 0181 [32m"if"[m | |
.... SNAP #13 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0183 > [32mstr[m NE 0181 [32m"let"[m | |
.... SNAP #14 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0184 > [32mstr[m NE 0181 [32m"true"[m | |
.... SNAP #15 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0185 > [32mstr[m NE 0181 [32m"false"[m | |
.... SNAP #16 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0186 > [32mstr[m NE 0181 [32m"match"[m | |
.... SNAP #17 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0187 > [32mstr[m NE 0181 [32m"fail"[m | |
.... SNAP #18 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0188 > p32 UREFC [1mssa.lua:55[m #4 | |
0189 rdx > [31mtab[m ULOAD 0188 | |
0190 rsi p32 HREF 0189 0181 | |
0191 > tru HLOAD 0190 | |
0192 [c] > [31mtab[m TDUP [31m{0x40366b30}[m | |
0193 rdx p32 FLOAD 0192 tab.array | |
0194 p32 AREF 0193 [35m+2 [m | |
0195 [31mtab[m ASTORE 0194 0158 | |
.... SNAP #19 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m [1mssa.lua:49[m|[31m0070[m ---- [31m0105[m [31m0133[m [31m0192[m ] | |
0196 [35mint[m FLOAD 0105 tab.hmask | |
0197 > [35mint[m EQ 0196 [35m+3 [m | |
0198 rcx p32 FLOAD 0105 tab.node | |
0199 > p32 HREFK 0198 [32m"label"[m @3 | |
0200 rcx > [32mstr[m HLOAD 0199 | |
0201 p32 AREF 0193 [35m+3 [m | |
0202 [32mstr[m ASTORE 0201 0200 | |
0203 p32 AREF 0193 [35m+4 [m | |
0204 [32mstr[m ASTORE 0203 0132 | |
.... SNAP #20 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m [1mssa.lua:49[m|[31m0070[m ---- ---- ---- [31m0192[m ---- ] | |
0205 rdx p32 HREF 0070 [32m"control"[m | |
0206 > p32 EQ 0205 [0x41937458] | |
0207 [31mtab[m FLOAD 0070 tab.meta | |
0208 > [31mtab[m EQ 0207 [31m[NULL][m | |
0209 r11 p32 NEWREF 0070 [32m"control"[m | |
0210 [31mtab[m HSTORE 0209 0192 | |
0211 nil TBAR 0070 | |
.... SNAP #21 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m ] | |
---- TRACE 5 mcode 2681 | |
0bcbe91c mov eax, [0x419374b0] | |
0bcbe923 mov eax, [rax+0x20] | |
0bcbe926 sub eax, [0x419374b4] | |
0bcbe92d cmp eax, 0xe8 | |
0bcbe933 jb 0x0bcb0014 ->1 | |
0bcbe939 add rsp, -0x60 | |
0bcbe93d mov dword [0x41937410], 0x5 | |
0bcbe948 mov edi, [0x419373d8] | |
0bcbe94f cmp edi, [0x419373dc] | |
0bcbe956 jb 0x0bcbe96f | |
0bcbe958 mov esi, 0xd | |
0bcbe95d mov edi, 0x419373b8 | |
0bcbe962 call 0x00421730 ->lj_gc_step_jit | |
0bcbe967 test eax, eax | |
0bcbe969 jnz 0x0bcb0010 ->0 | |
0bcbe96f mov edx, [0x419374b4] | |
0bcbe976 cmp dword [rdx-0x8], 0x403641d8 | |
0bcbe97d jnz 0x0bcb0010 ->0 | |
0bcbe983 mov edi, [0x4194c860] | |
0bcbe98a mov [rsp+0x44], edi | |
0bcbe98e cmp dword [rdi+0x4], 0xfffeffff | |
0bcbe995 jnb 0x0bcb0010 ->0 | |
0bcbe99b movsd xmm7, [rdi] | |
0bcbe99f addsd xmm7, [0x403610a0] | |
0bcbe9a8 movsd [rsp+0x58], xmm7 | |
0bcbe9ae movsd [rdi], xmm7 | |
0bcbe9b2 mov edi, 0x41937414 | |
0bcbe9b7 mov esi, [rdi+0x8] | |
0bcbe9ba mov [rdi], esi | |
0bcbe9bc mov esi, 0x4c | |
0bcbe9c1 call 0x00421b60 ->lj_buf_putchar | |
0bcbe9c6 mov edi, eax | |
0bcbe9c8 lea rsi, [rsp+0x58] | |
0bcbe9cd call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbe9d2 mov edi, eax | |
0bcbe9d4 call 0x00421ff0 ->lj_buf_tostr | |
0bcbe9d9 mov [rsp+0x60], eax | |
0bcbe9dd mov edi, [0x419374b0] | |
0bcbe9e4 mov esi, 0x40372418 | |
0bcbe9e9 call 0x004223c0 ->lj_tab_dup | |
0bcbe9ee mov ebp, eax | |
0bcbe9f0 mov [rsp+0x8], ebp | |
0bcbe9f4 mov edi, [0x419374b0] | |
0bcbe9fb xor esi, esi | |
0bcbe9fd call 0x00422350 ->lj_tab_new1 | |
0bcbea02 mov r15d, eax | |
0bcbea05 mov edi, [0x419374b0] | |
0bcbea0c mov eax, [rsp+0x60] | |
0bcbea10 mov ebp, [rbp+0x14] | |
0bcbea13 mov dword [rbp+0x34], 0xfffffff4 | |
0bcbea1a mov [rbp+0x30], r15d | |
0bcbea1e mov dword [rbp+0x4c], 0xfffffffb | |
0bcbea25 mov [rbp+0x48], eax | |
0bcbea28 mov ebp, [0x4194c0c0] | |
0bcbea2f cmp dword [rbp+0x4], -0x0c | |
0bcbea33 jnz 0x0bcb0018 ->2 | |
0bcbea39 mov esi, [rbp+0x0] | |
0bcbea3c mov [rsp+0x2c], esi | |
0bcbea40 cmp dword [rsi+0x1c], +0x01 | |
0bcbea44 jnz 0x0bcb0018 ->2 | |
0bcbea4a mov ebp, [rsi+0x14] | |
0bcbea4d mov rsi, 0xfffffffb403716f0 | |
0bcbea57 cmp rsi, [rbp+0x8] | |
0bcbea5b jnz 0x0bcb0018 ->2 | |
0bcbea61 cmp dword [rbp+0x4], -0x0c | |
0bcbea65 jnz 0x0bcb0018 ->2 | |
0bcbea6b mov ebp, [rbp+0x0] | |
0bcbea6e mov esi, [rbp+0x1c] | |
0bcbea71 and esi, [rax+0x8] | |
0bcbea74 lea esi, [rsi+rsi*2] | |
0bcbea77 shl esi, 0x03 | |
0bcbea7a add esi, [rbp+0x14] | |
0bcbea7d cmp dword [rsi+0xc], -0x05 | |
0bcbea81 jnz 0x0bcbea8c | |
0bcbea83 cmp eax, [rsi+0x8] | |
0bcbea86 jz 0x0bcb0018 ->2 | |
0bcbea8c mov esi, [rsi+0x10] | |
0bcbea8f test esi, esi | |
0bcbea91 jnz 0x0bcbea7d | |
0bcbea93 cmp dword [rbp+0x10], +0x00 | |
0bcbea97 jnz 0x0bcb0018 ->2 | |
0bcbea9d mov edx, 0x41937448 | |
0bcbeaa2 mov dword [rdx+0x4], 0xfffffffb | |
0bcbeaa9 mov [rdx], eax | |
0bcbeaab mov esi, ebp | |
0bcbeaad call 0x00422cf0 ->lj_tab_newkey | |
0bcbeab2 mov r15d, eax | |
0bcbeab5 mov edi, [rsp+0x44] | |
0bcbeab9 mov eax, [rsp+0x8] | |
0bcbeabd movsd xmm7, [rsp+0x58] | |
0bcbeac3 mov dword [r15+0x4], 0xfffffff4 | |
0bcbeacb mov [r15], eax | |
0bcbeace test byte [rbp+0x4], 0x4 | |
0bcbead2 jz 0x0bcbeae9 | |
0bcbead4 and byte [rbp+0x4], 0xfb | |
0bcbead8 mov esi, [0x419373f4] | |
0bcbeadf mov [0x419373f4], ebp | |
0bcbeae6 mov [rbp+0xc], esi | |
0bcbeae9 mov byte [rbp+0x6], 0x0 | |
0bcbeaed addsd xmm7, [0x403610a0] | |
0bcbeaf6 movsd [rsp+0x50], xmm7 | |
0bcbeafc movsd [rdi], xmm7 | |
0bcbeb00 mov edi, 0x41937414 | |
0bcbeb05 mov esi, [rdi+0x8] | |
0bcbeb08 mov [rdi], esi | |
0bcbeb0a mov esi, 0x4c | |
0bcbeb0f call 0x00421b60 ->lj_buf_putchar | |
0bcbeb14 mov edi, eax | |
0bcbeb16 lea rsi, [rsp+0x50] | |
0bcbeb1b call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbeb20 mov edi, eax | |
0bcbeb22 call 0x00421ff0 ->lj_buf_tostr | |
0bcbeb27 mov [rsp+0x4c], eax | |
0bcbeb2b mov edi, [0x419374b0] | |
0bcbeb32 mov esi, 0x40372418 | |
0bcbeb37 call 0x004223c0 ->lj_tab_dup | |
0bcbeb3c mov ebp, eax | |
0bcbeb3e mov edi, [0x419374b0] | |
0bcbeb45 xor esi, esi | |
0bcbeb47 call 0x00422350 ->lj_tab_new1 | |
0bcbeb4c mov r14d, eax | |
0bcbeb4f mov edi, [0x419374b0] | |
0bcbeb56 mov esi, [rsp+0x2c] | |
0bcbeb5a mov eax, [rsp+0x4c] | |
0bcbeb5e mov r15d, [rbp+0x14] | |
0bcbeb62 mov dword [r15+0x34], 0xfffffff4 | |
0bcbeb6a mov [r15+0x30], r14d | |
0bcbeb6e mov dword [r15+0x4c], 0xfffffffb | |
0bcbeb76 mov [r15+0x48], eax | |
0bcbeb7a cmp dword [rsi+0x1c], +0x01 | |
0bcbeb7e jnz 0x0bcb0020 ->4 | |
0bcbeb84 mov r15d, [rsi+0x14] | |
0bcbeb88 mov rsi, 0xfffffffb403716f0 | |
0bcbeb92 cmp rsi, [r15+0x8] | |
0bcbeb96 jnz 0x0bcb0020 ->4 | |
0bcbeb9c cmp dword [r15+0x4], -0x0c | |
0bcbeba1 jnz 0x0bcb0020 ->4 | |
0bcbeba7 mov r15d, [r15] | |
0bcbebaa mov esi, [r15+0x1c] | |
0bcbebae and esi, [rax+0x8] | |
0bcbebb1 lea esi, [rsi+rsi*2] | |
0bcbebb4 shl esi, 0x03 | |
0bcbebb7 add esi, [r15+0x14] | |
0bcbebbb cmp dword [rsi+0xc], -0x05 | |
0bcbebbf jnz 0x0bcbebca | |
0bcbebc1 cmp eax, [rsi+0x8] | |
0bcbebc4 jz 0x0bcb0020 ->4 | |
0bcbebca mov esi, [rsi+0x10] | |
0bcbebcd test esi, esi | |
0bcbebcf jnz 0x0bcbebbb | |
0bcbebd1 cmp dword [r15+0x10], +0x00 | |
0bcbebd6 jnz 0x0bcb0020 ->4 | |
0bcbebdc mov edx, 0x41937448 | |
0bcbebe1 mov dword [rdx+0x4], 0xfffffffb | |
0bcbebe8 mov [rdx], eax | |
0bcbebea mov esi, r15d | |
0bcbebed call 0x00422cf0 ->lj_tab_newkey | |
0bcbebf2 mov edi, [rsp+0x44] | |
0bcbebf6 mov edx, [0x419374b4] | |
0bcbebfd movsd xmm7, [rsp+0x50] | |
0bcbec03 mov dword [rax+0x4], 0xfffffff4 | |
0bcbec0a mov [rax], ebp | |
0bcbec0c test byte [r15+0x4], 0x4 | |
0bcbec11 jz 0x0bcbec2b | |
0bcbec13 and byte [r15+0x4], 0xfb | |
0bcbec18 mov esi, [0x419373f4] | |
0bcbec1f mov [0x419373f4], r15d | |
0bcbec27 mov [r15+0xc], esi | |
0bcbec2b mov byte [r15+0x6], 0x0 | |
0bcbec30 cmp dword [rdx+0x4], -0x0c | |
0bcbec34 jnz 0x0bcb0024 ->5 | |
0bcbec3a mov r15d, [rdx] | |
0bcbec3d cmp dword [r15+0x18], +0x02 | |
0bcbec42 jbe 0x0bcb0024 ->5 | |
0bcbec48 mov r15d, [r15+0x8] | |
0bcbec4c cmp dword [r15+0x14], -0x0c | |
0bcbec51 jnz 0x0bcb0024 ->5 | |
0bcbec57 mov r15d, [r15+0x10] | |
0bcbec5b cmp dword [rdx+0xc], -0x0c | |
0bcbec5f jnz 0x0bcb0024 ->5 | |
0bcbec65 mov r14d, [rdx+0x8] | |
0bcbec69 mov eax, [0x403641e0] | |
0bcbec70 mov [rsp+0x20], eax | |
0bcbec74 mov esi, [rax+0x1c] | |
0bcbec77 and esi, 0xce2b6183 | |
0bcbec7d lea esi, [rsi+rsi*2] | |
0bcbec80 shl esi, 0x03 | |
0bcbec83 add esi, [rax+0x14] | |
0bcbec86 cmp dword [rsi+0xc], -0x05 | |
0bcbec8a jnz 0x0bcbec99 | |
0bcbec8c cmp dword [rsi+0x8], 0x41939db0 | |
0bcbec93 jz 0x0bcb0024 ->5 | |
0bcbec99 mov esi, [rsi+0x10] | |
0bcbec9c test esi, esi | |
0bcbec9e jnz 0x0bcbec86 | |
0bcbeca0 mov esi, [rax+0x10] | |
0bcbeca3 mov [rsp+0x28], esi | |
0bcbeca7 test esi, esi | |
0bcbeca9 jz 0x0bcb0024 ->5 | |
0bcbecaf cmp dword [rsi+0x1c], +0x01 | |
0bcbecb3 jnz 0x0bcb0024 ->5 | |
0bcbecb9 mov r13d, [rsi+0x14] | |
0bcbecbd mov rsi, 0xfffffffb419394c8 | |
0bcbecc7 cmp rsi, [r13+0x20] | |
0bcbeccb jnz 0x0bcb0024 ->5 | |
0bcbecd1 cmp dword [r13+0x1c], -0x0c | |
0bcbecd6 jnz 0x0bcb0024 ->5 | |
0bcbecdc mov r13d, [r13+0x18] | |
0bcbece0 cmp dword [r13+0x1c], +0x3f | |
0bcbece5 jnz 0x0bcb0024 ->5 | |
0bcbeceb mov r13d, [r13+0x14] | |
0bcbecef mov rsi, 0xfffffffb41939db0 | |
0bcbecf9 cmp rsi, [r13+0x50] | |
0bcbecfd jnz 0x0bcb0024 ->5 | |
0bcbed03 cmp dword [r13+0x4c], -0x09 | |
0bcbed08 jnz 0x0bcb0024 ->5 | |
0bcbed0e mov esi, [rax+0x1c] | |
0bcbed11 and esi, 0x798a813c | |
0bcbed17 lea esi, [rsi+rsi*2] | |
0bcbed1a shl esi, 0x03 | |
0bcbed1d add esi, [rax+0x14] | |
0bcbed20 cmp dword [rsi+0xc], -0x05 | |
0bcbed24 jnz 0x0bcbed33 | |
0bcbed26 cmp dword [rsi+0x8], 0x41939fb0 | |
0bcbed2d jz 0x0bcb0024 ->5 | |
0bcbed33 mov esi, [rsi+0x10] | |
0bcbed36 test esi, esi | |
0bcbed38 jnz 0x0bcbed20 | |
0bcbed3a mov rsi, 0xfffffffb41939fb0 | |
0bcbed44 cmp rsi, [r13+0x5a8] | |
0bcbed4b jnz 0x0bcb0024 ->5 | |
0bcbed51 cmp dword [r13+0x5a4], -0x09 | |
0bcbed59 jnz 0x0bcb0024 ->5 | |
0bcbed5f cmp dword [r13+0x5a0], 0x41939f18 | |
0bcbed6a jnz 0x0bcb0024 ->5 | |
0bcbed70 cmp dword [r13+0x48], 0x41939d88 | |
0bcbed78 jnz 0x0bcb0024 ->5 | |
0bcbed7e cmp dword [r15+0x18], +0x01 | |
0bcbed83 jbe 0x0bcb0024 ->5 | |
0bcbed89 mov r13d, [r15+0x8] | |
0bcbed8d cmp dword [r13+0xc], -0x05 | |
0bcbed92 jnz 0x0bcb0024 ->5 | |
0bcbed98 mov r13d, [r13+0x8] | |
0bcbed9c cmp r13d, 0x419398f8 | |
0bcbeda3 jnz 0x0bcb0028 ->6 | |
0bcbeda9 addsd xmm7, [0x403610a0] | |
0bcbedb2 movsd [rsp+0x38], xmm7 | |
0bcbedb8 movsd [rdi], xmm7 | |
0bcbedbc mov edi, 0x41937414 | |
0bcbedc1 mov esi, [rdi+0x8] | |
0bcbedc4 mov [rdi], esi | |
0bcbedc6 mov esi, 0x4c | |
0bcbedcb call 0x00421b60 ->lj_buf_putchar | |
0bcbedd0 mov edi, eax | |
0bcbedd2 lea rsi, [rsp+0x38] | |
0bcbedd7 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbeddc mov edi, eax | |
0bcbedde call 0x00421ff0 ->lj_buf_tostr | |
0bcbede3 mov [rsp+0x48], eax | |
0bcbede7 mov edi, [0x419374b0] | |
0bcbedee mov esi, 0x40372418 | |
0bcbedf3 call 0x004223c0 ->lj_tab_dup | |
0bcbedf8 mov r12d, eax | |
0bcbedfb mov edi, [0x419374b0] | |
0bcbee02 xor esi, esi | |
0bcbee04 call 0x00422350 ->lj_tab_new1 | |
0bcbee09 mov ecx, eax | |
0bcbee0b mov edi, [0x419374b0] | |
0bcbee12 mov esi, [rsp+0x2c] | |
0bcbee16 mov eax, [rsp+0x48] | |
0bcbee1a mov edx, [r12+0x14] | |
0bcbee1f mov dword [rdx+0x34], 0xfffffff4 | |
0bcbee26 mov [rdx+0x30], ecx | |
0bcbee29 mov dword [rdx+0x4c], 0xfffffffb | |
0bcbee30 mov [rdx+0x48], eax | |
0bcbee33 cmp dword [rsi+0x1c], +0x01 | |
0bcbee37 jnz 0x0bcb0030 ->8 | |
0bcbee3d mov esi, [rsi+0x14] | |
0bcbee40 mov rdx, 0xfffffffb403716f0 | |
0bcbee4a cmp rdx, [rsi+0x8] | |
0bcbee4e jnz 0x0bcb0030 ->8 | |
0bcbee54 cmp dword [rsi+0x4], -0x0c | |
0bcbee58 jnz 0x0bcb0030 ->8 | |
0bcbee5e mov esi, [rsi] | |
0bcbee60 mov [rsp+0x40], esi | |
0bcbee64 mov edx, [rsi+0x1c] | |
0bcbee67 and edx, [rax+0x8] | |
0bcbee6a lea edx, [rdx+rdx*2] | |
0bcbee6d shl edx, 0x03 | |
0bcbee70 add edx, [rsi+0x14] | |
0bcbee73 cmp dword [rdx+0xc], -0x05 | |
0bcbee77 jnz 0x0bcbee82 | |
0bcbee79 cmp eax, [rdx+0x8] | |
0bcbee7c jz 0x0bcb0030 ->8 | |
0bcbee82 mov edx, [rdx+0x10] | |
0bcbee85 test edx, edx | |
0bcbee87 jnz 0x0bcbee73 | |
0bcbee89 cmp dword [rsi+0x10], +0x00 | |
0bcbee8d jnz 0x0bcb0030 ->8 | |
0bcbee93 mov edx, 0x41937448 | |
0bcbee98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbee9f mov [rdx], eax | |
0bcbeea1 call 0x00422cf0 ->lj_tab_newkey | |
0bcbeea6 mov edi, [rsp+0x44] | |
0bcbeeaa mov esi, [rsp+0x40] | |
0bcbeeae movsd xmm7, [rsp+0x38] | |
0bcbeeb4 mov dword [rax+0x4], 0xfffffff4 | |
0bcbeebb mov [rax], r12d | |
0bcbeebe test byte [rsi+0x4], 0x4 | |
0bcbeec2 jz 0x0bcbeed9 | |
0bcbeec4 and byte [rsi+0x4], 0xfb | |
0bcbeec8 mov edx, [0x419373f4] | |
0bcbeecf mov [0x419373f4], esi | |
0bcbeed6 mov [rsi+0xc], edx | |
0bcbeed9 mov byte [rsi+0x6], 0x0 | |
0bcbeedd addsd xmm7, [0x403610a0] | |
0bcbeee6 movsd [rsp+0x30], xmm7 | |
0bcbeeec movsd [rdi], xmm7 | |
0bcbeef0 mov edi, 0x41937414 | |
0bcbeef5 mov esi, [rdi+0x8] | |
0bcbeef8 mov [rdi], esi | |
0bcbeefa mov esi, 0x4c | |
0bcbeeff call 0x00421b60 ->lj_buf_putchar | |
0bcbef04 mov edi, eax | |
0bcbef06 lea rsi, [rsp+0x30] | |
0bcbef0b call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbef10 mov edi, eax | |
0bcbef12 call 0x00421ff0 ->lj_buf_tostr | |
0bcbef17 mov [rsp+0x18], eax | |
0bcbef1b mov edi, [0x419374b0] | |
0bcbef22 mov esi, 0x40372418 | |
0bcbef27 call 0x004223c0 ->lj_tab_dup | |
0bcbef2c mov [rsp+0x14], eax | |
0bcbef30 mov edi, [0x419374b0] | |
0bcbef37 xor esi, esi | |
0bcbef39 call 0x00422350 ->lj_tab_new1 | |
0bcbef3e mov ecx, eax | |
0bcbef40 mov edi, [rsp+0x14] | |
0bcbef44 mov esi, [rsp+0x2c] | |
0bcbef48 mov eax, [rsp+0x18] | |
0bcbef4c mov edx, [rdi+0x14] | |
0bcbef4f mov edi, [0x419374b0] | |
0bcbef56 mov dword [rdx+0x34], 0xfffffff4 | |
0bcbef5d mov [rdx+0x30], ecx | |
0bcbef60 mov dword [rdx+0x4c], 0xfffffffb | |
0bcbef67 mov [rdx+0x48], eax | |
0bcbef6a cmp dword [rsi+0x1c], +0x01 | |
0bcbef6e jnz 0x0bcb0038 ->10 | |
0bcbef74 mov esi, [rsi+0x14] | |
0bcbef77 mov rdx, 0xfffffffb403716f0 | |
0bcbef81 cmp rdx, [rsi+0x8] | |
0bcbef85 jnz 0x0bcb0038 ->10 | |
0bcbef8b cmp dword [rsi+0x4], -0x0c | |
0bcbef8f jnz 0x0bcb0038 ->10 | |
0bcbef95 mov esi, [rsi] | |
0bcbef97 mov [rsp+0x24], esi | |
0bcbef9b mov edx, [rsi+0x1c] | |
0bcbef9e and edx, [rax+0x8] | |
0bcbefa1 lea edx, [rdx+rdx*2] | |
0bcbefa4 shl edx, 0x03 | |
0bcbefa7 add edx, [rsi+0x14] | |
0bcbefaa cmp dword [rdx+0xc], -0x05 | |
0bcbefae jnz 0x0bcbefb9 | |
0bcbefb0 cmp eax, [rdx+0x8] | |
0bcbefb3 jz 0x0bcb0038 ->10 | |
0bcbefb9 mov edx, [rdx+0x10] | |
0bcbefbc test edx, edx | |
0bcbefbe jnz 0x0bcbefaa | |
0bcbefc0 cmp dword [rsi+0x10], +0x00 | |
0bcbefc4 jnz 0x0bcb0038 ->10 | |
0bcbefca mov edx, 0x41937448 | |
0bcbefcf mov dword [rdx+0x4], 0xfffffffb | |
0bcbefd6 mov [rdx], eax | |
0bcbefd8 call 0x00422cf0 ->lj_tab_newkey | |
0bcbefdd mov ecx, eax | |
0bcbefdf mov edi, [rsp+0x14] | |
0bcbefe3 mov esi, [rsp+0x28] | |
0bcbefe7 mov edx, [rsp+0x24] | |
0bcbefeb mov eax, [rsp+0x20] | |
0bcbefef mov dword [rcx+0x4], 0xfffffff4 | |
0bcbeff6 mov [rcx], edi | |
0bcbeff8 mov edi, [0x419374b0] | |
0bcbefff test byte [rdx+0x4], 0x4 | |
0bcbf003 jz 0x0bcbf01a | |
0bcbf005 and byte [rdx+0x4], 0xfb | |
0bcbf009 mov ecx, [0x419373f4] | |
0bcbf010 mov [0x419373f4], edx | |
0bcbf017 mov [rdx+0xc], ecx | |
0bcbf01a mov byte [rdx+0x6], 0x0 | |
0bcbf01e cmp dword [r15+0x18], +0x02 | |
0bcbf023 jbe 0x0bcb003c ->11 | |
0bcbf029 mov edx, [r15+0x8] | |
0bcbf02d cmp dword [rdx+0x14], -0x0c | |
0bcbf031 jnz 0x0bcb003c ->11 | |
0bcbf037 mov ecx, [rdx+0x10] | |
0bcbf03a mov [rsp+0x10], ecx | |
0bcbf03e mov edx, [rax+0x1c] | |
0bcbf041 and edx, 0xce2b6183 | |
0bcbf047 lea edx, [rdx+rdx*2] | |
0bcbf04a shl edx, 0x03 | |
0bcbf04d add edx, [rax+0x14] | |
0bcbf050 cmp dword [rdx+0xc], -0x05 | |
0bcbf054 jnz 0x0bcbf063 | |
0bcbf056 cmp dword [rdx+0x8], 0x41939db0 | |
0bcbf05d jz 0x0bcb003c ->11 | |
0bcbf063 mov edx, [rdx+0x10] | |
0bcbf066 test edx, edx | |
0bcbf068 jnz 0x0bcbf050 | |
0bcbf06a cmp dword [rsi+0x1c], +0x01 | |
0bcbf06e jnz 0x0bcb003c ->11 | |
0bcbf074 mov esi, [rsi+0x14] | |
0bcbf077 mov rdx, 0xfffffffb419394c8 | |
0bcbf081 cmp rdx, [rsi+0x20] | |
0bcbf085 jnz 0x0bcb003c ->11 | |
0bcbf08b cmp dword [rsi+0x1c], -0x0c | |
0bcbf08f jnz 0x0bcb003c ->11 | |
0bcbf095 mov esi, [rsi+0x18] | |
0bcbf098 cmp dword [rsi+0x1c], +0x3f | |
0bcbf09c jnz 0x0bcb003c ->11 | |
0bcbf0a2 mov esi, [rsi+0x14] | |
0bcbf0a5 mov rdx, 0xfffffffb41939db0 | |
0bcbf0af cmp rdx, [rsi+0x50] | |
0bcbf0b3 jnz 0x0bcb003c ->11 | |
0bcbf0b9 cmp dword [rsi+0x4c], -0x09 | |
0bcbf0bd jnz 0x0bcb003c ->11 | |
0bcbf0c3 mov edx, [rax+0x1c] | |
0bcbf0c6 and edx, 0x798a813c | |
0bcbf0cc lea edx, [rdx+rdx*2] | |
0bcbf0cf shl edx, 0x03 | |
0bcbf0d2 add edx, [rax+0x14] | |
0bcbf0d5 cmp dword [rdx+0xc], -0x05 | |
0bcbf0d9 jnz 0x0bcbf0e8 | |
0bcbf0db cmp dword [rdx+0x8], 0x41939fb0 | |
0bcbf0e2 jz 0x0bcb003c ->11 | |
0bcbf0e8 mov edx, [rdx+0x10] | |
0bcbf0eb test edx, edx | |
0bcbf0ed jnz 0x0bcbf0d5 | |
0bcbf0ef mov rdx, 0xfffffffb41939fb0 | |
0bcbf0f9 cmp rdx, [rsi+0x5a8] | |
0bcbf100 jnz 0x0bcb003c ->11 | |
0bcbf106 cmp dword [rsi+0x5a4], -0x09 | |
0bcbf10d jnz 0x0bcb003c ->11 | |
0bcbf113 cmp dword [rsi+0x5a0], 0x41939f18 | |
0bcbf11d jnz 0x0bcb003c ->11 | |
0bcbf123 cmp dword [rsi+0x48], 0x41939d88 | |
0bcbf12a jnz 0x0bcb003c ->11 | |
0bcbf130 cmp dword [rcx+0x18], +0x01 | |
0bcbf134 jbe 0x0bcb003c ->11 | |
0bcbf13a mov esi, [rcx+0x8] | |
0bcbf13d cmp dword [rsi+0xc], -0x05 | |
0bcbf141 jnz 0x0bcb003c ->11 | |
0bcbf147 mov ecx, [rsi+0x8] | |
0bcbf14a mov [rsp+0x1c], ecx | |
0bcbf14e cmp ecx, 0x419398f8 | |
0bcbf154 jz 0x0bcb0040 ->12 | |
0bcbf15a cmp ecx, 0x40367440 | |
0bcbf160 jz 0x0bcb0044 ->13 | |
0bcbf166 cmp ecx, 0x41939a18 | |
0bcbf16c jz 0x0bcb0048 ->14 | |
0bcbf172 cmp ecx, 0x41939870 | |
0bcbf178 jz 0x0bcb004c ->15 | |
0bcbf17e cmp ecx, 0x4193ccb0 | |
0bcbf184 jz 0x0bcb0050 ->16 | |
0bcbf18a cmp ecx, 0x4193f138 | |
0bcbf190 jz 0x0bcb0054 ->17 | |
0bcbf196 cmp dword [0x41952d34], -0x0c | |
0bcbf19e jnz 0x0bcb0058 ->18 | |
0bcbf1a4 mov edx, [0x41952d30] | |
0bcbf1ab mov esi, [rdx+0x1c] | |
0bcbf1ae and esi, [rcx+0x8] | |
0bcbf1b1 lea esi, [rsi+rsi*2] | |
0bcbf1b4 shl esi, 0x03 | |
0bcbf1b7 add esi, [rdx+0x14] | |
0bcbf1ba cmp dword [rsi+0xc], -0x05 | |
0bcbf1be jnz 0x0bcbf1c5 | |
0bcbf1c0 cmp ecx, [rsi+0x8] | |
0bcbf1c3 jz 0x0bcbf1d1 | |
0bcbf1c5 mov esi, [rsi+0x10] | |
0bcbf1c8 test esi, esi | |
0bcbf1ca jnz 0x0bcbf1ba | |
0bcbf1cc mov esi, 0x41937458 | |
0bcbf1d1 cmp dword [rsi+0x4], -0x03 | |
0bcbf1d5 jnz 0x0bcb0058 ->18 | |
0bcbf1db mov esi, 0x40366b30 | |
0bcbf1e0 call 0x004223c0 ->lj_tab_dup | |
0bcbf1e5 mov edx, eax | |
0bcbf1e7 mov [rsp+0xc], edx | |
0bcbf1eb mov edi, [0x419374b0] | |
0bcbf1f2 mov ecx, [rsp+0x10] | |
0bcbf1f6 mov eax, [rsp+0x18] | |
0bcbf1fa mov edx, [rdx+0x8] | |
0bcbf1fd mov dword [rdx+0x14], 0xfffffff4 | |
0bcbf204 mov [rdx+0x10], ecx | |
0bcbf207 cmp dword [r12+0x1c], +0x03 | |
0bcbf20d jnz 0x0bcb005c ->19 | |
0bcbf213 mov ecx, [r12+0x14] | |
0bcbf218 mov r11, 0xfffffffb40371790 | |
0bcbf222 cmp r11, [rcx+0x50] | |
0bcbf226 jnz 0x0bcb005c ->19 | |
0bcbf22c cmp dword [rcx+0x4c], -0x05 | |
0bcbf230 jnz 0x0bcb005c ->19 | |
0bcbf236 mov ecx, [rcx+0x48] | |
0bcbf239 mov dword [rdx+0x1c], 0xfffffffb | |
0bcbf240 mov [rdx+0x18], ecx | |
0bcbf243 mov dword [rdx+0x24], 0xfffffffb | |
0bcbf24a mov [rdx+0x20], eax | |
0bcbf24d mov edx, [r14+0x1c] | |
0bcbf251 and edx, 0x2a54dc55 | |
0bcbf257 lea edx, [rdx+rdx*2] | |
0bcbf25a shl edx, 0x03 | |
0bcbf25d add edx, [r14+0x14] | |
0bcbf261 cmp dword [rdx+0xc], -0x05 | |
0bcbf265 jnz 0x0bcbf274 | |
0bcbf267 cmp dword [rdx+0x8], 0x40371ef8 | |
0bcbf26e jz 0x0bcb0060 ->20 | |
0bcbf274 mov edx, [rdx+0x10] | |
0bcbf277 test edx, edx | |
0bcbf279 jnz 0x0bcbf261 | |
0bcbf27b cmp dword [r14+0x10], +0x00 | |
0bcbf280 jnz 0x0bcb0060 ->20 | |
0bcbf286 mov edx, 0x41937448 | |
0bcbf28b mov dword [rdx+0x4], 0xfffffffb | |
0bcbf292 mov dword [rdx], 0x40371ef8 | |
0bcbf298 mov esi, r14d | |
0bcbf29b call 0x00422cf0 ->lj_tab_newkey | |
0bcbf2a0 mov r11d, eax | |
0bcbf2a3 mov edi, [rsp+0x14] | |
0bcbf2a7 mov esi, [rsp+0x10] | |
0bcbf2ab mov edx, [0x419374b4] | |
0bcbf2b2 mov ecx, [rsp+0xc] | |
0bcbf2b6 mov eax, [rsp+0x8] | |
0bcbf2ba mov dword [r11+0x4], 0xfffffff4 | |
0bcbf2c2 mov [r11], ecx | |
0bcbf2c5 test byte [r14+0x4], 0x4 | |
0bcbf2ca jz 0x0bcbf2e4 | |
0bcbf2cc and byte [r14+0x4], 0xfb | |
0bcbf2d1 mov ecx, [0x419373f4] | |
0bcbf2d8 mov [0x419373f4], r14d | |
0bcbf2e0 mov [r14+0xc], ecx | |
0bcbf2e4 mov dword [rdx+0x84], 0xfffffff4 | |
0bcbf2ee mov [rdx+0x80], esi | |
0bcbf2f4 mov dword [rdx+0x7c], 0x40372e40 | |
0bcbf2fb mov dword [rdx+0x78], 0x403641d8 | |
0bcbf302 mov dword [rdx+0x74], 0xfffffff4 | |
0bcbf309 mov [rdx+0x70], edi | |
0bcbf30c mov dword [rdx+0x6c], 0xfffffff4 | |
0bcbf313 mov [rdx+0x68], r12d | |
0bcbf317 mov dword [rdx+0x64], 0xfffffffb | |
0bcbf31e mov [rdx+0x60], r13d | |
0bcbf322 mov dword [rdx+0x5c], 0xfffffff4 | |
0bcbf329 mov [rdx+0x58], ebp | |
0bcbf32c mov dword [rdx+0x54], 0xfffffff4 | |
0bcbf333 mov [rdx+0x50], eax | |
0bcbf336 mov dword [rdx+0x4c], 0xfffffff4 | |
0bcbf33d mov [rdx+0x48], r14d | |
0bcbf341 mov dword [rdx+0x44], 0xfffffff4 | |
0bcbf348 mov [rdx+0x40], r15d | |
0bcbf34c mov dword [rdx+0x3c], 0x40372e40 | |
0bcbf353 mov dword [rdx+0x38], 0x403641d8 | |
0bcbf35a mov dword [rdx+0x34], 0xfffffff4 | |
0bcbf361 mov [rdx+0x30], ebp | |
0bcbf364 mov dword [rdx+0x2c], 0xfffffff4 | |
0bcbf36b mov [rdx+0x28], eax | |
0bcbf36e mov dword [rdx+0x24], 0xfffffffb | |
0bcbf375 mov [rdx+0x20], ebx | |
0bcbf378 mov dword [rdx-0x8], 0x403641d8 | |
0bcbf37f add edx, 0x80 | |
0bcbf385 mov [0x419374b4], edx | |
0bcbf38c add rsp, +0x60 | |
0bcbf390 jmp 0x0bcbf398 | |
---- TRACE 5 stop -> 4 | |
---- TRACE 4 exit 1 | |
---- TRACE 2 exit 2 | |
---- TRACE 5 exit 12 | |
---- TRACE 2 exit 8 | |
---- TRACE 4 exit 1 | |
---- TRACE 2 exit 3 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 3 | |
---- TRACE 2 exit 8 | |
---- TRACE 4 exit 1 | |
---- TRACE 5 exit 6 | |
---- TRACE 4 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 4 exit 6 | |
---- TRACE 4 exit 1 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 1 | |
---- TRACE 4 exit 1 | |
---- TRACE 4 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 1 | |
---- TRACE 6 start 4/1 ssa.lua:79 | |
0094 RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 JLOOP 1 4 | |
---- TRACE 6 IR | |
.... SNAP #0 [ ---- ] | |
.... SNAP #1 [ ---- ] | |
0002 > p32 RETF proto: 0x40372da0 [0x40372e70] | |
.... SNAP #2 [ ---- ---- ] | |
---- TRACE 6 mcode 50 | |
0bcbe8e7 mov dword [0x41937410], 0x6 | |
0bcbe8f2 mov edx, [0x419374b4] | |
0bcbe8f9 cmp dword [rdx-0x4], 0x40372e70 | |
0bcbe900 jnz 0x0bcb0014 ->1 | |
0bcbe906 add edx, -0x40 | |
0bcbe909 mov [0x419374b4], edx | |
0bcbe910 add rsp, +0x10 | |
0bcbe914 jmp 0x0bcbf398 | |
---- TRACE 6 stop -> 4 | |
---- TRACE 6 exit 1 | |
---- TRACE 5 exit 6 | |
---- TRACE 6 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 6 exit 1 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 6 exit 1 | |
---- TRACE 5 exit 6 | |
---- TRACE 6 exit 1 | |
---- TRACE 2 exit 2 | |
---- TRACE 5 exit 20 | |
---- TRACE 6 exit 1 | |
---- TRACE 2 exit 3 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 3 | |
---- TRACE 2 exit 8 | |
---- TRACE 6 exit 1 | |
---- TRACE 2 exit 3 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 6 | |
---- TRACE 6 exit 1 | |
---- TRACE 5 exit 6 | |
---- TRACE 7 start ssa.lua:49 | |
0001 TDUP 4 1 | |
0002 TSETB 1 4 2 | |
0003 TGETS 5 2 2 ; "label" | |
0004 TSETB 5 4 3 | |
0005 TGETS 5 3 2 ; "label" | |
0006 TSETB 5 4 4 | |
0007 TSETS 4 0 0 ; "control" | |
0008 RET0 0 1 | |
---- TRACE 7 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rax > [31mtab[m TDUP [31m{0x40366b30}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 rbx p32 FLOAD 0001 tab.array | |
0004 p32 AREF 0003 [35m+2 [m | |
0005 [31mtab[m ASTORE 0004 0002 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [31m0001[m ] | |
0006 rbp > [31mtab[m SLOAD #3 T | |
0007 [35mint[m FLOAD 0006 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+3 [m | |
0009 rbp p32 FLOAD 0006 tab.node | |
0010 > p32 HREFK 0009 [32m"label"[m @3 | |
0011 rbp > [32mstr[m HLOAD 0010 | |
0012 p32 AREF 0003 [35m+3 [m | |
0013 [32mstr[m ASTORE 0012 0011 | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0014 rbp > [31mtab[m SLOAD #4 T | |
0015 [35mint[m FLOAD 0014 tab.hmask | |
0016 > [35mint[m EQ 0015 [35m+3 [m | |
0017 rbp p32 FLOAD 0014 tab.node | |
0018 > p32 HREFK 0017 [32m"label"[m @3 | |
0019 rbp > [32mstr[m HLOAD 0018 | |
0020 p32 AREF 0003 [35m+4 [m | |
0021 [32mstr[m ASTORE 0020 0019 | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0022 rbp > [31mtab[m SLOAD #1 T | |
0023 [35mint[m FLOAD 0022 tab.hmask | |
0024 > [35mint[m EQ 0023 [35m+3 [m | |
0025 rbx p32 FLOAD 0022 tab.node | |
0026 > p32 HREFK 0025 [32m"control"[m @1 | |
0027 [31mtab[m FLOAD 0022 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 [31mtab[m HSTORE 0026 0001 | |
0030 nil TBAR 0022 | |
.... SNAP #4 [ ---- ] | |
---- TRACE 7 mcode 348 | |
0bcbe784 mov dword [0x41937410], 0x7 | |
0bcbe78f mov edi, [0x419373d8] | |
0bcbe796 cmp edi, [0x419373dc] | |
0bcbe79d jb 0x0bcbe7b6 | |
0bcbe79f mov esi, 0x1 | |
0bcbe7a4 mov edi, 0x419373b8 | |
0bcbe7a9 call 0x00421730 ->lj_gc_step_jit | |
0bcbe7ae test eax, eax | |
0bcbe7b0 jnz 0x0bcb0010 ->0 | |
0bcbe7b6 mov edi, [0x419374b0] | |
0bcbe7bd mov esi, 0x40366b30 | |
0bcbe7c2 call 0x004223c0 ->lj_tab_dup | |
0bcbe7c7 mov edx, [0x419374b4] | |
0bcbe7ce cmp dword [rdx+0xc], -0x0c | |
0bcbe7d2 jnz 0x0bcb0010 ->0 | |
0bcbe7d8 mov ebp, [rdx+0x8] | |
0bcbe7db mov ebx, [rax+0x8] | |
0bcbe7de mov dword [rbx+0x14], 0xfffffff4 | |
0bcbe7e5 mov [rbx+0x10], ebp | |
0bcbe7e8 cmp dword [rdx+0x14], -0x0c | |
0bcbe7ec jnz 0x0bcb0014 ->1 | |
0bcbe7f2 mov ebp, [rdx+0x10] | |
0bcbe7f5 cmp dword [rbp+0x1c], +0x03 | |
0bcbe7f9 jnz 0x0bcb0014 ->1 | |
0bcbe7ff mov ebp, [rbp+0x14] | |
0bcbe802 mov rdi, 0xfffffffb40371790 | |
0bcbe80c cmp rdi, [rbp+0x50] | |
0bcbe810 jnz 0x0bcb0014 ->1 | |
0bcbe816 cmp dword [rbp+0x4c], -0x05 | |
0bcbe81a jnz 0x0bcb0014 ->1 | |
0bcbe820 mov ebp, [rbp+0x48] | |
0bcbe823 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbe82a mov [rbx+0x18], ebp | |
0bcbe82d cmp dword [rdx+0x1c], -0x0c | |
0bcbe831 jnz 0x0bcb0018 ->2 | |
0bcbe837 mov ebp, [rdx+0x18] | |
0bcbe83a cmp dword [rbp+0x1c], +0x03 | |
0bcbe83e jnz 0x0bcb0018 ->2 | |
0bcbe844 mov ebp, [rbp+0x14] | |
0bcbe847 mov rdi, 0xfffffffb40371790 | |
0bcbe851 cmp rdi, [rbp+0x50] | |
0bcbe855 jnz 0x0bcb0018 ->2 | |
0bcbe85b cmp dword [rbp+0x4c], -0x05 | |
0bcbe85f jnz 0x0bcb0018 ->2 | |
0bcbe865 mov ebp, [rbp+0x48] | |
0bcbe868 mov dword [rbx+0x24], 0xfffffffb | |
0bcbe86f mov [rbx+0x20], ebp | |
0bcbe872 cmp dword [rdx+0x4], -0x0c | |
0bcbe876 jnz 0x0bcb001c ->3 | |
0bcbe87c mov ebp, [rdx] | |
0bcbe87e cmp dword [rbp+0x1c], +0x03 | |
0bcbe882 jnz 0x0bcb001c ->3 | |
0bcbe888 mov ebx, [rbp+0x14] | |
0bcbe88b mov rdi, 0xfffffffb40371ef8 | |
0bcbe895 cmp rdi, [rbx+0x20] | |
0bcbe899 jnz 0x0bcb001c ->3 | |
0bcbe89f cmp dword [rbp+0x10], +0x00 | |
0bcbe8a3 jnz 0x0bcb001c ->3 | |
0bcbe8a9 mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbe8b0 mov [rbx+0x18], eax | |
0bcbe8b3 test byte [rbp+0x4], 0x4 | |
0bcbe8b7 jz 0x0bcbe8ce | |
0bcbe8b9 and byte [rbp+0x4], 0xfb | |
0bcbe8bd mov edi, [0x419373f4] | |
0bcbe8c4 mov [0x419373f4], ebp | |
0bcbe8cb mov [rbp+0xc], edi | |
0bcbe8ce xor eax, eax | |
0bcbe8d0 mov ebx, 0x403728e8 | |
0bcbe8d5 mov r14d, 0x41938008 | |
0bcbe8db jmp 0x00420177 | |
---- TRACE 7 stop -> return | |
---- TRACE 6 exit 1 | |
---- TRACE 2 exit 2 | |
---- TRACE 5 exit 6 | |
---- TRACE 6 exit 1 | |
---- TRACE 8 start 6/1 ssa.lua:79 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0039 . TGETB 5 0 2 | |
0040 . TGETB 6 0 3 | |
0041 . TGETB 7 0 4 | |
0042 . GGET 8 2 ; "table" | |
0043 . TGETS 8 8 5 ; "insert" | |
0044 . TGETS 9 1 6 ; "bindings" | |
0045 . TDUP 10 7 | |
0046 . TSETS 5 10 8 ; "name" | |
0047 . TSETS 6 10 9 ; "value" | |
0048 . CALL 8 1 3 | |
0000 . . FUNCC ; table.insert | |
0049 . UGET 8 1 ; compile_bool | |
0050 . MOV 9 7 | |
0051 . MOV 10 1 | |
0052 . MOV 11 2 | |
0053 . MOV 12 3 | |
0054 . CALL 8 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0014 . . UGET 5 0 ; add_block | |
0015 . . CALL 5 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0016 . . UGET 6 0 ; add_block | |
0017 . . CALL 6 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0018 . . UGET 7 1 ; compile_bool | |
0019 . . TGETB 8 0 2 | |
0020 . . MOV 9 1 | |
0021 . . MOV 10 5 | |
0022 . . MOV 11 6 | |
0023 . . CALL 7 1 5 | |
0000 . . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . . GGET 4 0 ; "assert" | |
0002 . . . GGET 5 1 ; "type" | |
0003 . . . MOV 6 0 | |
0004 . . . CALL 5 2 2 | |
0000 . . . . FUNCC ; type | |
0005 . . . ISEQS 5 2 ; "table" | |
0006 . . . JMP 5 => 0009 | |
0009 . . . KPRI 5 2 | |
0010 . . . CALL 4 1 2 | |
0000 . . . . FUNCC ; assert | |
0011 . . . TGETB 4 0 1 | |
0012 . . . ISNES 4 3 ; "if" | |
0013 . . . JMP 5 => 0037 | |
0037 . . . ISNES 4 4 ; "let" | |
0038 . . . JMP 5 => 0056 | |
0056 . . . ISNES 4 10 ; "true" | |
0057 . . . JMP 5 => 0063 | |
0063 . . . ISNES 4 11 ; "false" | |
0064 . . . JMP 5 => 0070 | |
0070 . . . ISNES 4 12 ; "match" | |
0071 . . . JMP 5 => 0077 | |
0077 . . . ISNES 4 14 ; "fail" | |
0078 . . . JMP 5 => 0084 | |
0084 . . . GGET 5 0 ; "assert" | |
0085 . . . UGET 6 4 ; relops | |
0086 . . . TGETV 6 6 4 | |
0087 . . . CALL 5 1 2 | |
0000 . . . . FUNCC ; assert | |
0088 . . . UGET 5 5 ; finish_if | |
0089 . . . MOV 6 1 | |
0090 . . . MOV 7 0 | |
0091 . . . MOV 8 2 | |
0092 . . . MOV 9 3 | |
0093 . . . CALL 5 1 5 | |
0000 . . . . JFUNCF 6 7 ; ssa.lua:49 | |
0001 . . . . TDUP 4 1 | |
0002 . . . . TSETB 1 4 2 | |
0003 . . . . TGETS 5 2 2 ; "label" | |
0004 . . . . TSETB 5 4 3 | |
0005 . . . . TGETS 5 3 2 ; "label" | |
0006 . . . . TSETB 5 4 4 | |
0007 . . . . TSETS 4 0 0 ; "control" | |
0008 . . . . RET0 0 1 | |
0094 . . . JLOOP 1 4 | |
---- TRACE 8 IR | |
.... SNAP #0 [ ---- ] | |
.... SNAP #1 [ ---- ] | |
0002 > p32 RETF proto: 0x40372da0 [0x40372e40] | |
.... SNAP #2 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0003 [1mfun[m SLOAD #0 R | |
0004 > [1mfun[m EQ 0003 [1mssa.lua:55[m | |
0005 rbp > [31mtab[m SLOAD #1 T | |
0006 [35mint[m FLOAD 0005 tab.asize | |
0007 > [35mint[m ABC 0006 [35m+3 [m | |
0008 rbp p32 FLOAD 0005 tab.array | |
0009 p32 AREF 0008 [35m+3 [m | |
0010 rbp > [31mtab[m ALOAD 0009 | |
0011 rbx > [31mtab[m SLOAD #6 T | |
0012 r15 > [31mtab[m SLOAD #3 T | |
0013 r14 > [31mtab[m SLOAD #4 T | |
0014 [20] [31mtab[m FLOAD [1mssa.lua:55[m func.env | |
0015 rsi p32 HREF 0014 [32m"assert"[m | |
0016 > p32 EQ 0015 [0x41937458] | |
0017 [28] [31mtab[m FLOAD 0014 tab.meta | |
0018 > [31mtab[m NE 0017 [31m[NULL][m | |
0019 [35mint[m FLOAD 0017 tab.hmask | |
0020 > [35mint[m EQ 0019 [35m+1 [m | |
0021 r13 p32 FLOAD 0017 tab.node | |
0022 > p32 HREFK 0021 [32m"__index"[m @1 | |
0023 r13 > [31mtab[m HLOAD 0022 | |
0024 [35mint[m FLOAD 0023 tab.hmask | |
0025 > [35mint[m EQ 0024 [35m+63 [m | |
0026 rsi p32 FLOAD 0023 tab.node | |
0027 > p32 HREFK 0026 [32m"assert"[m @3 | |
0028 > [1mfun[m HLOAD 0027 | |
0029 rdx p32 HREF 0014 [32m"type"[m | |
0030 > p32 EQ 0029 [0x41937458] | |
0031 > p32 HREFK 0026 [32m"type"[m @60 | |
0032 > [1mfun[m HLOAD 0031 | |
0033 > [1mfun[m EQ 0032 [1mtype[m | |
0034 > [1mfun[m EQ 0028 [1massert[m | |
0035 [35mint[m FLOAD 0010 tab.asize | |
0036 > [35mint[m ABC 0035 [35m+4 [m | |
0037 r12 p32 FLOAD 0010 tab.array | |
0038 p32 AREF 0037 [35m+1 [m | |
0039 r13 > [32mstr[m ALOAD 0038 | |
.... SNAP #3 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0040 > [32mstr[m NE 0039 [32m"if"[m | |
.... SNAP #4 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0041 > [32mstr[m EQ 0039 [32m"let"[m | |
.... SNAP #5 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0042 p32 AREF 0037 [35m+2 [m | |
0043 [60] > [32mstr[m ALOAD 0042 | |
0044 p32 AREF 0037 [35m+3 [m | |
0045 [64] > [31mtab[m ALOAD 0044 | |
0046 p32 AREF 0037 [35m+4 [m | |
0047 r12 > [31mtab[m ALOAD 0046 | |
0048 rdx p32 HREF 0014 [32m"table"[m | |
0049 > p32 EQ 0048 [0x41937458] | |
0050 > p32 HREFK 0026 [32m"table"[m @47 | |
0051 rsi > [31mtab[m HLOAD 0050 | |
0052 [35mint[m FLOAD 0051 tab.hmask | |
0053 > [35mint[m EQ 0052 [35m+7 [m | |
0054 rsi p32 FLOAD 0051 tab.node | |
0055 > p32 HREFK 0054 [32m"insert"[m @7 | |
0056 [54] > [1mfun[m HLOAD 0055 | |
0057 [35mint[m FLOAD 0011 tab.hmask | |
0058 > [35mint[m EQ 0057 [35m+3 [m | |
0059 rsi p32 FLOAD 0011 tab.node | |
0060 > p32 HREFK 0059 [32m"bindings"[m @2 | |
0061 [50] > [31mtab[m HLOAD 0060 | |
0062 [4c] > [31mtab[m TDUP [31m{0x419493c8}[m | |
0063 rax p32 FLOAD 0062 tab.node | |
0064 p32 HREFK 0063 [32m"name"[m @0 | |
0065 [32mstr[m HSTORE 0064 0043 | |
0066 p32 HREFK 0063 [32m"value"[m @1 | |
0067 [31mtab[m HSTORE 0066 0045 | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1m0056[m [31m0061[m [31m0062[m ] | |
0068 > [1mfun[m EQ 0056 [1mtable.insert[m | |
0069 rax [35mint[m CALLL lj_tab_len (0061) | |
0070 rax [35mint[m ADD 0069 [35m+1 [m | |
0071 [35mint[m FLOAD 0061 tab.asize | |
0072 > [35mint[m ULE 0071 0070 | |
0073 [35mint[m FLOAD 0061 tab.hmask | |
0074 > [35mint[m EQ 0073 [35m+0 [m | |
0075 [58] [34mnum[m CONV 0070 [34mnum[m.[35mint[m | |
0076 rcx p32 NEWREF 0061 0075 | |
0077 [31mtab[m HSTORE 0076 0062 | |
0078 nil TBAR 0061 | |
.... SNAP #7 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m ] | |
0079 rdi p32 HREF 0014 [32m"assert"[m | |
0080 > p32 EQ 0079 [0x41937458] | |
0081 [35mint[m FLOAD 0017 tab.hmask | |
0082 > [35mint[m EQ 0081 [35m+1 [m | |
0083 rdi p32 FLOAD 0017 tab.node | |
0084 > p32 HREFK 0083 [32m"__index"[m @1 | |
0085 rdi > [31mtab[m HLOAD 0084 | |
0086 [35mint[m FLOAD 0085 tab.hmask | |
0087 > [35mint[m EQ 0086 [35m+63 [m | |
0088 rdi p32 FLOAD 0085 tab.node | |
0089 > p32 HREFK 0088 [32m"assert"[m @3 | |
0090 > [1mfun[m HLOAD 0089 | |
0091 rsi p32 HREF 0014 [32m"type"[m | |
0092 > p32 EQ 0091 [0x41937458] | |
0093 > p32 HREFK 0088 [32m"type"[m @60 | |
0094 > [1mfun[m HLOAD 0093 | |
0095 > [1mfun[m EQ 0094 [1mtype[m | |
0096 > [1mfun[m EQ 0090 [1massert[m | |
0097 [35mint[m FLOAD 0047 tab.asize | |
0098 > [35mint[m ABC 0097 [35m+1 [m | |
0099 rdi p32 FLOAD 0047 tab.array | |
0100 p32 AREF 0099 [35m+1 [m | |
0101 [18] > [32mstr[m ALOAD 0100 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m ] | |
0102 > [32mstr[m EQ 0101 [32m"if"[m | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m ] | |
0103 [44] > p32 UREFO [1mssa.lua:39[m #0 | |
0104 xmm7 > [34mnum[m ULOAD 0103 | |
0105 [38] [34mnum[m ADD 0104 [34m+1 [m | |
0106 [34mnum[m USTORE 0103 0105 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [1mssa.lua:39[m|---- ] | |
0107 [32mstr[m TOSTR 0105 NUM | |
0108 rdi p32 BUFHDR [0x41937414] RESET | |
0109 rdi p32 BUFPUT 0108 [32m"L" [m | |
0110 rdi p32 BUFPUT 0109 0107 | |
0111 [48] [32mstr[m BUFSTR 0110 0108 | |
0112 [c] > [31mtab[m TDUP [31m{0x40372418}[m | |
0113 rdx > [31mtab[m TNEW #0 #0 | |
0114 rsi p32 FLOAD 0112 tab.node | |
0115 p32 HREFK 0114 [32m"bindings"[m @2 | |
0116 [31mtab[m HSTORE 0115 0113 | |
0117 p32 HREFK 0114 [32m"label"[m @3 | |
0118 [32mstr[m HSTORE 0117 0111 | |
.... SNAP #11 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [1mssa.lua:39[m|[32m0111[m [31m0112[m ---- ] | |
0119 rsi > p32 UREFO [1mssa.lua:39[m #1 | |
0120 [2c] > [31mtab[m ULOAD 0119 | |
0121 [35mint[m FLOAD 0120 tab.hmask | |
0122 > [35mint[m EQ 0121 [35m+1 [m | |
0123 rsi p32 FLOAD 0120 tab.node | |
0124 > p32 HREFK 0123 [32m"blocks"[m @0 | |
0125 [40] > [31mtab[m HLOAD 0124 | |
0126 rdx p32 HREF 0125 0111 | |
0127 > p32 EQ 0126 [0x41937458] | |
0128 [31mtab[m FLOAD 0125 tab.meta | |
0129 > [31mtab[m EQ 0128 [31m[NULL][m | |
0130 rdx p32 NEWREF 0125 0111 | |
0131 [31mtab[m HSTORE 0130 0112 | |
0132 nil TBAR 0125 | |
0133 p32 FREF 0125 tab.nomm | |
0134 [35mu8 [m FSTORE 0133 [35m+0 [m | |
0135 [30] [34mnum[m ADD 0105 [34m+1 [m | |
0136 [34mnum[m USTORE 0103 0135 | |
.... SNAP #12 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [1mssa.lua:39[m|---- ] | |
0137 [32mstr[m TOSTR 0135 NUM | |
0138 rdi p32 BUFHDR [0x41937414] RESET | |
0139 rdi p32 BUFPUT 0138 [32m"L" [m | |
0140 rdi p32 BUFPUT 0139 0137 | |
0141 [1c] [32mstr[m BUFSTR 0140 0138 | |
0142 [14] > [31mtab[m TDUP [31m{0x40372418}[m | |
0143 rdx > [31mtab[m TNEW #0 #0 | |
0144 rax p32 FLOAD 0142 tab.node | |
0145 p32 HREFK 0144 [32m"bindings"[m @2 | |
0146 [31mtab[m HSTORE 0145 0143 | |
0147 p32 HREFK 0144 [32m"label"[m @3 | |
0148 [32mstr[m HSTORE 0147 0141 | |
.... SNAP #13 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [1mssa.lua:39[m|[32m0141[m [31m0142[m ---- ] | |
0149 [35mint[m FLOAD 0120 tab.hmask | |
0150 > [35mint[m EQ 0149 [35m+1 [m | |
0151 rsi p32 FLOAD 0120 tab.node | |
0152 > p32 HREFK 0151 [32m"blocks"[m @0 | |
0153 [24] > [31mtab[m HLOAD 0152 | |
0154 rdx p32 HREF 0153 0141 | |
0155 > p32 EQ 0154 [0x41937458] | |
0156 [31mtab[m FLOAD 0153 tab.meta | |
0157 > [31mtab[m EQ 0156 [31m[NULL][m | |
0158 r11 p32 NEWREF 0153 0141 | |
0159 [31mtab[m HSTORE 0158 0142 | |
0160 nil TBAR 0153 | |
0161 p32 FREF 0153 tab.nomm | |
0162 [35mu8 [m FSTORE 0161 [35m+0 [m | |
.... SNAP #14 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [1mssa.lua:39[m|---- [31m0142[m ---- ] | |
0163 [35mint[m FLOAD 0047 tab.asize | |
0164 > [35mint[m ABC 0163 [35m+2 [m | |
0165 rdx p32 FLOAD 0047 tab.array | |
0166 p32 AREF 0165 [35m+2 [m | |
0167 [10] > [31mtab[m ALOAD 0166 | |
0168 rdx p32 HREF 0014 [32m"assert"[m | |
0169 > p32 EQ 0168 [0x41937458] | |
0170 [35mint[m FLOAD 0017 tab.hmask | |
0171 > [35mint[m EQ 0170 [35m+1 [m | |
0172 rsi p32 FLOAD 0017 tab.node | |
0173 > p32 HREFK 0172 [32m"__index"[m @1 | |
0174 rsi > [31mtab[m HLOAD 0173 | |
0175 [35mint[m FLOAD 0174 tab.hmask | |
0176 > [35mint[m EQ 0175 [35m+63 [m | |
0177 rsi p32 FLOAD 0174 tab.node | |
0178 > p32 HREFK 0177 [32m"assert"[m @3 | |
0179 > [1mfun[m HLOAD 0178 | |
0180 rdx p32 HREF 0014 [32m"type"[m | |
0181 > p32 EQ 0180 [0x41937458] | |
0182 > p32 HREFK 0177 [32m"type"[m @60 | |
0183 > [1mfun[m HLOAD 0182 | |
0184 > [1mfun[m EQ 0183 [1mtype[m | |
0185 > [1mfun[m EQ 0179 [1massert[m | |
0186 [35mint[m FLOAD 0167 tab.asize | |
0187 > [35mint[m ABC 0186 [35m+1 [m | |
0188 rsi p32 FLOAD 0167 tab.array | |
0189 p32 AREF 0188 [35m+1 [m | |
0190 [8] > [32mstr[m ALOAD 0189 | |
.... SNAP #15 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0191 > [32mstr[m NE 0190 [32m"if"[m | |
.... SNAP #16 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0192 > [32mstr[m NE 0190 [32m"let"[m | |
.... SNAP #17 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0193 > [32mstr[m NE 0190 [32m"true"[m | |
.... SNAP #18 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0194 > [32mstr[m NE 0190 [32m"false"[m | |
.... SNAP #19 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0195 > [32mstr[m NE 0190 [32m"match"[m | |
.... SNAP #20 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0196 > [32mstr[m NE 0190 [32m"fail"[m | |
.... SNAP #21 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0197 > p32 UREFC [1mssa.lua:55[m #4 | |
0198 rdx > [31mtab[m ULOAD 0197 | |
0199 rsi p32 HREF 0198 0190 | |
0200 > tru HLOAD 0199 | |
0201 r11 > [31mtab[m TDUP [31m{0x40366b30}[m | |
0202 r8 p32 FLOAD 0201 tab.array | |
0203 p32 AREF 0202 [35m+2 [m | |
0204 [31mtab[m ASTORE 0203 0167 | |
.... SNAP #22 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m [1mssa.lua:49[m|[31m0011[m ---- [31m0112[m [31m0142[m [31m0201[m ] | |
0205 [35mint[m FLOAD 0112 tab.hmask | |
0206 > [35mint[m EQ 0205 [35m+3 [m | |
0207 r9 p32 FLOAD 0112 tab.node | |
0208 > p32 HREFK 0207 [32m"label"[m @3 | |
0209 r9 > [32mstr[m HLOAD 0208 | |
0210 p32 AREF 0202 [35m+3 [m | |
0211 [32mstr[m ASTORE 0210 0209 | |
0212 p32 AREF 0202 [35m+4 [m | |
0213 [32mstr[m ASTORE 0212 0141 | |
.... SNAP #23 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m [1mssa.lua:49[m|[31m0011[m ---- ---- ---- [31m0201[m ---- ] | |
0214 [35mint[m FLOAD 0011 tab.hmask | |
0215 > [35mint[m EQ 0214 [35m+3 [m | |
0216 r10 p32 FLOAD 0011 tab.node | |
0217 > p32 HREFK 0216 [32m"control"[m @1 | |
0218 [31mtab[m FLOAD 0011 tab.meta | |
0219 > [31mtab[m EQ 0218 [31m[NULL][m | |
0220 [31mtab[m HSTORE 0217 0201 | |
0221 nil TBAR 0011 | |
.... SNAP #24 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m ] | |
---- TRACE 8 mcode 2906 | |
0bcbdc27 mov eax, [0x419374b0] | |
0bcbdc2e mov eax, [rax+0x20] | |
0bcbdc31 sub eax, [0x419374b4] | |
0bcbdc38 cmp eax, 0xf0 | |
0bcbdc3e jb 0x0bcb0014 ->1 | |
0bcbdc44 add rsp, -0x50 | |
0bcbdc48 mov dword [0x41937410], 0x8 | |
0bcbdc53 mov edi, [0x419373d8] | |
0bcbdc5a cmp edi, [0x419373dc] | |
0bcbdc61 jb 0x0bcbdc7a | |
0bcbdc63 mov esi, 0x8 | |
0bcbdc68 mov edi, 0x419373b8 | |
0bcbdc6d call 0x00421730 ->lj_gc_step_jit | |
0bcbdc72 test eax, eax | |
0bcbdc74 jnz 0x0bcb0010 ->0 | |
0bcbdc7a mov edi, [0x419374b0] | |
0bcbdc81 mov edx, [0x419374b4] | |
0bcbdc88 cmp dword [rdx-0x4], 0x40372e40 | |
0bcbdc8f jnz 0x0bcb0014 ->1 | |
0bcbdc95 add edx, -0x40 | |
0bcbdc98 mov [0x419374b4], edx | |
0bcbdc9f cmp dword [rdx-0x8], 0x403641d8 | |
0bcbdca6 jnz 0x0bcb0018 ->2 | |
0bcbdcac cmp dword [rdx+0x4], -0x0c | |
0bcbdcb0 jnz 0x0bcb0018 ->2 | |
0bcbdcb6 mov ebp, [rdx] | |
0bcbdcb8 cmp dword [rbp+0x18], +0x03 | |
0bcbdcbc jbe 0x0bcb0018 ->2 | |
0bcbdcc2 mov ebp, [rbp+0x8] | |
0bcbdcc5 cmp dword [rbp+0x1c], -0x0c | |
0bcbdcc9 jnz 0x0bcb0018 ->2 | |
0bcbdccf mov ebp, [rbp+0x18] | |
0bcbdcd2 cmp dword [rdx+0x2c], -0x0c | |
0bcbdcd6 jnz 0x0bcb0018 ->2 | |
0bcbdcdc mov ebx, [rdx+0x28] | |
0bcbdcdf cmp dword [rdx+0x14], -0x0c | |
0bcbdce3 jnz 0x0bcb0018 ->2 | |
0bcbdce9 mov r15d, [rdx+0x10] | |
0bcbdced cmp dword [rdx+0x1c], -0x0c | |
0bcbdcf1 jnz 0x0bcb0018 ->2 | |
0bcbdcf7 mov r14d, [rdx+0x18] | |
0bcbdcfb mov eax, [0x403641e0] | |
0bcbdd02 mov [rsp+0x20], eax | |
0bcbdd06 mov esi, [rax+0x1c] | |
0bcbdd09 and esi, 0xce2b6183 | |
0bcbdd0f lea esi, [rsi+rsi*2] | |
0bcbdd12 shl esi, 0x03 | |
0bcbdd15 add esi, [rax+0x14] | |
0bcbdd18 cmp dword [rsi+0xc], -0x05 | |
0bcbdd1c jnz 0x0bcbdd2b | |
0bcbdd1e cmp dword [rsi+0x8], 0x41939db0 | |
0bcbdd25 jz 0x0bcb0018 ->2 | |
0bcbdd2b mov esi, [rsi+0x10] | |
0bcbdd2e test esi, esi | |
0bcbdd30 jnz 0x0bcbdd18 | |
0bcbdd32 mov esi, [rax+0x10] | |
0bcbdd35 mov [rsp+0x28], esi | |
0bcbdd39 test esi, esi | |
0bcbdd3b jz 0x0bcb0018 ->2 | |
0bcbdd41 cmp dword [rsi+0x1c], +0x01 | |
0bcbdd45 jnz 0x0bcb0018 ->2 | |
0bcbdd4b mov r13d, [rsi+0x14] | |
0bcbdd4f mov rsi, 0xfffffffb419394c8 | |
0bcbdd59 cmp rsi, [r13+0x20] | |
0bcbdd5d jnz 0x0bcb0018 ->2 | |
0bcbdd63 cmp dword [r13+0x1c], -0x0c | |
0bcbdd68 jnz 0x0bcb0018 ->2 | |
0bcbdd6e mov r13d, [r13+0x18] | |
0bcbdd72 cmp dword [r13+0x1c], +0x3f | |
0bcbdd77 jnz 0x0bcb0018 ->2 | |
0bcbdd7d mov esi, [r13+0x14] | |
0bcbdd81 mov rdx, 0xfffffffb41939db0 | |
0bcbdd8b cmp rdx, [rsi+0x50] | |
0bcbdd8f jnz 0x0bcb0018 ->2 | |
0bcbdd95 cmp dword [rsi+0x4c], -0x09 | |
0bcbdd99 jnz 0x0bcb0018 ->2 | |
0bcbdd9f mov edx, [rax+0x1c] | |
0bcbdda2 and edx, 0x798a813c | |
0bcbdda8 lea edx, [rdx+rdx*2] | |
0bcbddab shl edx, 0x03 | |
0bcbddae add edx, [rax+0x14] | |
0bcbddb1 cmp dword [rdx+0xc], -0x05 | |
0bcbddb5 jnz 0x0bcbddc4 | |
0bcbddb7 cmp dword [rdx+0x8], 0x41939fb0 | |
0bcbddbe jz 0x0bcb0018 ->2 | |
0bcbddc4 mov edx, [rdx+0x10] | |
0bcbddc7 test edx, edx | |
0bcbddc9 jnz 0x0bcbddb1 | |
0bcbddcb mov rdx, 0xfffffffb41939fb0 | |
0bcbddd5 cmp rdx, [rsi+0x5a8] | |
0bcbdddc jnz 0x0bcb0018 ->2 | |
0bcbdde2 cmp dword [rsi+0x5a4], -0x09 | |
0bcbdde9 jnz 0x0bcb0018 ->2 | |
0bcbddef cmp dword [rsi+0x5a0], 0x41939f18 | |
0bcbddf9 jnz 0x0bcb0018 ->2 | |
0bcbddff cmp dword [rsi+0x48], 0x41939d88 | |
0bcbde06 jnz 0x0bcb0018 ->2 | |
0bcbde0c cmp dword [rbp+0x18], +0x04 | |
0bcbde10 jbe 0x0bcb0018 ->2 | |
0bcbde16 mov r12d, [rbp+0x8] | |
0bcbde1a cmp dword [r12+0xc], -0x05 | |
0bcbde20 jnz 0x0bcb0018 ->2 | |
0bcbde26 mov r13d, [r12+0x8] | |
0bcbde2b cmp r13d, 0x419398f8 | |
0bcbde32 jz 0x0bcb001c ->3 | |
0bcbde38 cmp r13d, 0x40367440 | |
0bcbde3f jnz 0x0bcb0020 ->4 | |
0bcbde45 cmp dword [r12+0x14], -0x05 | |
0bcbde4b jnz 0x0bcb0024 ->5 | |
0bcbde51 mov ecx, [r12+0x10] | |
0bcbde56 mov [rsp+0x60], ecx | |
0bcbde5a cmp dword [r12+0x1c], -0x0c | |
0bcbde60 jnz 0x0bcb0024 ->5 | |
0bcbde66 mov edx, [r12+0x18] | |
0bcbde6b mov [rsp+0x64], edx | |
0bcbde6f cmp dword [r12+0x24], -0x0c | |
0bcbde75 jnz 0x0bcb0024 ->5 | |
0bcbde7b mov r12d, [r12+0x20] | |
0bcbde80 mov edx, [rax+0x1c] | |
0bcbde83 and edx, 0x7230fd67 | |
0bcbde89 lea edx, [rdx+rdx*2] | |
0bcbde8c shl edx, 0x03 | |
0bcbde8f add edx, [rax+0x14] | |
0bcbde92 cmp dword [rdx+0xc], -0x05 | |
0bcbde96 jnz 0x0bcbdea5 | |
0bcbde98 cmp dword [rdx+0x8], 0x41939ed8 | |
0bcbde9f jz 0x0bcb0024 ->5 | |
0bcbdea5 mov edx, [rdx+0x10] | |
0bcbdea8 test edx, edx | |
0bcbdeaa jnz 0x0bcbde92 | |
0bcbdeac mov rdx, 0xfffffffb41939ed8 | |
0bcbdeb6 cmp rdx, [rsi+0x470] | |
0bcbdebd jnz 0x0bcb0024 ->5 | |
0bcbdec3 cmp dword [rsi+0x46c], -0x0c | |
0bcbdeca jnz 0x0bcb0024 ->5 | |
0bcbded0 mov esi, [rsi+0x468] | |
0bcbded6 cmp dword [rsi+0x1c], +0x07 | |
0bcbdeda jnz 0x0bcb0024 ->5 | |
0bcbdee0 mov esi, [rsi+0x14] | |
0bcbdee3 mov rdx, 0xfffffffb4193b6d0 | |
0bcbdeed cmp rdx, [rsi+0xb0] | |
0bcbdef4 jnz 0x0bcb0024 ->5 | |
0bcbdefa cmp dword [rsi+0xac], -0x09 | |
0bcbdf01 jnz 0x0bcb0024 ->5 | |
0bcbdf07 mov edx, [rsi+0xa8] | |
0bcbdf0d mov [rsp+0x54], edx | |
0bcbdf11 cmp dword [rbx+0x1c], +0x03 | |
0bcbdf15 jnz 0x0bcb0024 ->5 | |
0bcbdf1b mov esi, [rbx+0x14] | |
0bcbdf1e mov rdx, 0xfffffffb40371a28 | |
0bcbdf28 cmp rdx, [rsi+0x38] | |
0bcbdf2c jnz 0x0bcb0024 ->5 | |
0bcbdf32 cmp dword [rsi+0x34], -0x0c | |
0bcbdf36 jnz 0x0bcb0024 ->5 | |
0bcbdf3c mov esi, [rsi+0x30] | |
0bcbdf3f mov [rsp+0x50], esi | |
0bcbdf43 mov esi, 0x419493c8 | |
0bcbdf48 call 0x004223c0 ->lj_tab_dup | |
0bcbdf4d mov [rsp+0x4c], eax | |
0bcbdf51 mov edi, [rsp+0x50] | |
0bcbdf55 mov esi, [rsp+0x64] | |
0bcbdf59 mov edx, [rsp+0x54] | |
0bcbdf5d mov ecx, [rsp+0x60] | |
0bcbdf61 mov eax, [rax+0x14] | |
0bcbdf64 mov dword [rax+0x4], 0xfffffffb | |
0bcbdf6b mov [rax], ecx | |
0bcbdf6d mov dword [rax+0x1c], 0xfffffff4 | |
0bcbdf74 mov [rax+0x18], esi | |
0bcbdf77 cmp edx, 0x4193b6a8 | |
0bcbdf7d jnz 0x0bcb0028 ->6 | |
0bcbdf83 call 0x00423150 ->lj_tab_len | |
0bcbdf88 mov edi, [0x419374b0] | |
0bcbdf8f mov esi, [rsp+0x50] | |
0bcbdf93 add eax, +0x01 | |
0bcbdf96 cmp eax, [rsi+0x18] | |
0bcbdf99 jb 0x0bcb0028 ->6 | |
0bcbdf9f cmp dword [rsi+0x1c], +0x00 | |
0bcbdfa3 jnz 0x0bcb0028 ->6 | |
0bcbdfa9 xorps xmm7, xmm7 | |
0bcbdfac cvtsi2sd xmm7, eax | |
0bcbdfb0 movsd [rsp+0x58], xmm7 | |
0bcbdfb6 lea rdx, [rsp+0x58] | |
0bcbdfbb call 0x00422cf0 ->lj_tab_newkey | |
0bcbdfc0 mov ecx, eax | |
0bcbdfc2 mov edi, [rsp+0x50] | |
0bcbdfc6 mov esi, [rsp+0x28] | |
0bcbdfca mov edx, [rsp+0x4c] | |
0bcbdfce mov eax, [rsp+0x20] | |
0bcbdfd2 mov dword [rcx+0x4], 0xfffffff4 | |
0bcbdfd9 mov [rcx], edx | |
0bcbdfdb test byte [rdi+0x4], 0x4 | |
0bcbdfdf jz 0x0bcbdff6 | |
0bcbdfe1 and byte [rdi+0x4], 0xfb | |
0bcbdfe5 mov edx, [0x419373f4] | |
0bcbdfec mov [0x419373f4], edi | |
0bcbdff3 mov [rdi+0xc], edx | |
0bcbdff6 mov edi, [rax+0x1c] | |
0bcbdff9 and edi, 0xce2b6183 | |
0bcbdfff lea edi, [rdi+rdi*2] | |
0bcbe002 shl edi, 0x03 | |
0bcbe005 add edi, [rax+0x14] | |
0bcbe008 cmp dword [rdi+0xc], -0x05 | |
0bcbe00c jnz 0x0bcbe01b | |
0bcbe00e cmp dword [rdi+0x8], 0x41939db0 | |
0bcbe015 jz 0x0bcb002c ->7 | |
0bcbe01b mov edi, [rdi+0x10] | |
0bcbe01e test edi, edi | |
0bcbe020 jnz 0x0bcbe008 | |
0bcbe022 cmp dword [rsi+0x1c], +0x01 | |
0bcbe026 jnz 0x0bcb002c ->7 | |
0bcbe02c mov edi, [rsi+0x14] | |
0bcbe02f mov rsi, 0xfffffffb419394c8 | |
0bcbe039 cmp rsi, [rdi+0x20] | |
0bcbe03d jnz 0x0bcb002c ->7 | |
0bcbe043 cmp dword [rdi+0x1c], -0x0c | |
0bcbe047 jnz 0x0bcb002c ->7 | |
0bcbe04d mov edi, [rdi+0x18] | |
0bcbe050 cmp dword [rdi+0x1c], +0x3f | |
0bcbe054 jnz 0x0bcb002c ->7 | |
0bcbe05a mov edi, [rdi+0x14] | |
0bcbe05d mov rsi, 0xfffffffb41939db0 | |
0bcbe067 cmp rsi, [rdi+0x50] | |
0bcbe06b jnz 0x0bcb002c ->7 | |
0bcbe071 cmp dword [rdi+0x4c], -0x09 | |
0bcbe075 jnz 0x0bcb002c ->7 | |
0bcbe07b mov esi, [rax+0x1c] | |
0bcbe07e and esi, 0x798a813c | |
0bcbe084 lea esi, [rsi+rsi*2] | |
0bcbe087 shl esi, 0x03 | |
0bcbe08a add esi, [rax+0x14] | |
0bcbe08d cmp dword [rsi+0xc], -0x05 | |
0bcbe091 jnz 0x0bcbe0a0 | |
0bcbe093 cmp dword [rsi+0x8], 0x41939fb0 | |
0bcbe09a jz 0x0bcb002c ->7 | |
0bcbe0a0 mov esi, [rsi+0x10] | |
0bcbe0a3 test esi, esi | |
0bcbe0a5 jnz 0x0bcbe08d | |
0bcbe0a7 mov rsi, 0xfffffffb41939fb0 | |
0bcbe0b1 cmp rsi, [rdi+0x5a8] | |
0bcbe0b8 jnz 0x0bcb002c ->7 | |
0bcbe0be cmp dword [rdi+0x5a4], -0x09 | |
0bcbe0c5 jnz 0x0bcb002c ->7 | |
0bcbe0cb cmp dword [rdi+0x5a0], 0x41939f18 | |
0bcbe0d5 jnz 0x0bcb002c ->7 | |
0bcbe0db cmp dword [rdi+0x48], 0x41939d88 | |
0bcbe0e2 jnz 0x0bcb002c ->7 | |
0bcbe0e8 cmp dword [r12+0x18], +0x01 | |
0bcbe0ee jbe 0x0bcb002c ->7 | |
0bcbe0f4 mov edi, [r12+0x8] | |
0bcbe0f9 cmp dword [rdi+0xc], -0x05 | |
0bcbe0fd jnz 0x0bcb002c ->7 | |
0bcbe103 mov esi, [rdi+0x8] | |
0bcbe106 mov [rsp+0x18], esi | |
0bcbe10a cmp dword [rdi+0x8], 0x419398f8 | |
0bcbe111 jnz 0x0bcb0030 ->8 | |
0bcbe117 mov edi, [0x4194c860] | |
0bcbe11e mov [rsp+0x44], edi | |
0bcbe122 cmp dword [rdi+0x4], 0xfffeffff | |
0bcbe129 jnb 0x0bcb0034 ->9 | |
0bcbe12f movsd xmm7, [rdi] | |
0bcbe133 addsd xmm7, [0x403610a0] | |
0bcbe13c movsd [rsp+0x38], xmm7 | |
0bcbe142 movsd [rdi], xmm7 | |
0bcbe146 mov edi, 0x41937414 | |
0bcbe14b mov esi, [rdi+0x8] | |
0bcbe14e mov [rdi], esi | |
0bcbe150 mov esi, 0x4c | |
0bcbe155 call 0x00421b60 ->lj_buf_putchar | |
0bcbe15a mov edi, eax | |
0bcbe15c lea rsi, [rsp+0x38] | |
0bcbe161 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbe166 mov edi, eax | |
0bcbe168 call 0x00421ff0 ->lj_buf_tostr | |
0bcbe16d mov [rsp+0x48], eax | |
0bcbe171 mov edi, [0x419374b0] | |
0bcbe178 mov esi, 0x40372418 | |
0bcbe17d call 0x004223c0 ->lj_tab_dup | |
0bcbe182 mov [rsp+0xc], eax | |
0bcbe186 mov edi, [0x419374b0] | |
0bcbe18d xor esi, esi | |
0bcbe18f call 0x00422350 ->lj_tab_new1 | |
0bcbe194 mov edx, eax | |
0bcbe196 mov edi, [0x419374b0] | |
0bcbe19d mov esi, [rsp+0xc] | |
0bcbe1a1 mov eax, [rsp+0x48] | |
0bcbe1a5 mov esi, [rsi+0x14] | |
0bcbe1a8 mov dword [rsi+0x34], 0xfffffff4 | |
0bcbe1af mov [rsi+0x30], edx | |
0bcbe1b2 mov dword [rsi+0x4c], 0xfffffffb | |
0bcbe1b9 mov [rsi+0x48], eax | |
0bcbe1bc mov esi, [0x4194c0c0] | |
0bcbe1c3 cmp dword [rsi+0x4], -0x0c | |
0bcbe1c7 jnz 0x0bcb003c ->11 | |
0bcbe1cd mov esi, [rsi] | |
0bcbe1cf mov [rsp+0x2c], esi | |
0bcbe1d3 cmp dword [rsi+0x1c], +0x01 | |
0bcbe1d7 jnz 0x0bcb003c ->11 | |
0bcbe1dd mov esi, [rsi+0x14] | |
0bcbe1e0 mov rdx, 0xfffffffb403716f0 | |
0bcbe1ea cmp rdx, [rsi+0x8] | |
0bcbe1ee jnz 0x0bcb003c ->11 | |
0bcbe1f4 cmp dword [rsi+0x4], -0x0c | |
0bcbe1f8 jnz 0x0bcb003c ->11 | |
0bcbe1fe mov esi, [rsi] | |
0bcbe200 mov [rsp+0x40], esi | |
0bcbe204 mov edx, [rsi+0x1c] | |
0bcbe207 and edx, [rax+0x8] | |
0bcbe20a lea edx, [rdx+rdx*2] | |
0bcbe20d shl edx, 0x03 | |
0bcbe210 add edx, [rsi+0x14] | |
0bcbe213 cmp dword [rdx+0xc], -0x05 | |
0bcbe217 jnz 0x0bcbe222 | |
0bcbe219 cmp eax, [rdx+0x8] | |
0bcbe21c jz 0x0bcb003c ->11 | |
0bcbe222 mov edx, [rdx+0x10] | |
0bcbe225 test edx, edx | |
0bcbe227 jnz 0x0bcbe213 | |
0bcbe229 cmp dword [rsi+0x10], +0x00 | |
0bcbe22d jnz 0x0bcb003c ->11 | |
0bcbe233 mov edx, 0x41937448 | |
0bcbe238 mov dword [rdx+0x4], 0xfffffffb | |
0bcbe23f mov [rdx], eax | |
0bcbe241 call 0x00422cf0 ->lj_tab_newkey | |
0bcbe246 mov edx, eax | |
0bcbe248 mov edi, [rsp+0x44] | |
0bcbe24c mov esi, [rsp+0x40] | |
0bcbe250 mov eax, [rsp+0xc] | |
0bcbe254 movsd xmm7, [rsp+0x38] | |
0bcbe25a mov dword [rdx+0x4], 0xfffffff4 | |
0bcbe261 mov [rdx], eax | |
0bcbe263 test byte [rsi+0x4], 0x4 | |
0bcbe267 jz 0x0bcbe27e | |
0bcbe269 and byte [rsi+0x4], 0xfb | |
0bcbe26d mov edx, [0x419373f4] | |
0bcbe274 mov [0x419373f4], esi | |
0bcbe27b mov [rsi+0xc], edx | |
0bcbe27e mov byte [rsi+0x6], 0x0 | |
0bcbe282 addsd xmm7, [0x403610a0] | |
0bcbe28b movsd [rsp+0x30], xmm7 | |
0bcbe291 movsd [rdi], xmm7 | |
0bcbe295 mov edi, 0x41937414 | |
0bcbe29a mov esi, [rdi+0x8] | |
0bcbe29d mov [rdi], esi | |
0bcbe29f mov esi, 0x4c | |
0bcbe2a4 call 0x00421b60 ->lj_buf_putchar | |
0bcbe2a9 mov edi, eax | |
0bcbe2ab lea rsi, [rsp+0x30] | |
0bcbe2b0 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbe2b5 mov edi, eax | |
0bcbe2b7 call 0x00421ff0 ->lj_buf_tostr | |
0bcbe2bc mov [rsp+0x1c], eax | |
0bcbe2c0 mov edi, [0x419374b0] | |
0bcbe2c7 mov esi, 0x40372418 | |
0bcbe2cc call 0x004223c0 ->lj_tab_dup | |
0bcbe2d1 mov [rsp+0x14], eax | |
0bcbe2d5 mov edi, [0x419374b0] | |
0bcbe2dc xor esi, esi | |
0bcbe2de call 0x00422350 ->lj_tab_new1 | |
0bcbe2e3 mov edx, eax | |
0bcbe2e5 mov r10d, [rsp+0x1c] | |
0bcbe2ea mov edi, [0x419374b0] | |
0bcbe2f1 mov esi, [rsp+0x2c] | |
0bcbe2f5 mov ecx, [rsp+0x14] | |
0bcbe2f9 mov eax, [rcx+0x14] | |
0bcbe2fc mov dword [rax+0x34], 0xfffffff4 | |
0bcbe303 mov [rax+0x30], edx | |
0bcbe306 mov dword [rax+0x4c], 0xfffffffb | |
0bcbe30d mov [rax+0x48], r10d | |
0bcbe311 cmp dword [rsi+0x1c], +0x01 | |
0bcbe315 jnz 0x0bcb0044 ->13 | |
0bcbe31b mov esi, [rsi+0x14] | |
0bcbe31e mov rdx, 0xfffffffb403716f0 | |
0bcbe328 cmp rdx, [rsi+0x8] | |
0bcbe32c jnz 0x0bcb0044 ->13 | |
0bcbe332 cmp dword [rsi+0x4], -0x0c | |
0bcbe336 jnz 0x0bcb0044 ->13 | |
0bcbe33c mov esi, [rsi] | |
0bcbe33e mov [rsp+0x24], esi | |
0bcbe342 mov edx, [rsi+0x1c] | |
0bcbe345 and edx, [r10+0x8] | |
0bcbe349 lea edx, [rdx+rdx*2] | |
0bcbe34c shl edx, 0x03 | |
0bcbe34f add edx, [rsi+0x14] | |
0bcbe352 cmp dword [rdx+0xc], -0x05 | |
0bcbe356 jnz 0x0bcbe362 | |
0bcbe358 cmp r10d, [rdx+0x8] | |
0bcbe35c jz 0x0bcb0044 ->13 | |
0bcbe362 mov edx, [rdx+0x10] | |
0bcbe365 test edx, edx | |
0bcbe367 jnz 0x0bcbe352 | |
0bcbe369 cmp dword [rsi+0x10], +0x00 | |
0bcbe36d jnz 0x0bcb0044 ->13 | |
0bcbe373 mov edx, 0x41937448 | |
0bcbe378 mov dword [rdx+0x4], 0xfffffffb | |
0bcbe37f mov [rdx], r10d | |
0bcbe382 call 0x00422cf0 ->lj_tab_newkey | |
0bcbe387 mov r11d, eax | |
0bcbe38a mov edi, [0x419374b0] | |
0bcbe391 mov esi, [rsp+0x28] | |
0bcbe395 mov edx, [rsp+0x24] | |
0bcbe399 mov ecx, [rsp+0x14] | |
0bcbe39d mov eax, [rsp+0x20] | |
0bcbe3a1 mov dword [r11+0x4], 0xfffffff4 | |
0bcbe3a9 mov [r11], ecx | |
0bcbe3ac test byte [rdx+0x4], 0x4 | |
0bcbe3b0 jz 0x0bcbe3c7 | |
0bcbe3b2 and byte [rdx+0x4], 0xfb | |
0bcbe3b6 mov ecx, [0x419373f4] | |
0bcbe3bd mov [0x419373f4], edx | |
0bcbe3c4 mov [rdx+0xc], ecx | |
0bcbe3c7 mov byte [rdx+0x6], 0x0 | |
0bcbe3cb cmp dword [r12+0x18], +0x02 | |
0bcbe3d1 jbe 0x0bcb0048 ->14 | |
0bcbe3d7 mov edx, [r12+0x8] | |
0bcbe3dc cmp dword [rdx+0x14], -0x0c | |
0bcbe3e0 jnz 0x0bcb0048 ->14 | |
0bcbe3e6 mov ecx, [rdx+0x10] | |
0bcbe3e9 mov [rsp+0x10], ecx | |
0bcbe3ed mov edx, [rax+0x1c] | |
0bcbe3f0 and edx, 0xce2b6183 | |
0bcbe3f6 lea edx, [rdx+rdx*2] | |
0bcbe3f9 shl edx, 0x03 | |
0bcbe3fc add edx, [rax+0x14] | |
0bcbe3ff cmp dword [rdx+0xc], -0x05 | |
0bcbe403 jnz 0x0bcbe412 | |
0bcbe405 cmp dword [rdx+0x8], 0x41939db0 | |
0bcbe40c jz 0x0bcb0048 ->14 | |
0bcbe412 mov edx, [rdx+0x10] | |
0bcbe415 test edx, edx | |
0bcbe417 jnz 0x0bcbe3ff | |
0bcbe419 cmp dword [rsi+0x1c], +0x01 | |
0bcbe41d jnz 0x0bcb0048 ->14 | |
0bcbe423 mov esi, [rsi+0x14] | |
0bcbe426 mov rdx, 0xfffffffb419394c8 | |
0bcbe430 cmp rdx, [rsi+0x20] | |
0bcbe434 jnz 0x0bcb0048 ->14 | |
0bcbe43a cmp dword [rsi+0x1c], -0x0c | |
0bcbe43e jnz 0x0bcb0048 ->14 | |
0bcbe444 mov esi, [rsi+0x18] | |
0bcbe447 cmp dword [rsi+0x1c], +0x3f | |
0bcbe44b jnz 0x0bcb0048 ->14 | |
0bcbe451 mov esi, [rsi+0x14] | |
0bcbe454 mov rdx, 0xfffffffb41939db0 | |
0bcbe45e cmp rdx, [rsi+0x50] | |
0bcbe462 jnz 0x0bcb0048 ->14 | |
0bcbe468 cmp dword [rsi+0x4c], -0x09 | |
0bcbe46c jnz 0x0bcb0048 ->14 | |
0bcbe472 mov edx, [rax+0x1c] | |
0bcbe475 and edx, 0x798a813c | |
0bcbe47b lea edx, [rdx+rdx*2] | |
0bcbe47e shl edx, 0x03 | |
0bcbe481 add edx, [rax+0x14] | |
0bcbe484 cmp dword [rdx+0xc], -0x05 | |
0bcbe488 jnz 0x0bcbe497 | |
0bcbe48a cmp dword [rdx+0x8], 0x41939fb0 | |
0bcbe491 jz 0x0bcb0048 ->14 | |
0bcbe497 mov edx, [rdx+0x10] | |
0bcbe49a test edx, edx | |
0bcbe49c jnz 0x0bcbe484 | |
0bcbe49e mov rdx, 0xfffffffb41939fb0 | |
0bcbe4a8 cmp rdx, [rsi+0x5a8] | |
0bcbe4af jnz 0x0bcb0048 ->14 | |
0bcbe4b5 cmp dword [rsi+0x5a4], -0x09 | |
0bcbe4bc jnz 0x0bcb0048 ->14 | |
0bcbe4c2 cmp dword [rsi+0x5a0], 0x41939f18 | |
0bcbe4cc jnz 0x0bcb0048 ->14 | |
0bcbe4d2 cmp dword [rsi+0x48], 0x41939d88 | |
0bcbe4d9 jnz 0x0bcb0048 ->14 | |
0bcbe4df cmp dword [rcx+0x18], +0x01 | |
0bcbe4e3 jbe 0x0bcb0048 ->14 | |
0bcbe4e9 mov esi, [rcx+0x8] | |
0bcbe4ec cmp dword [rsi+0xc], -0x05 | |
0bcbe4f0 jnz 0x0bcb0048 ->14 | |
0bcbe4f6 mov r9d, [rsi+0x8] | |
0bcbe4fa mov [rsp+0x8], r9d | |
0bcbe4ff cmp r9d, 0x419398f8 | |
0bcbe506 jz 0x0bcb004c ->15 | |
0bcbe50c cmp r9d, 0x40367440 | |
0bcbe513 jz 0x0bcb0050 ->16 | |
0bcbe519 cmp r9d, 0x41939a18 | |
0bcbe520 jz 0x0bcb0054 ->17 | |
0bcbe526 cmp r9d, 0x41939870 | |
0bcbe52d jz 0x0bcb0058 ->18 | |
0bcbe533 cmp r9d, 0x4193ccb0 | |
0bcbe53a jz 0x0bcb005c ->19 | |
0bcbe540 cmp r9d, 0x4193f138 | |
0bcbe547 jz 0x0bcb0060 ->20 | |
0bcbe54d cmp dword [0x41952d34], -0x0c | |
0bcbe555 jnz 0x0bcb0064 ->21 | |
0bcbe55b mov edx, [0x41952d30] | |
0bcbe562 mov esi, [rdx+0x1c] | |
0bcbe565 and esi, [r9+0x8] | |
0bcbe569 lea esi, [rsi+rsi*2] | |
0bcbe56c shl esi, 0x03 | |
0bcbe56f add esi, [rdx+0x14] | |
0bcbe572 cmp dword [rsi+0xc], -0x05 | |
0bcbe576 jnz 0x0bcbe57e | |
0bcbe578 cmp r9d, [rsi+0x8] | |
0bcbe57c jz 0x0bcbe58a | |
0bcbe57e mov esi, [rsi+0x10] | |
0bcbe581 test esi, esi | |
0bcbe583 jnz 0x0bcbe572 | |
0bcbe585 mov esi, 0x41937458 | |
0bcbe58a cmp dword [rsi+0x4], -0x03 | |
0bcbe58e jnz 0x0bcb0064 ->21 | |
0bcbe594 mov esi, 0x40366b30 | |
0bcbe599 call 0x004223c0 ->lj_tab_dup | |
0bcbe59e mov r11d, eax | |
0bcbe5a1 mov r10d, [rsp+0x1c] | |
0bcbe5a6 mov edi, [rsp+0x18] | |
0bcbe5aa mov esi, [rsp+0x14] | |
0bcbe5ae mov ecx, [rsp+0x10] | |
0bcbe5b2 mov eax, [rsp+0xc] | |
0bcbe5b6 mov r8d, [r11+0x8] | |
0bcbe5ba mov dword [r8+0x14], 0xfffffff4 | |
0bcbe5c2 mov [r8+0x10], ecx | |
0bcbe5c6 cmp dword [rax+0x1c], +0x03 | |
0bcbe5ca jnz 0x0bcb0068 ->22 | |
0bcbe5d0 mov r9d, [rax+0x14] | |
0bcbe5d4 mov rdx, 0xfffffffb40371790 | |
0bcbe5de cmp rdx, [r9+0x50] | |
0bcbe5e2 mov edx, [0x419374b4] | |
0bcbe5e9 jnz 0x0bcb0068 ->22 | |
0bcbe5ef cmp dword [r9+0x4c], -0x05 | |
0bcbe5f4 jnz 0x0bcb0068 ->22 | |
0bcbe5fa mov r9d, [r9+0x48] | |
0bcbe5fe mov dword [r8+0x1c], 0xfffffffb | |
0bcbe606 mov [r8+0x18], r9d | |
0bcbe60a mov dword [r8+0x24], 0xfffffffb | |
0bcbe612 mov [r8+0x20], r10d | |
0bcbe616 cmp dword [rbx+0x1c], +0x03 | |
0bcbe61a jnz 0x0bcb006c ->23 | |
0bcbe620 mov r10d, [rbx+0x14] | |
0bcbe624 mov r8, 0xfffffffb40371ef8 | |
0bcbe62e cmp r8, [r10+0x20] | |
0bcbe632 jnz 0x0bcb006c ->23 | |
0bcbe638 cmp dword [rbx+0x10], +0x00 | |
0bcbe63c jnz 0x0bcb006c ->23 | |
0bcbe642 mov dword [r10+0x1c], 0xfffffff4 | |
0bcbe64a mov [r10+0x18], r11d | |
0bcbe64e test byte [rbx+0x4], 0x4 | |
0bcbe652 jz 0x0bcbe66b | |
0bcbe654 and byte [rbx+0x4], 0xfb | |
0bcbe658 mov r11d, [0x419373f4] | |
0bcbe660 mov [0x419373f4], ebx | |
0bcbe667 mov [rbx+0xc], r11d | |
0bcbe66b mov dword [rdx+0xcc], 0xfffffff4 | |
0bcbe675 mov [rdx+0xc8], ecx | |
0bcbe67b mov dword [rdx+0xc4], 0x40372e40 | |
0bcbe685 mov dword [rdx+0xc0], 0x403641d8 | |
0bcbe68f mov dword [rdx+0xbc], 0xfffffff4 | |
0bcbe699 mov [rdx+0xb8], esi | |
0bcbe69f mov dword [rdx+0xb4], 0xfffffff4 | |
0bcbe6a9 mov [rdx+0xb0], eax | |
0bcbe6af mov dword [rdx+0xac], 0xfffffffb | |
0bcbe6b9 mov [rdx+0xa8], edi | |
0bcbe6bf mov dword [rdx+0xa4], 0xfffffff4 | |
0bcbe6c9 mov [rdx+0xa0], r14d | |
0bcbe6d0 mov dword [rdx+0x9c], 0xfffffff4 | |
0bcbe6da mov [rdx+0x98], r15d | |
0bcbe6e1 mov dword [rdx+0x94], 0xfffffff4 | |
0bcbe6eb mov [rdx+0x90], ebx | |
0bcbe6f1 mov dword [rdx+0x8c], 0xfffffff4 | |
0bcbe6fb mov [rdx+0x88], r12d | |
0bcbe702 mov dword [rdx+0x84], 0x40372ebc | |
0bcbe70c mov dword [rdx+0x80], 0x403641d8 | |
0bcbe716 mov dword [rdx+0x7c], 0xfffffff4 | |
0bcbe71d mov [rdx+0x78], r12d | |
0bcbe721 mov dword [rdx+0x64], 0xfffffffb | |
0bcbe728 mov [rdx+0x60], r13d | |
0bcbe72c mov dword [rdx+0x5c], 0xfffffff4 | |
0bcbe733 mov [rdx+0x58], r14d | |
0bcbe737 mov dword [rdx+0x54], 0xfffffff4 | |
0bcbe73e mov [rdx+0x50], r15d | |
0bcbe742 mov dword [rdx+0x4c], 0xfffffff4 | |
0bcbe749 mov [rdx+0x48], ebx | |
0bcbe74c mov dword [rdx+0x44], 0xfffffff4 | |
0bcbe753 mov [rdx+0x40], ebp | |
0bcbe756 mov dword [rdx+0x3c], 0x40372e58 | |
0bcbe75d mov dword [rdx+0x38], 0x403641d8 | |
0bcbe764 mov dword [rdx-0x8], 0x403641d8 | |
0bcbe76b add edx, 0xc8 | |
0bcbe771 mov [0x419374b4], edx | |
0bcbe778 add rsp, +0x60 | |
0bcbe77c jmp 0x0bcbf398 | |
---- TRACE 8 stop -> 4 | |
---- TRACE 8 exit 4 | |
---- TRACE 7 exit 1 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 8 exit 1 | |
---- TRACE 4 exit 6 | |
---- TRACE 8 exit 1 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 9 start 3/0 ssa.lua:53 | |
0001 TDUP 2 1 | |
0002 TGETS 3 1 2 ; "label" | |
0003 TSETB 3 2 2 | |
0004 TSETS 2 0 0 ; "control" | |
0005 RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 JLOOP 1 4 | |
---- TRACE 9 IR | |
.... SNAP #0 [ ---- ---- ---- ] | |
0001 rax > [31mtab[m TDUP [31m{0x403608f0}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 [35mint[m FLOAD 0002 tab.hmask | |
0004 > [35mint[m EQ 0003 [35m+3 [m | |
0005 rbx p32 FLOAD 0002 tab.node | |
0006 > p32 HREFK 0005 [32m"label"[m @3 | |
0007 > nil HLOAD 0006 | |
0008 [31mtab[m FLOAD 0002 tab.meta | |
0009 > [31mtab[m EQ 0008 [31m[NULL][m | |
0010 rbp p32 FLOAD 0001 tab.array | |
0011 p32 AREF 0010 [35m+2 [m | |
0012 nil ASTORE 0011 nil | |
.... SNAP #1 [ ---- ---- ---- [31m0001[m ---- ] | |
0013 rbp > [31mtab[m SLOAD #1 T | |
0014 [35mint[m FLOAD 0013 tab.hmask | |
0015 > [35mint[m EQ 0014 [35m+3 [m | |
0016 rbx p32 FLOAD 0013 tab.node | |
0017 > p32 HREFK 0016 [32m"control"[m @1 | |
0018 [31mtab[m FLOAD 0013 tab.meta | |
0019 > [31mtab[m EQ 0018 [31m[NULL][m | |
0020 [31mtab[m HSTORE 0017 0001 | |
0021 nil TBAR 0013 | |
.... SNAP #2 [ ---- ---- ---- ---- ---- ] | |
0022 > p32 RETF proto: 0x40372da0 [0x40372ef4] | |
.... SNAP #3 [ ---- ---- ] | |
---- TRACE 9 mcode 296 | |
0bcbdaf8 mov eax, [0x419374b0] | |
0bcbdaff mov eax, [rax+0x20] | |
0bcbdb02 sub eax, [0x419374b4] | |
0bcbdb09 cmp eax, +0x38 | |
0bcbdb0c jb 0x0bcb0010 ->0 | |
0bcbdb12 mov dword [0x41937410], 0x9 | |
0bcbdb1d mov edi, [0x419373d8] | |
0bcbdb24 cmp edi, [0x419373dc] | |
0bcbdb2b jb 0x0bcbdb44 | |
0bcbdb2d mov esi, 0x1 | |
0bcbdb32 mov edi, 0x419373b8 | |
0bcbdb37 call 0x00421730 ->lj_gc_step_jit | |
0bcbdb3c test eax, eax | |
0bcbdb3e jnz 0x0bcb0010 ->0 | |
0bcbdb44 mov edi, [0x419374b0] | |
0bcbdb4b mov esi, 0x403608f0 | |
0bcbdb50 call 0x004223c0 ->lj_tab_dup | |
0bcbdb55 mov edx, [0x419374b4] | |
0bcbdb5c cmp dword [rdx+0xc], -0x0c | |
0bcbdb60 jnz 0x0bcb0010 ->0 | |
0bcbdb66 mov ebp, [rdx+0x8] | |
0bcbdb69 cmp dword [rbp+0x1c], +0x03 | |
0bcbdb6d jnz 0x0bcb0010 ->0 | |
0bcbdb73 mov ebx, [rbp+0x14] | |
0bcbdb76 mov rdi, 0xfffffffb40371790 | |
0bcbdb80 cmp rdi, [rbx+0x50] | |
0bcbdb84 jnz 0x0bcb0010 ->0 | |
0bcbdb8a cmp dword [rbx+0x4c], -0x01 | |
0bcbdb8e jnz 0x0bcb0010 ->0 | |
0bcbdb94 cmp dword [rbp+0x10], +0x00 | |
0bcbdb98 jnz 0x0bcb0010 ->0 | |
0bcbdb9e mov ebp, [rax+0x8] | |
0bcbdba1 mov dword [rbp+0x14], 0xffffffff | |
0bcbdba8 cmp dword [rdx+0x4], -0x0c | |
0bcbdbac jnz 0x0bcb0014 ->1 | |
0bcbdbb2 mov ebp, [rdx] | |
0bcbdbb4 cmp dword [rbp+0x1c], +0x03 | |
0bcbdbb8 jnz 0x0bcb0014 ->1 | |
0bcbdbbe mov ebx, [rbp+0x14] | |
0bcbdbc1 mov rdi, 0xfffffffb40371ef8 | |
0bcbdbcb cmp rdi, [rbx+0x20] | |
0bcbdbcf jnz 0x0bcb0014 ->1 | |
0bcbdbd5 cmp dword [rbp+0x10], +0x00 | |
0bcbdbd9 jnz 0x0bcb0014 ->1 | |
0bcbdbdf mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbdbe6 mov [rbx+0x18], eax | |
0bcbdbe9 test byte [rbp+0x4], 0x4 | |
0bcbdbed jz 0x0bcbdc04 | |
0bcbdbef and byte [rbp+0x4], 0xfb | |
0bcbdbf3 mov edi, [0x419373f4] | |
0bcbdbfa mov [0x419373f4], ebp | |
0bcbdc01 mov [rbp+0xc], edi | |
0bcbdc04 cmp dword [rdx-0x4], 0x40372ef4 | |
0bcbdc0b jnz 0x0bcb0018 ->2 | |
0bcbdc11 add edx, -0x30 | |
0bcbdc14 mov [0x419374b4], edx | |
0bcbdc1b jmp 0x0bcbf398 | |
---- TRACE 9 stop -> 4 | |
---- TRACE 4 exit 7 | |
---- TRACE 8 exit 1 | |
---- TRACE 4 exit 3 | |
---- TRACE 2 exit 8 | |
---- TRACE 8 exit 5 |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x416bd414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x40ff53c0}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x416bd458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x416bd410], 0x1 | |
0bcbfe53 mov edi, [0x416bd3d8] | |
0bcbfe5a cmp edi, [0x416bd3dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x416bd3b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x416bd4b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x40fe3fc0] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x416bd414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x416bd4b0] | |
0bcbfee0 mov esi, 0x40ff53c0 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x416bd4b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x416bd4b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb40ff4698 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x416bd448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x416bd4b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x416bd3f4] | |
0bcbffcf mov [0x416bd3f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x40ff6248 | |
0bcbffee mov r14d, 0x416be008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0070 ISNES 4 12 ; "match" | |
0071 JMP 5 => 0077 | |
0077 ISNES 4 14 ; "fail" | |
0078 JMP 5 => 0084 | |
0084 GGET 5 0 ; "assert" | |
0085 UGET 6 4 ; relops | |
0086 TGETV 6 6 4 | |
0087 CALL 5 1 2 | |
0000 . FUNCC ; assert | |
0088 UGET 5 5 ; finish_if | |
0089 MOV 6 1 | |
0090 MOV 7 0 | |
0091 MOV 8 2 | |
0092 MOV 9 3 | |
0093 CALL 5 1 5 | |
0000 . FUNCF 6 ; ssa.lua:49 | |
0001 . TDUP 4 1 | |
0002 . TSETB 1 4 2 | |
0003 . TGETS 5 2 2 ; "label" | |
0004 . TSETB 5 4 3 | |
0005 . TGETS 5 3 2 ; "label" | |
0006 . TSETB 5 4 4 | |
0007 . TSETS 4 0 0 ; "control" | |
0008 . RET0 0 1 | |
0094 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 r15 [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x416bd458] | |
0005 rbx [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 rbx p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 rbx > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 rbx p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x416bd458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 r15 > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 rbx > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m NE 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [32mstr[m NE 0028 [32m"match"[m | |
.... SNAP #6 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0034 > [32mstr[m NE 0028 [32m"fail"[m | |
.... SNAP #7 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0035 r14 > p32 UREFC 0001 #4 | |
0036 r13 > [31mtab[m ULOAD 0035 | |
0037 r14 p32 HREF 0036 0028 | |
0038 > tru HLOAD 0037 | |
0039 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0040 rbp > [31mtab[m SLOAD #2 T | |
0041 r13 > [31mtab[m SLOAD #3 T | |
0042 r14 > [31mtab[m SLOAD #4 T | |
0043 [8] > [31mtab[m TDUP [31m{0x40fe9ad8}[m | |
0044 rax p32 FLOAD 0043 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 [31mtab[m ASTORE 0045 0021 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- [31m0041[m [31m0042[m [31m0043[m ] | |
0047 [35mint[m FLOAD 0041 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+1 [m | |
0049 r15 p32 FLOAD 0041 tab.node | |
0050 > p32 HREFK 0049 [32m"label"[m @1 | |
0051 r15 > [32mstr[m HLOAD 0050 | |
0052 p32 AREF 0044 [35m+3 [m | |
0053 [32mstr[m ASTORE 0052 0051 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- [31m0042[m [31m0043[m ---- ] | |
0054 [35mint[m FLOAD 0042 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 r15 p32 FLOAD 0042 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 r15 > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0044 [35m+4 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- ---- [31m0043[m ---- ] | |
0061 rsi p32 HREF 0040 [32m"control"[m | |
0062 > p32 EQ 0061 [0x416bd458] | |
0063 [31mtab[m FLOAD 0040 tab.meta | |
0064 > [31mtab[m EQ 0063 [31m[NULL][m | |
0065 rbx p32 NEWREF 0040 [32m"control"[m | |
0066 [31mtab[m HSTORE 0065 0043 | |
0067 nil TBAR 0040 | |
.... SNAP #11 [ [1mssa.lua:55[m|] | |
---- TRACE 2 mcode 916 | |
0bcbfaa9 mov dword [0x416bd410], 0x2 | |
0bcbfab4 mov edi, [0x416bd3d8] | |
0bcbfabb cmp edi, [0x416bd3dc] | |
0bcbfac2 jb 0x0bcbfadb | |
0bcbfac4 mov esi, 0x1 | |
0bcbfac9 mov edi, 0x416bd3b8 | |
0bcbface call 0x00421730 ->lj_gc_step_jit | |
0bcbfad3 test eax, eax | |
0bcbfad5 jnz 0x0bcb0010 ->0 | |
0bcbfadb mov edi, [0x416bd4b0] | |
0bcbfae2 mov edx, [0x416bd4b4] | |
0bcbfae9 mov ebp, [rdx-0x8] | |
0bcbfaec mov r15d, [rbp+0x8] | |
0bcbfaf0 mov esi, [r15+0x1c] | |
0bcbfaf4 and esi, 0xce2b6183 | |
0bcbfafa lea esi, [rsi+rsi*2] | |
0bcbfafd shl esi, 0x03 | |
0bcbfb00 add esi, [r15+0x14] | |
0bcbfb04 cmp dword [rsi+0xc], -0x05 | |
0bcbfb08 jnz 0x0bcbfb17 | |
0bcbfb0a cmp dword [rsi+0x8], 0x416bfdb0 | |
0bcbfb11 jz 0x0bcb0010 ->0 | |
0bcbfb17 mov esi, [rsi+0x10] | |
0bcbfb1a test esi, esi | |
0bcbfb1c jnz 0x0bcbfb04 | |
0bcbfb1e mov ebx, [r15+0x10] | |
0bcbfb22 test ebx, ebx | |
0bcbfb24 jz 0x0bcb0010 ->0 | |
0bcbfb2a cmp dword [rbx+0x1c], +0x01 | |
0bcbfb2e jnz 0x0bcb0010 ->0 | |
0bcbfb34 mov ebx, [rbx+0x14] | |
0bcbfb37 mov rsi, 0xfffffffb416bf4c8 | |
0bcbfb41 cmp rsi, [rbx+0x20] | |
0bcbfb45 jnz 0x0bcb0010 ->0 | |
0bcbfb4b cmp dword [rbx+0x1c], -0x0c | |
0bcbfb4f jnz 0x0bcb0010 ->0 | |
0bcbfb55 mov ebx, [rbx+0x18] | |
0bcbfb58 cmp dword [rbx+0x1c], +0x3f | |
0bcbfb5c jnz 0x0bcb0010 ->0 | |
0bcbfb62 mov ebx, [rbx+0x14] | |
0bcbfb65 mov rsi, 0xfffffffb416bfdb0 | |
0bcbfb6f cmp rsi, [rbx+0x50] | |
0bcbfb73 jnz 0x0bcb0010 ->0 | |
0bcbfb79 cmp dword [rbx+0x4c], -0x09 | |
0bcbfb7d jnz 0x0bcb0010 ->0 | |
0bcbfb83 mov esi, [r15+0x1c] | |
0bcbfb87 and esi, 0x798a813c | |
0bcbfb8d lea esi, [rsi+rsi*2] | |
0bcbfb90 shl esi, 0x03 | |
0bcbfb93 add esi, [r15+0x14] | |
0bcbfb97 cmp dword [rsi+0xc], -0x05 | |
0bcbfb9b jnz 0x0bcbfbaa | |
0bcbfb9d cmp dword [rsi+0x8], 0x416bffb0 | |
0bcbfba4 jz 0x0bcb0010 ->0 | |
0bcbfbaa mov esi, [rsi+0x10] | |
0bcbfbad test esi, esi | |
0bcbfbaf jnz 0x0bcbfb97 | |
0bcbfbb1 mov rsi, 0xfffffffb416bffb0 | |
0bcbfbbb cmp rsi, [rbx+0x5a8] | |
0bcbfbc2 jnz 0x0bcb0010 ->0 | |
0bcbfbc8 cmp dword [rbx+0x5a4], -0x09 | |
0bcbfbcf jnz 0x0bcb0010 ->0 | |
0bcbfbd5 cmp dword [rdx+0x4], -0x0c | |
0bcbfbd9 jnz 0x0bcb0010 ->0 | |
0bcbfbdf mov r15d, [rdx] | |
0bcbfbe2 cmp dword [rbx+0x5a0], 0x416bff18 | |
0bcbfbec jnz 0x0bcb0010 ->0 | |
0bcbfbf2 cmp dword [rbx+0x48], 0x416bfd88 | |
0bcbfbf9 jnz 0x0bcb0010 ->0 | |
0bcbfbff cmp dword [r15+0x18], +0x01 | |
0bcbfc04 jbe 0x0bcb0010 ->0 | |
0bcbfc0a mov ebx, [r15+0x8] | |
0bcbfc0e cmp dword [rbx+0xc], -0x05 | |
0bcbfc12 jnz 0x0bcb0010 ->0 | |
0bcbfc18 mov ebx, [rbx+0x8] | |
0bcbfc1b cmp ebx, 0x416bf8f8 | |
0bcbfc21 jz 0x0bcb0014 ->1 | |
0bcbfc27 cmp ebx, 0x40fea3e8 | |
0bcbfc2d jz 0x0bcb0018 ->2 | |
0bcbfc33 cmp ebx, 0x416bfa18 | |
0bcbfc39 jz 0x0bcb001c ->3 | |
0bcbfc3f cmp ebx, 0x416bf870 | |
0bcbfc45 jz 0x0bcb0020 ->4 | |
0bcbfc4b cmp ebx, 0x416c2cb0 | |
0bcbfc51 jz 0x0bcb0024 ->5 | |
0bcbfc57 cmp ebx, 0x416d1ce0 | |
0bcbfc5d jz 0x0bcb0028 ->6 | |
0bcbfc63 mov esi, [rbp+0x24] | |
0bcbfc66 cmp byte [rsi+0x6], 0x1 | |
0bcbfc6a jnz 0x0bcb002c ->7 | |
0bcbfc70 lea r14d, [rsi+0x8] | |
0bcbfc74 cmp dword [r14+0x4], -0x0c | |
0bcbfc79 jnz 0x0bcb002c ->7 | |
0bcbfc7f mov r13d, [r14] | |
0bcbfc82 mov r14d, [r13+0x1c] | |
0bcbfc86 and r14d, [rbx+0x8] | |
0bcbfc8a lea r14d, [r14+r14*2] | |
0bcbfc8e shl r14d, 0x03 | |
0bcbfc92 add r14d, [r13+0x14] | |
0bcbfc96 cmp dword [r14+0xc], -0x05 | |
0bcbfc9b jnz 0x0bcbfca3 | |
0bcbfc9d cmp ebx, [r14+0x8] | |
0bcbfca1 jz 0x0bcbfcb2 | |
0bcbfca3 mov r14d, [r14+0x10] | |
0bcbfca7 test r14d, r14d | |
0bcbfcaa jnz 0x0bcbfc96 | |
0bcbfcac mov r14d, 0x416bd458 | |
0bcbfcb2 cmp dword [r14+0x4], -0x03 | |
0bcbfcb7 jnz 0x0bcb002c ->7 | |
0bcbfcbd cmp ebp, 0x416cd018 | |
0bcbfcc3 jnz 0x0bcb002c ->7 | |
0bcbfcc9 cmp dword [rdx+0xc], -0x0c | |
0bcbfccd jnz 0x0bcb002c ->7 | |
0bcbfcd3 mov ebp, [rdx+0x8] | |
0bcbfcd6 cmp dword [rdx+0x14], -0x0c | |
0bcbfcda jnz 0x0bcb002c ->7 | |
0bcbfce0 mov r13d, [rdx+0x10] | |
0bcbfce4 cmp dword [rdx+0x1c], -0x0c | |
0bcbfce8 jnz 0x0bcb002c ->7 | |
0bcbfcee mov r14d, [rdx+0x18] | |
0bcbfcf2 mov esi, 0x40fe9ad8 | |
0bcbfcf7 call 0x004223c0 ->lj_tab_dup | |
0bcbfcfc mov [rsp+0x8], eax | |
0bcbfd00 mov edi, [0x416bd4b0] | |
0bcbfd07 mov eax, [rax+0x8] | |
0bcbfd0a mov dword [rax+0x14], 0xfffffff4 | |
0bcbfd11 mov [rax+0x10], r15d | |
0bcbfd15 cmp dword [r13+0x1c], +0x01 | |
0bcbfd1a jnz 0x0bcb0030 ->8 | |
0bcbfd20 mov r15d, [r13+0x14] | |
0bcbfd24 mov rsi, 0xfffffffb40ff4738 | |
0bcbfd2e cmp rsi, [r15+0x20] | |
0bcbfd32 jnz 0x0bcb0030 ->8 | |
0bcbfd38 cmp dword [r15+0x1c], -0x05 | |
0bcbfd3d jnz 0x0bcb0030 ->8 | |
0bcbfd43 mov r15d, [r15+0x18] | |
0bcbfd47 mov dword [rax+0x1c], 0xfffffffb | |
0bcbfd4e mov [rax+0x18], r15d | |
0bcbfd52 cmp dword [r14+0x1c], +0x01 | |
0bcbfd57 jnz 0x0bcb0034 ->9 | |
0bcbfd5d mov r15d, [r14+0x14] | |
0bcbfd61 mov rsi, 0xfffffffb40ff4738 | |
0bcbfd6b cmp rsi, [r15+0x20] | |
0bcbfd6f jnz 0x0bcb0034 ->9 | |
0bcbfd75 cmp dword [r15+0x1c], -0x05 | |
0bcbfd7a jnz 0x0bcb0034 ->9 | |
0bcbfd80 mov r15d, [r15+0x18] | |
0bcbfd84 mov dword [rax+0x24], 0xfffffffb | |
0bcbfd8b mov [rax+0x20], r15d | |
0bcbfd8f mov esi, [rbp+0x1c] | |
0bcbfd92 and esi, 0x2a54dc55 | |
0bcbfd98 lea esi, [rsi+rsi*2] | |
0bcbfd9b shl esi, 0x03 | |
0bcbfd9e add esi, [rbp+0x14] | |
0bcbfda1 cmp dword [rsi+0xc], -0x05 | |
0bcbfda5 jnz 0x0bcbfdb4 | |
0bcbfda7 cmp dword [rsi+0x8], 0x40ff4ea0 | |
0bcbfdae jz 0x0bcb0038 ->10 | |
0bcbfdb4 mov esi, [rsi+0x10] | |
0bcbfdb7 test esi, esi | |
0bcbfdb9 jnz 0x0bcbfda1 | |
0bcbfdbb cmp dword [rbp+0x10], +0x00 | |
0bcbfdbf jnz 0x0bcb0038 ->10 | |
0bcbfdc5 mov edx, 0x416bd448 | |
0bcbfdca mov dword [rdx+0x4], 0xfffffffb | |
0bcbfdd1 mov dword [rdx], 0x40ff4ea0 | |
0bcbfdd7 mov esi, ebp | |
0bcbfdd9 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfdde mov ebx, eax | |
0bcbfde0 mov edx, [0x416bd4b4] | |
0bcbfde7 mov eax, [rsp+0x8] | |
0bcbfdeb mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfdf2 mov [rbx], eax | |
0bcbfdf4 test byte [rbp+0x4], 0x4 | |
0bcbfdf8 jz 0x0bcbfe0f | |
0bcbfdfa and byte [rbp+0x4], 0xfb | |
0bcbfdfe mov edi, [0x416bd3f4] | |
0bcbfe05 mov [0x416bd3f4], ebp | |
0bcbfe0c mov [rbp+0xc], edi | |
0bcbfe0f mov eax, [0x416bd4b0] | |
0bcbfe16 mov eax, [rax+0x20] | |
0bcbfe19 sub eax, edx | |
0bcbfe1b cmp eax, +0x68 | |
0bcbfe1e jb 0x0bcb003c ->11 | |
0bcbfe24 mov dword [rdx-0x8], 0x416cd018 | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x40ff5f00 | |
0bcbfe32 mov r14d, 0x416be008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 2 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 3 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 6 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 3 start ssa.lua:52 | |
0001 TDUP 2 1 | |
0002 TGETS 3 1 2 ; "label" | |
0003 TSETB 3 2 2 | |
0004 TSETS 2 0 0 ; "control" | |
0005 RET0 0 1 | |
---- TRACE 3 IR | |
.... SNAP #0 [ ---- ---- ---- ] | |
0001 [8] > [31mtab[m TDUP [31m{0x40fe38f0}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 [35mint[m FLOAD 0002 tab.hmask | |
0004 > [35mint[m EQ 0003 [35m+1 [m | |
0005 rbp p32 FLOAD 0002 tab.node | |
0006 > p32 HREFK 0005 [32m"label"[m @1 | |
0007 rbp > [32mstr[m HLOAD 0006 | |
0008 rax p32 FLOAD 0001 tab.array | |
0009 p32 AREF 0008 [35m+2 [m | |
0010 [32mstr[m ASTORE 0009 0007 | |
.... SNAP #1 [ ---- ---- ---- [31m0001[m ---- ] | |
0011 rbp > [31mtab[m SLOAD #1 T | |
0012 rsi p32 HREF 0011 [32m"control"[m | |
0013 > p32 EQ 0012 [0x416bd458] | |
0014 [31mtab[m FLOAD 0011 tab.meta | |
0015 > [31mtab[m EQ 0014 [31m[NULL][m | |
0016 rbx p32 NEWREF 0011 [32m"control"[m | |
0017 [31mtab[m HSTORE 0016 0001 | |
0018 nil TBAR 0011 | |
.... SNAP #2 [ ---- ] | |
---- TRACE 3 mcode 315 | |
0bcbf967 mov dword [0x416bd410], 0x3 | |
0bcbf972 mov edi, [0x416bd3d8] | |
0bcbf979 cmp edi, [0x416bd3dc] | |
0bcbf980 jb 0x0bcbf999 | |
0bcbf982 mov esi, 0x1 | |
0bcbf987 mov edi, 0x416bd3b8 | |
0bcbf98c call 0x00421730 ->lj_gc_step_jit | |
0bcbf991 test eax, eax | |
0bcbf993 jnz 0x0bcb0010 ->0 | |
0bcbf999 mov edi, [0x416bd4b0] | |
0bcbf9a0 mov esi, 0x40fe38f0 | |
0bcbf9a5 call 0x004223c0 ->lj_tab_dup | |
0bcbf9aa mov [rsp+0x8], eax | |
0bcbf9ae mov edi, [0x416bd4b0] | |
0bcbf9b5 mov edx, [0x416bd4b4] | |
0bcbf9bc cmp dword [rdx+0xc], -0x0c | |
0bcbf9c0 jnz 0x0bcb0010 ->0 | |
0bcbf9c6 mov ebp, [rdx+0x8] | |
0bcbf9c9 cmp dword [rbp+0x1c], +0x01 | |
0bcbf9cd jnz 0x0bcb0010 ->0 | |
0bcbf9d3 mov ebp, [rbp+0x14] | |
0bcbf9d6 mov rsi, 0xfffffffb40ff4738 | |
0bcbf9e0 cmp rsi, [rbp+0x20] | |
0bcbf9e4 jnz 0x0bcb0010 ->0 | |
0bcbf9ea cmp dword [rbp+0x1c], -0x05 | |
0bcbf9ee jnz 0x0bcb0010 ->0 | |
0bcbf9f4 mov ebp, [rbp+0x18] | |
0bcbf9f7 mov eax, [rax+0x8] | |
0bcbf9fa mov dword [rax+0x14], 0xfffffffb | |
0bcbfa01 mov [rax+0x10], ebp | |
0bcbfa04 cmp dword [rdx+0x4], -0x0c | |
0bcbfa08 jnz 0x0bcb0014 ->1 | |
0bcbfa0e mov ebp, [rdx] | |
0bcbfa10 mov esi, [rbp+0x1c] | |
0bcbfa13 and esi, 0x2a54dc55 | |
0bcbfa19 lea esi, [rsi+rsi*2] | |
0bcbfa1c shl esi, 0x03 | |
0bcbfa1f add esi, [rbp+0x14] | |
0bcbfa22 cmp dword [rsi+0xc], -0x05 | |
0bcbfa26 jnz 0x0bcbfa35 | |
0bcbfa28 cmp dword [rsi+0x8], 0x40ff4ea0 | |
0bcbfa2f jz 0x0bcb0014 ->1 | |
0bcbfa35 mov esi, [rsi+0x10] | |
0bcbfa38 test esi, esi | |
0bcbfa3a jnz 0x0bcbfa22 | |
0bcbfa3c cmp dword [rbp+0x10], +0x00 | |
0bcbfa40 jnz 0x0bcb0014 ->1 | |
0bcbfa46 mov edx, 0x416bd448 | |
0bcbfa4b mov dword [rdx+0x4], 0xfffffffb | |
0bcbfa52 mov dword [rdx], 0x40ff4ea0 | |
0bcbfa58 mov esi, ebp | |
0bcbfa5a call 0x00422cf0 ->lj_tab_newkey | |
0bcbfa5f mov ebx, eax | |
0bcbfa61 mov edx, [0x416bd4b4] | |
0bcbfa68 mov eax, [rsp+0x8] | |
0bcbfa6c mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfa73 mov [rbx], eax | |
0bcbfa75 test byte [rbp+0x4], 0x4 | |
0bcbfa79 jz 0x0bcbfa90 | |
0bcbfa7b and byte [rbp+0x4], 0xfb | |
0bcbfa7f mov edi, [0x416bd3f4] | |
0bcbfa86 mov [0x416bd3f4], ebp | |
0bcbfa8d mov [rbp+0xc], edi | |
0bcbfa90 xor eax, eax | |
0bcbfa92 mov ebx, 0x40ff66d4 | |
0bcbfa97 mov r14d, 0x416be008 | |
0bcbfa9d jmp 0x00420177 | |
---- TRACE 3 stop -> return | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 4 start 2/1 ssa.lua:59 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0030 . UGET 7 1 ; compile_bool | |
0031 . TGETB 8 0 4 | |
0032 . MOV 9 6 | |
0033 . MOV 10 2 | |
0034 . MOV 11 3 | |
0035 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0065 . . UGET 5 2 ; finish_goto | |
0066 . . MOV 6 1 | |
0067 . . MOV 7 3 | |
0068 . . CALL 5 1 3 | |
0000 . . . JFUNCF 4 3 ; ssa.lua:52 | |
0001 . . . TDUP 2 1 | |
0002 . . . TGETS 3 1 2 ; "label" | |
0003 . . . TSETB 3 2 2 | |
0004 . . . TSETS 2 0 0 ; "control" | |
0005 . . . RET0 0 1 | |
0069 . . JMP 5 => 0094 | |
0094 . . RET0 0 1 | |
0036 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 3 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 3 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 4 abort ssa.lua:79 -- down-recursion, restarting | |
---- TRACE 4 start ssa.lua:79 | |
0094 RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 3 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0055 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . JFUNCF 4 3 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 4 IR | |
.... SNAP #0 [ ---- ] | |
.... SNAP #1 [ ---- ] | |
0002 > p32 RETF proto: 0x40ff5d48 [0x40ff5e00] | |
.... SNAP #2 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0003 [1mfun[m SLOAD #0 R | |
0004 > [1mfun[m EQ 0003 [1mssa.lua:55[m | |
0005 rbp > [31mtab[m SLOAD #1 T | |
0006 [35mint[m FLOAD 0005 tab.asize | |
0007 > [35mint[m ABC 0006 [35m+4 [m | |
0008 rbp p32 FLOAD 0005 tab.array | |
0009 p32 AREF 0008 [35m+4 [m | |
0010 rbx > [31mtab[m ALOAD 0009 | |
0011 rbp > [31mtab[m SLOAD #7 T | |
0012 r15 > [31mtab[m SLOAD #3 T | |
0013 r14 > [31mtab[m SLOAD #4 T | |
0014 r12 [31mtab[m FLOAD [1mssa.lua:55[m func.env | |
0015 rsi p32 HREF 0014 [32m"assert"[m | |
0016 > p32 EQ 0015 [0x416bd458] | |
0017 r13 [31mtab[m FLOAD 0014 tab.meta | |
0018 > [31mtab[m NE 0017 [31m[NULL][m | |
0019 [35mint[m FLOAD 0017 tab.hmask | |
0020 > [35mint[m EQ 0019 [35m+1 [m | |
0021 rsi p32 FLOAD 0017 tab.node | |
0022 > p32 HREFK 0021 [32m"__index"[m @1 | |
0023 rsi > [31mtab[m HLOAD 0022 | |
0024 [35mint[m FLOAD 0023 tab.hmask | |
0025 > [35mint[m EQ 0024 [35m+63 [m | |
0026 rsi p32 FLOAD 0023 tab.node | |
0027 > p32 HREFK 0026 [32m"assert"[m @3 | |
0028 > [1mfun[m HLOAD 0027 | |
0029 rdx p32 HREF 0014 [32m"type"[m | |
0030 > p32 EQ 0029 [0x416bd458] | |
0031 > p32 HREFK 0026 [32m"type"[m @60 | |
0032 > [1mfun[m HLOAD 0031 | |
0033 > [1mfun[m EQ 0032 [1mtype[m | |
0034 > [1mfun[m EQ 0028 [1massert[m | |
0035 [35mint[m FLOAD 0010 tab.asize | |
0036 > [35mint[m ABC 0035 [35m+1 [m | |
0037 rsi p32 FLOAD 0010 tab.array | |
0038 p32 AREF 0037 [35m+1 [m | |
0039 [10] > [32mstr[m ALOAD 0038 | |
.... SNAP #3 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0040 > [32mstr[m NE 0039 [32m"if"[m | |
.... SNAP #4 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0041 > [32mstr[m NE 0039 [32m"let"[m | |
.... SNAP #5 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0042 > [32mstr[m NE 0039 [32m"true"[m | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0043 > [32mstr[m EQ 0039 [32m"false"[m | |
.... SNAP #7 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0044 [c] > [31mtab[m TDUP [31m{0x40fe38f0}[m | |
0045 [35mint[m FLOAD 0013 tab.hmask | |
0046 > [35mint[m EQ 0045 [35m+1 [m | |
0047 rdx p32 FLOAD 0013 tab.node | |
0048 > p32 HREFK 0047 [32m"label"[m @1 | |
0049 rdx > [32mstr[m HLOAD 0048 | |
0050 rax p32 FLOAD 0044 tab.array | |
0051 p32 AREF 0050 [35m+2 [m | |
0052 [32mstr[m ASTORE 0051 0049 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:52[m|[31m0011[m ---- [31m0044[m ---- ] | |
0053 rdx p32 HREF 0011 [32m"control"[m | |
0054 > p32 EQ 0053 [0x416bd458] | |
0055 [31mtab[m FLOAD 0011 tab.meta | |
0056 > [31mtab[m EQ 0055 [31m[NULL][m | |
0057 rbx p32 NEWREF 0011 [32m"control"[m | |
0058 [31mtab[m HSTORE 0057 0044 | |
0059 nil TBAR 0011 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ] | |
0060 > p32 RETF proto: 0x40ff5d48 [0x40ff5e64] | |
.... SNAP #10 [ ---- ---- ---- ---- ---- ---- ] | |
0061 > p32 RETF proto: 0x40ff5d48 [0x40ff5e00] | |
.... SNAP #11 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0062 [1mfun[m SLOAD #0 R | |
0063 > [1mfun[m EQ 0062 [1mssa.lua:55[m | |
0064 rbp > [31mtab[m SLOAD #1 T | |
0065 [35mint[m FLOAD 0064 tab.asize | |
0066 > [35mint[m ABC 0065 [35m+4 [m | |
0067 rbp p32 FLOAD 0064 tab.array | |
0068 p32 AREF 0067 [35m+4 [m | |
0069 rbx > [31mtab[m ALOAD 0068 | |
0070 rbp > [31mtab[m SLOAD #7 T | |
0071 r15 > [31mtab[m SLOAD #3 T | |
0072 r14 > [31mtab[m SLOAD #4 T | |
0073 rsi p32 HREF 0014 [32m"assert"[m | |
0074 > p32 EQ 0073 [0x416bd458] | |
0075 [35mint[m FLOAD 0017 tab.hmask | |
0076 > [35mint[m EQ 0075 [35m+1 [m | |
0077 r13 p32 FLOAD 0017 tab.node | |
0078 > p32 HREFK 0077 [32m"__index"[m @1 | |
0079 r13 > [31mtab[m HLOAD 0078 | |
0080 [35mint[m FLOAD 0079 tab.hmask | |
0081 > [35mint[m EQ 0080 [35m+63 [m | |
0082 r13 p32 FLOAD 0079 tab.node | |
0083 > p32 HREFK 0082 [32m"assert"[m @3 | |
0084 > [1mfun[m HLOAD 0083 | |
0085 rsi p32 HREF 0014 [32m"type"[m | |
0086 > p32 EQ 0085 [0x416bd458] | |
0087 > p32 HREFK 0082 [32m"type"[m @60 | |
0088 > [1mfun[m HLOAD 0087 | |
0089 > [1mfun[m EQ 0088 [1mtype[m | |
0090 > [1mfun[m EQ 0084 [1massert[m | |
0091 [35mint[m FLOAD 0069 tab.asize | |
0092 > [35mint[m ABC 0091 [35m+1 [m | |
0093 r13 p32 FLOAD 0069 tab.array | |
0094 p32 AREF 0093 [35m+1 [m | |
0095 r13 > [32mstr[m ALOAD 0094 | |
.... SNAP #12 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m ] | |
0096 > [32mstr[m NE 0095 [32m"if"[m | |
.... SNAP #13 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m ] | |
0097 > [32mstr[m NE 0095 [32m"let"[m | |
.... SNAP #14 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m ] | |
0098 > [32mstr[m NE 0095 [32m"true"[m | |
.... SNAP #15 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m ] | |
0099 > [32mstr[m EQ 0095 [32m"false"[m | |
.... SNAP #16 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m ] | |
0100 [8] > [31mtab[m TDUP [31m{0x40fe38f0}[m | |
0101 [35mint[m FLOAD 0072 tab.hmask | |
0102 > [35mint[m EQ 0101 [35m+1 [m | |
0103 r12 p32 FLOAD 0072 tab.node | |
0104 > p32 HREFK 0103 [32m"label"[m @1 | |
0105 r12 > [32mstr[m HLOAD 0104 | |
0106 rax p32 FLOAD 0100 tab.array | |
0107 p32 AREF 0106 [35m+2 [m | |
0108 [32mstr[m ASTORE 0107 0105 | |
.... SNAP #17 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0071[m [31m0072[m [32m0095[m [1mssa.lua:52[m|[31m0070[m ---- [31m0100[m ---- ] | |
0109 rsi p32 HREF 0070 [32m"control"[m | |
0110 > p32 EQ 0109 [0x416bd458] | |
0111 [31mtab[m FLOAD 0070 tab.meta | |
0112 > [31mtab[m EQ 0111 [31m[NULL][m | |
0113 rbx p32 NEWREF 0070 [32m"control"[m | |
0114 [31mtab[m HSTORE 0113 0100 | |
0115 nil TBAR 0070 | |
.... SNAP #18 [ [1mssa.lua:55[m|] | |
---- TRACE 4 mcode 1484 | |
0bcbf398 add rsp, -0x10 | |
0bcbf39c mov dword [0x416bd410], 0x4 | |
0bcbf3a7 mov edi, [0x416bd3d8] | |
0bcbf3ae cmp edi, [0x416bd3dc] | |
0bcbf3b5 jb 0x0bcbf3ce | |
0bcbf3b7 mov esi, 0x2 | |
0bcbf3bc mov edi, 0x416bd3b8 | |
0bcbf3c1 call 0x00421730 ->lj_gc_step_jit | |
0bcbf3c6 test eax, eax | |
0bcbf3c8 jnz 0x0bcb0010 ->0 | |
0bcbf3ce mov edi, [0x416bd4b0] | |
0bcbf3d5 mov edx, [0x416bd4b4] | |
0bcbf3dc cmp dword [rdx-0x4], 0x40ff5e00 | |
0bcbf3e3 jnz 0x0bcb0014 ->1 | |
0bcbf3e9 add edx, -0x40 | |
0bcbf3ec mov [0x416bd4b4], edx | |
0bcbf3f3 cmp dword [rdx-0x8], 0x416cd018 | |
0bcbf3fa jnz 0x0bcb0018 ->2 | |
0bcbf400 cmp dword [rdx+0x4], -0x0c | |
0bcbf404 jnz 0x0bcb0018 ->2 | |
0bcbf40a mov ebp, [rdx] | |
0bcbf40c cmp dword [rbp+0x18], +0x04 | |
0bcbf410 jbe 0x0bcb0018 ->2 | |
0bcbf416 mov ebp, [rbp+0x8] | |
0bcbf419 cmp dword [rbp+0x24], -0x0c | |
0bcbf41d jnz 0x0bcb0018 ->2 | |
0bcbf423 mov ebx, [rbp+0x20] | |
0bcbf426 cmp dword [rdx+0x34], -0x0c | |
0bcbf42a jnz 0x0bcb0018 ->2 | |
0bcbf430 mov ebp, [rdx+0x30] | |
0bcbf433 cmp dword [rdx+0x14], -0x0c | |
0bcbf437 jnz 0x0bcb0018 ->2 | |
0bcbf43d mov r15d, [rdx+0x10] | |
0bcbf441 cmp dword [rdx+0x1c], -0x0c | |
0bcbf445 jnz 0x0bcb0018 ->2 | |
0bcbf44b mov r14d, [rdx+0x18] | |
0bcbf44f mov r12d, [0x416cd020] | |
0bcbf457 mov esi, [r12+0x1c] | |
0bcbf45c and esi, 0xce2b6183 | |
0bcbf462 lea esi, [rsi+rsi*2] | |
0bcbf465 shl esi, 0x03 | |
0bcbf468 add esi, [r12+0x14] | |
0bcbf46d cmp dword [rsi+0xc], -0x05 | |
0bcbf471 jnz 0x0bcbf480 | |
0bcbf473 cmp dword [rsi+0x8], 0x416bfdb0 | |
0bcbf47a jz 0x0bcb0018 ->2 | |
0bcbf480 mov esi, [rsi+0x10] | |
0bcbf483 test esi, esi | |
0bcbf485 jnz 0x0bcbf46d | |
0bcbf487 mov r13d, [r12+0x10] | |
0bcbf48c test r13d, r13d | |
0bcbf48f jz 0x0bcb0018 ->2 | |
0bcbf495 cmp dword [r13+0x1c], +0x01 | |
0bcbf49a jnz 0x0bcb0018 ->2 | |
0bcbf4a0 mov esi, [r13+0x14] | |
0bcbf4a4 mov rdx, 0xfffffffb416bf4c8 | |
0bcbf4ae cmp rdx, [rsi+0x20] | |
0bcbf4b2 jnz 0x0bcb0018 ->2 | |
0bcbf4b8 cmp dword [rsi+0x1c], -0x0c | |
0bcbf4bc jnz 0x0bcb0018 ->2 | |
0bcbf4c2 mov esi, [rsi+0x18] | |
0bcbf4c5 cmp dword [rsi+0x1c], +0x3f | |
0bcbf4c9 jnz 0x0bcb0018 ->2 | |
0bcbf4cf mov esi, [rsi+0x14] | |
0bcbf4d2 mov rdx, 0xfffffffb416bfdb0 | |
0bcbf4dc cmp rdx, [rsi+0x50] | |
0bcbf4e0 jnz 0x0bcb0018 ->2 | |
0bcbf4e6 cmp dword [rsi+0x4c], -0x09 | |
0bcbf4ea jnz 0x0bcb0018 ->2 | |
0bcbf4f0 mov edx, [r12+0x1c] | |
0bcbf4f5 and edx, 0x798a813c | |
0bcbf4fb lea edx, [rdx+rdx*2] | |
0bcbf4fe shl edx, 0x03 | |
0bcbf501 add edx, [r12+0x14] | |
0bcbf506 cmp dword [rdx+0xc], -0x05 | |
0bcbf50a jnz 0x0bcbf519 | |
0bcbf50c cmp dword [rdx+0x8], 0x416bffb0 | |
0bcbf513 jz 0x0bcb0018 ->2 | |
0bcbf519 mov edx, [rdx+0x10] | |
0bcbf51c test edx, edx | |
0bcbf51e jnz 0x0bcbf506 | |
0bcbf520 mov rdx, 0xfffffffb416bffb0 | |
0bcbf52a cmp rdx, [rsi+0x5a8] | |
0bcbf531 jnz 0x0bcb0018 ->2 | |
0bcbf537 cmp dword [rsi+0x5a4], -0x09 | |
0bcbf53e jnz 0x0bcb0018 ->2 | |
0bcbf544 cmp dword [rsi+0x5a0], 0x416bff18 | |
0bcbf54e jnz 0x0bcb0018 ->2 | |
0bcbf554 cmp dword [rsi+0x48], 0x416bfd88 | |
0bcbf55b jnz 0x0bcb0018 ->2 | |
0bcbf561 cmp dword [rbx+0x18], +0x01 | |
0bcbf565 jbe 0x0bcb0018 ->2 | |
0bcbf56b mov esi, [rbx+0x8] | |
0bcbf56e cmp dword [rsi+0xc], -0x05 | |
0bcbf572 jnz 0x0bcb0018 ->2 | |
0bcbf578 mov esi, [rsi+0x8] | |
0bcbf57b mov [rsp+0x10], esi | |
0bcbf57f cmp esi, 0x416bf8f8 | |
0bcbf585 jz 0x0bcb001c ->3 | |
0bcbf58b cmp esi, 0x40fea3e8 | |
0bcbf591 jz 0x0bcb0020 ->4 | |
0bcbf597 cmp esi, 0x416bfa18 | |
0bcbf59d jz 0x0bcb0024 ->5 | |
0bcbf5a3 cmp esi, 0x416bf870 | |
0bcbf5a9 jnz 0x0bcb0028 ->6 | |
0bcbf5af mov esi, 0x40fe38f0 | |
0bcbf5b4 call 0x004223c0 ->lj_tab_dup | |
0bcbf5b9 mov [rsp+0xc], eax | |
0bcbf5bd mov edi, [0x416bd4b0] | |
0bcbf5c4 cmp dword [r14+0x1c], +0x01 | |
0bcbf5c9 jnz 0x0bcb002c ->7 | |
0bcbf5cf mov edx, [r14+0x14] | |
0bcbf5d3 mov rcx, 0xfffffffb40ff4738 | |
0bcbf5dd cmp rcx, [rdx+0x20] | |
0bcbf5e1 jnz 0x0bcb002c ->7 | |
0bcbf5e7 cmp dword [rdx+0x1c], -0x05 | |
0bcbf5eb jnz 0x0bcb002c ->7 | |
0bcbf5f1 mov edx, [rdx+0x18] | |
0bcbf5f4 mov eax, [rax+0x8] | |
0bcbf5f7 mov dword [rax+0x14], 0xfffffffb | |
0bcbf5fe mov [rax+0x10], edx | |
0bcbf601 mov edx, [rbp+0x1c] | |
0bcbf604 and edx, 0x2a54dc55 | |
0bcbf60a lea edx, [rdx+rdx*2] | |
0bcbf60d shl edx, 0x03 | |
0bcbf610 add edx, [rbp+0x14] | |
0bcbf613 cmp dword [rdx+0xc], -0x05 | |
0bcbf617 jnz 0x0bcbf626 | |
0bcbf619 cmp dword [rdx+0x8], 0x40ff4ea0 | |
0bcbf620 jz 0x0bcb0030 ->8 | |
0bcbf626 mov edx, [rdx+0x10] | |
0bcbf629 test edx, edx | |
0bcbf62b jnz 0x0bcbf613 | |
0bcbf62d cmp dword [rbp+0x10], +0x00 | |
0bcbf631 jnz 0x0bcb0030 ->8 | |
0bcbf637 mov edx, 0x416bd448 | |
0bcbf63c mov dword [rdx+0x4], 0xfffffffb | |
0bcbf643 mov dword [rdx], 0x40ff4ea0 | |
0bcbf649 mov esi, ebp | |
0bcbf64b call 0x00422cf0 ->lj_tab_newkey | |
0bcbf650 mov ebx, eax | |
0bcbf652 mov edi, [0x416bd4b0] | |
0bcbf659 mov edx, [0x416bd4b4] | |
0bcbf660 mov eax, [rsp+0xc] | |
0bcbf664 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbf66b mov [rbx], eax | |
0bcbf66d test byte [rbp+0x4], 0x4 | |
0bcbf671 jz 0x0bcbf688 | |
0bcbf673 and byte [rbp+0x4], 0xfb | |
0bcbf677 mov esi, [0x416bd3f4] | |
0bcbf67e mov [0x416bd3f4], ebp | |
0bcbf685 mov [rbp+0xc], esi | |
0bcbf688 cmp dword [rdx-0x4], 0x40ff5e64 | |
0bcbf68f jnz 0x0bcb0034 ->9 | |
0bcbf695 add edx, -0x48 | |
0bcbf698 mov [0x416bd4b4], edx | |
0bcbf69f cmp dword [rdx-0x4], 0x40ff5e00 | |
0bcbf6a6 jnz 0x0bcb0038 ->10 | |
0bcbf6ac add edx, -0x40 | |
0bcbf6af mov [0x416bd4b4], edx | |
0bcbf6b6 cmp dword [rdx-0x8], 0x416cd018 | |
0bcbf6bd jnz 0x0bcb003c ->11 | |
0bcbf6c3 cmp dword [rdx+0x4], -0x0c | |
0bcbf6c7 jnz 0x0bcb003c ->11 | |
0bcbf6cd mov ebp, [rdx] | |
0bcbf6cf cmp dword [rbp+0x18], +0x04 | |
0bcbf6d3 jbe 0x0bcb003c ->11 | |
0bcbf6d9 mov ebp, [rbp+0x8] | |
0bcbf6dc cmp dword [rbp+0x24], -0x0c | |
0bcbf6e0 jnz 0x0bcb003c ->11 | |
0bcbf6e6 mov ebx, [rbp+0x20] | |
0bcbf6e9 cmp dword [rdx+0x34], -0x0c | |
0bcbf6ed jnz 0x0bcb003c ->11 | |
0bcbf6f3 mov ebp, [rdx+0x30] | |
0bcbf6f6 cmp dword [rdx+0x14], -0x0c | |
0bcbf6fa jnz 0x0bcb003c ->11 | |
0bcbf700 mov r15d, [rdx+0x10] | |
0bcbf704 cmp dword [rdx+0x1c], -0x0c | |
0bcbf708 jnz 0x0bcb003c ->11 | |
0bcbf70e mov r14d, [rdx+0x18] | |
0bcbf712 mov esi, [r12+0x1c] | |
0bcbf717 and esi, 0xce2b6183 | |
0bcbf71d lea esi, [rsi+rsi*2] | |
0bcbf720 shl esi, 0x03 | |
0bcbf723 add esi, [r12+0x14] | |
0bcbf728 cmp dword [rsi+0xc], -0x05 | |
0bcbf72c jnz 0x0bcbf73b | |
0bcbf72e cmp dword [rsi+0x8], 0x416bfdb0 | |
0bcbf735 jz 0x0bcb003c ->11 | |
0bcbf73b mov esi, [rsi+0x10] | |
0bcbf73e test esi, esi | |
0bcbf740 jnz 0x0bcbf728 | |
0bcbf742 cmp dword [r13+0x1c], +0x01 | |
0bcbf747 jnz 0x0bcb003c ->11 | |
0bcbf74d mov r13d, [r13+0x14] | |
0bcbf751 mov rsi, 0xfffffffb416bf4c8 | |
0bcbf75b cmp rsi, [r13+0x20] | |
0bcbf75f jnz 0x0bcb003c ->11 | |
0bcbf765 cmp dword [r13+0x1c], -0x0c | |
0bcbf76a jnz 0x0bcb003c ->11 | |
0bcbf770 mov r13d, [r13+0x18] | |
0bcbf774 cmp dword [r13+0x1c], +0x3f | |
0bcbf779 jnz 0x0bcb003c ->11 | |
0bcbf77f mov r13d, [r13+0x14] | |
0bcbf783 mov rsi, 0xfffffffb416bfdb0 | |
0bcbf78d cmp rsi, [r13+0x50] | |
0bcbf791 jnz 0x0bcb003c ->11 | |
0bcbf797 cmp dword [r13+0x4c], -0x09 | |
0bcbf79c jnz 0x0bcb003c ->11 | |
0bcbf7a2 mov esi, [r12+0x1c] | |
0bcbf7a7 and esi, 0x798a813c | |
0bcbf7ad lea esi, [rsi+rsi*2] | |
0bcbf7b0 shl esi, 0x03 | |
0bcbf7b3 add esi, [r12+0x14] | |
0bcbf7b8 cmp dword [rsi+0xc], -0x05 | |
0bcbf7bc jnz 0x0bcbf7cb | |
0bcbf7be cmp dword [rsi+0x8], 0x416bffb0 | |
0bcbf7c5 jz 0x0bcb003c ->11 | |
0bcbf7cb mov esi, [rsi+0x10] | |
0bcbf7ce test esi, esi | |
0bcbf7d0 jnz 0x0bcbf7b8 | |
0bcbf7d2 mov rsi, 0xfffffffb416bffb0 | |
0bcbf7dc cmp rsi, [r13+0x5a8] | |
0bcbf7e3 jnz 0x0bcb003c ->11 | |
0bcbf7e9 cmp dword [r13+0x5a4], -0x09 | |
0bcbf7f1 jnz 0x0bcb003c ->11 | |
0bcbf7f7 cmp dword [r13+0x5a0], 0x416bff18 | |
0bcbf802 jnz 0x0bcb003c ->11 | |
0bcbf808 cmp dword [r13+0x48], 0x416bfd88 | |
0bcbf810 jnz 0x0bcb003c ->11 | |
0bcbf816 cmp dword [rbx+0x18], +0x01 | |
0bcbf81a jbe 0x0bcb003c ->11 | |
0bcbf820 mov r13d, [rbx+0x8] | |
0bcbf824 cmp dword [r13+0xc], -0x05 | |
0bcbf829 jnz 0x0bcb003c ->11 | |
0bcbf82f mov r13d, [r13+0x8] | |
0bcbf833 cmp r13d, 0x416bf8f8 | |
0bcbf83a jz 0x0bcb0040 ->12 | |
0bcbf840 cmp r13d, 0x40fea3e8 | |
0bcbf847 jz 0x0bcb0044 ->13 | |
0bcbf84d cmp r13d, 0x416bfa18 | |
0bcbf854 jz 0x0bcb0048 ->14 | |
0bcbf85a cmp r13d, 0x416bf870 | |
0bcbf861 jnz 0x0bcb004c ->15 | |
0bcbf867 mov esi, 0x40fe38f0 | |
0bcbf86c call 0x004223c0 ->lj_tab_dup | |
0bcbf871 mov [rsp+0x8], eax | |
0bcbf875 mov edi, [0x416bd4b0] | |
0bcbf87c cmp dword [r14+0x1c], +0x01 | |
0bcbf881 jnz 0x0bcb0050 ->16 | |
0bcbf887 mov r12d, [r14+0x14] | |
0bcbf88b mov rsi, 0xfffffffb40ff4738 | |
0bcbf895 cmp rsi, [r12+0x20] | |
0bcbf89a jnz 0x0bcb0050 ->16 | |
0bcbf8a0 cmp dword [r12+0x1c], -0x05 | |
0bcbf8a6 jnz 0x0bcb0050 ->16 | |
0bcbf8ac mov r12d, [r12+0x18] | |
0bcbf8b1 mov eax, [rax+0x8] | |
0bcbf8b4 mov dword [rax+0x14], 0xfffffffb | |
0bcbf8bb mov [rax+0x10], r12d | |
0bcbf8bf mov esi, [rbp+0x1c] | |
0bcbf8c2 and esi, 0x2a54dc55 | |
0bcbf8c8 lea esi, [rsi+rsi*2] | |
0bcbf8cb shl esi, 0x03 | |
0bcbf8ce add esi, [rbp+0x14] | |
0bcbf8d1 cmp dword [rsi+0xc], -0x05 | |
0bcbf8d5 jnz 0x0bcbf8e4 | |
0bcbf8d7 cmp dword [rsi+0x8], 0x40ff4ea0 | |
0bcbf8de jz 0x0bcb0054 ->17 | |
0bcbf8e4 mov esi, [rsi+0x10] | |
0bcbf8e7 test esi, esi | |
0bcbf8e9 jnz 0x0bcbf8d1 | |
0bcbf8eb cmp dword [rbp+0x10], +0x00 | |
0bcbf8ef jnz 0x0bcb0054 ->17 | |
0bcbf8f5 mov edx, 0x416bd448 | |
0bcbf8fa mov dword [rdx+0x4], 0xfffffffb | |
0bcbf901 mov dword [rdx], 0x40ff4ea0 | |
0bcbf907 mov esi, ebp | |
0bcbf909 call 0x00422cf0 ->lj_tab_newkey | |
0bcbf90e mov ebx, eax | |
0bcbf910 mov edx, [0x416bd4b4] | |
0bcbf917 mov eax, [rsp+0x8] | |
0bcbf91b mov dword [rbx+0x4], 0xfffffff4 | |
0bcbf922 mov [rbx], eax | |
0bcbf924 test byte [rbp+0x4], 0x4 | |
0bcbf928 jz 0x0bcbf93f | |
0bcbf92a and byte [rbp+0x4], 0xfb | |
0bcbf92e mov edi, [0x416bd3f4] | |
0bcbf935 mov [0x416bd3f4], ebp | |
0bcbf93c mov [rbp+0xc], edi | |
0bcbf93f mov eax, [0x416bd4b0] | |
0bcbf946 mov eax, [rax+0x20] | |
0bcbf949 sub eax, edx | |
0bcbf94b cmp eax, +0x68 | |
0bcbf94e jb 0x0bcb0058 ->18 | |
0bcbf954 mov dword [rdx-0x8], 0x416cd018 | |
0bcbf95b add rsp, +0x10 | |
0bcbf95f jmp 0x0bcbf398 | |
---- TRACE 4 stop -> down-recursion | |
---- TRACE 4 exit 1 | |
---- TRACE 2 exit 5 | |
---- TRACE 5 start ssa.lua:46 | |
0001 TDUP 2 1 | |
0002 TSETB 1 2 2 | |
0003 TSETS 2 0 0 ; "control" | |
0004 RET0 0 1 | |
---- TRACE 5 IR | |
.... SNAP #0 [ ---- ---- ---- ] | |
0001 [8] > [31mtab[m TDUP [31m{0x40ff5470}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 rax p32 FLOAD 0001 tab.array | |
0004 p32 AREF 0003 [35m+2 [m | |
0005 [31mtab[m ASTORE 0004 0002 | |
.... SNAP #1 [ ---- ---- ---- [31m0001[m ] | |
0006 rbp > [31mtab[m SLOAD #1 T | |
0007 rsi p32 HREF 0006 [32m"control"[m | |
0008 > p32 EQ 0007 [0x416bd458] | |
0009 [31mtab[m FLOAD 0006 tab.meta | |
0010 > [31mtab[m EQ 0009 [31m[NULL][m | |
0011 rbx p32 NEWREF 0006 [32m"control"[m | |
0012 [31mtab[m HSTORE 0011 0001 | |
0013 nil TBAR 0006 | |
.... SNAP #2 [ ---- ] | |
---- TRACE 5 mcode 269 | |
0bcbf284 mov dword [0x416bd410], 0x5 | |
0bcbf28f mov edi, [0x416bd3d8] | |
0bcbf296 cmp edi, [0x416bd3dc] | |
0bcbf29d jb 0x0bcbf2b6 | |
0bcbf29f mov esi, 0x1 | |
0bcbf2a4 mov edi, 0x416bd3b8 | |
0bcbf2a9 call 0x00421730 ->lj_gc_step_jit | |
0bcbf2ae test eax, eax | |
0bcbf2b0 jnz 0x0bcb0010 ->0 | |
0bcbf2b6 mov edi, [0x416bd4b0] | |
0bcbf2bd mov esi, 0x40ff5470 | |
0bcbf2c2 call 0x004223c0 ->lj_tab_dup | |
0bcbf2c7 mov [rsp+0x8], eax | |
0bcbf2cb mov edi, [0x416bd4b0] | |
0bcbf2d2 mov edx, [0x416bd4b4] | |
0bcbf2d9 cmp dword [rdx+0xc], -0x0c | |
0bcbf2dd jnz 0x0bcb0010 ->0 | |
0bcbf2e3 mov ebp, [rdx+0x8] | |
0bcbf2e6 mov eax, [rax+0x8] | |
0bcbf2e9 mov dword [rax+0x14], 0xfffffff4 | |
0bcbf2f0 mov [rax+0x10], ebp | |
0bcbf2f3 cmp dword [rdx+0x4], -0x0c | |
0bcbf2f7 jnz 0x0bcb0014 ->1 | |
0bcbf2fd mov ebp, [rdx] | |
0bcbf2ff mov esi, [rbp+0x1c] | |
0bcbf302 and esi, 0x2a54dc55 | |
0bcbf308 lea esi, [rsi+rsi*2] | |
0bcbf30b shl esi, 0x03 | |
0bcbf30e add esi, [rbp+0x14] | |
0bcbf311 cmp dword [rsi+0xc], -0x05 | |
0bcbf315 jnz 0x0bcbf324 | |
0bcbf317 cmp dword [rsi+0x8], 0x40ff4ea0 | |
0bcbf31e jz 0x0bcb0014 ->1 | |
0bcbf324 mov esi, [rsi+0x10] | |
0bcbf327 test esi, esi | |
0bcbf329 jnz 0x0bcbf311 | |
0bcbf32b cmp dword [rbp+0x10], +0x00 | |
0bcbf32f jnz 0x0bcb0014 ->1 | |
0bcbf335 mov edx, 0x416bd448 | |
0bcbf33a mov dword [rdx+0x4], 0xfffffffb | |
0bcbf341 mov dword [rdx], 0x40ff4ea0 | |
0bcbf347 mov esi, ebp | |
0bcbf349 call 0x00422cf0 ->lj_tab_newkey | |
0bcbf34e mov ebx, eax | |
0bcbf350 mov edx, [0x416bd4b4] | |
0bcbf357 mov eax, [rsp+0x8] | |
0bcbf35b mov dword [rbx+0x4], 0xfffffff4 | |
0bcbf362 mov [rbx], eax | |
0bcbf364 test byte [rbp+0x4], 0x4 | |
0bcbf368 jz 0x0bcbf37f | |
0bcbf36a and byte [rbp+0x4], 0xfb | |
0bcbf36e mov edi, [0x416bd3f4] | |
0bcbf375 mov [0x416bd3f4], ebp | |
0bcbf37c mov [rbp+0xc], edi | |
0bcbf37f xor eax, eax | |
0bcbf381 mov ebx, 0x40ff5800 | |
0bcbf386 mov r14d, 0x416be008 | |
0bcbf38c jmp 0x00420177 | |
---- TRACE 5 stop -> return | |
---- TRACE 4 exit 3 | |
---- TRACE 2 exit 1 | |
---- TRACE 6 start 2/1 ssa.lua:59 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . JLOOP 1 4 | |
---- TRACE 6 IR | |
0001 rbx [32mstr[m SLOAD #5 PI | |
.... SNAP #0 [ ---- ---- ---- ---- ---- [32m0001[m ] | |
0002 [1mfun[m SLOAD #0 R | |
0003 > [1mfun[m EQ 0002 [1mssa.lua:55[m | |
0004 [44] > p32 UREFO [1mssa.lua:39[m #0 | |
0005 xmm7 > [34mnum[m ULOAD 0004 | |
0006 [58] [34mnum[m ADD 0005 [34m+1 [m | |
0007 [34mnum[m USTORE 0004 0006 | |
.... SNAP #1 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [1mssa.lua:39[m|---- ] | |
0008 [32mstr[m TOSTR 0006 NUM | |
0009 rdi p32 BUFHDR [0x416bd414] RESET | |
0010 rdi p32 BUFPUT 0009 [32m"L" [m | |
0011 rdi p32 BUFPUT 0010 0008 | |
0012 [60] [32mstr[m BUFSTR 0011 0009 | |
0013 [8] > [31mtab[m TDUP [31m{0x40ff53c0}[m | |
0014 r15 > [31mtab[m TNEW #0 #0 | |
0015 rbp p32 FLOAD 0013 tab.node | |
0016 p32 HREFK 0015 [32m"bindings"[m @2 | |
0017 [31mtab[m HSTORE 0016 0014 | |
0018 p32 HREFK 0015 [32m"label"[m @3 | |
0019 [32mstr[m HSTORE 0018 0012 | |
.... SNAP #2 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [1mssa.lua:39[m|[32m0012[m [31m0013[m ---- ] | |
0020 rbp > p32 UREFO [1mssa.lua:39[m #1 | |
0021 [2c] > [31mtab[m ULOAD 0020 | |
0022 [35mint[m FLOAD 0021 tab.hmask | |
0023 > [35mint[m EQ 0022 [35m+1 [m | |
0024 rbp p32 FLOAD 0021 tab.node | |
0025 > p32 HREFK 0024 [32m"blocks"[m @0 | |
0026 rbp > [31mtab[m HLOAD 0025 | |
0027 rsi p32 HREF 0026 0012 | |
0028 > p32 EQ 0027 [0x416bd458] | |
0029 [31mtab[m FLOAD 0026 tab.meta | |
0030 > [31mtab[m EQ 0029 [31m[NULL][m | |
0031 r15 p32 NEWREF 0026 0012 | |
0032 [31mtab[m HSTORE 0031 0013 | |
0033 nil TBAR 0026 | |
0034 p32 FREF 0026 tab.nomm | |
0035 [35mu8 [m FSTORE 0034 [35m+0 [m | |
0036 [50] [34mnum[m ADD 0006 [34m+1 [m | |
0037 [34mnum[m USTORE 0004 0036 | |
.... SNAP #3 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [1mssa.lua:39[m|---- ] | |
0038 [32mstr[m TOSTR 0036 NUM | |
0039 rdi p32 BUFHDR [0x416bd414] RESET | |
0040 rdi p32 BUFPUT 0039 [32m"L" [m | |
0041 rdi p32 BUFPUT 0040 0038 | |
0042 [4c] [32mstr[m BUFSTR 0041 0039 | |
0043 rbp > [31mtab[m TDUP [31m{0x40ff53c0}[m | |
0044 r14 > [31mtab[m TNEW #0 #0 | |
0045 r15 p32 FLOAD 0043 tab.node | |
0046 p32 HREFK 0045 [32m"bindings"[m @2 | |
0047 [31mtab[m HSTORE 0046 0044 | |
0048 p32 HREFK 0045 [32m"label"[m @3 | |
0049 [32mstr[m HSTORE 0048 0042 | |
.... SNAP #4 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [1mssa.lua:39[m|[32m0042[m [31m0043[m ---- ] | |
0050 [35mint[m FLOAD 0021 tab.hmask | |
0051 > [35mint[m EQ 0050 [35m+1 [m | |
0052 r15 p32 FLOAD 0021 tab.node | |
0053 > p32 HREFK 0052 [32m"blocks"[m @0 | |
0054 r15 > [31mtab[m HLOAD 0053 | |
0055 rsi p32 HREF 0054 0042 | |
0056 > p32 EQ 0055 [0x416bd458] | |
0057 [31mtab[m FLOAD 0054 tab.meta | |
0058 > [31mtab[m EQ 0057 [31m[NULL][m | |
0059 rax p32 NEWREF 0054 0042 | |
0060 [31mtab[m HSTORE 0059 0043 | |
0061 nil TBAR 0054 | |
0062 p32 FREF 0054 tab.nomm | |
0063 [35mu8 [m FSTORE 0062 [35m+0 [m | |
.... SNAP #5 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [1mssa.lua:39[m|---- [31m0043[m ---- ] | |
0064 r15 > [31mtab[m SLOAD #1 T | |
0065 [35mint[m FLOAD 0064 tab.asize | |
0066 > [35mint[m ABC 0065 [35m+2 [m | |
0067 r15 p32 FLOAD 0064 tab.array | |
0068 p32 AREF 0067 [35m+2 [m | |
0069 r15 > [31mtab[m ALOAD 0068 | |
0070 r14 > [31mtab[m SLOAD #2 T | |
0071 [20] [31mtab[m FLOAD [1mssa.lua:55[m func.env | |
0072 rsi p32 HREF 0071 [32m"assert"[m | |
0073 > p32 EQ 0072 [0x416bd458] | |
0074 [28] [31mtab[m FLOAD 0071 tab.meta | |
0075 > [31mtab[m NE 0074 [31m[NULL][m | |
0076 [35mint[m FLOAD 0074 tab.hmask | |
0077 > [35mint[m EQ 0076 [35m+1 [m | |
0078 r13 p32 FLOAD 0074 tab.node | |
0079 > p32 HREFK 0078 [32m"__index"[m @1 | |
0080 r13 > [31mtab[m HLOAD 0079 | |
0081 [35mint[m FLOAD 0080 tab.hmask | |
0082 > [35mint[m EQ 0081 [35m+63 [m | |
0083 r13 p32 FLOAD 0080 tab.node | |
0084 > p32 HREFK 0083 [32m"assert"[m @3 | |
0085 > [1mfun[m HLOAD 0084 | |
0086 rsi p32 HREF 0071 [32m"type"[m | |
0087 > p32 EQ 0086 [0x416bd458] | |
0088 > p32 HREFK 0083 [32m"type"[m @60 | |
0089 > [1mfun[m HLOAD 0088 | |
0090 > [1mfun[m EQ 0089 [1mtype[m | |
0091 > [1mfun[m EQ 0085 [1massert[m | |
0092 [35mint[m FLOAD 0069 tab.asize | |
0093 > [35mint[m ABC 0092 [35m+1 [m | |
0094 r13 p32 FLOAD 0069 tab.array | |
0095 p32 AREF 0094 [35m+1 [m | |
0096 r13 > [32mstr[m ALOAD 0095 | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m ] | |
0097 > [32mstr[m EQ 0096 [32m"if"[m | |
0098 [38] [34mnum[m ADD 0036 [34m+1 [m | |
0099 [34mnum[m USTORE 0004 0098 | |
.... SNAP #7 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [1mssa.lua:39[m|---- ] | |
0100 [32mstr[m TOSTR 0098 NUM | |
0101 rdi p32 BUFHDR [0x416bd414] RESET | |
0102 rdi p32 BUFPUT 0101 [32m"L" [m | |
0103 rdi p32 BUFPUT 0102 0100 | |
0104 [48] [32mstr[m BUFSTR 0103 0101 | |
0105 r12 > [31mtab[m TDUP [31m{0x40ff53c0}[m | |
0106 rcx > [31mtab[m TNEW #0 #0 | |
0107 rdx p32 FLOAD 0105 tab.node | |
0108 p32 HREFK 0107 [32m"bindings"[m @2 | |
0109 [31mtab[m HSTORE 0108 0106 | |
0110 p32 HREFK 0107 [32m"label"[m @3 | |
0111 [32mstr[m HSTORE 0110 0104 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [1mssa.lua:39[m|[32m0104[m [31m0105[m ---- ] | |
0112 [35mint[m FLOAD 0021 tab.hmask | |
0113 > [35mint[m EQ 0112 [35m+1 [m | |
0114 rsi p32 FLOAD 0021 tab.node | |
0115 > p32 HREFK 0114 [32m"blocks"[m @0 | |
0116 [40] > [31mtab[m HLOAD 0115 | |
0117 rdx p32 HREF 0116 0104 | |
0118 > p32 EQ 0117 [0x416bd458] | |
0119 [31mtab[m FLOAD 0116 tab.meta | |
0120 > [31mtab[m EQ 0119 [31m[NULL][m | |
0121 rax p32 NEWREF 0116 0104 | |
0122 [31mtab[m HSTORE 0121 0105 | |
0123 nil TBAR 0116 | |
0124 p32 FREF 0116 tab.nomm | |
0125 [35mu8 [m FSTORE 0124 [35m+0 [m | |
0126 [30] [34mnum[m ADD 0098 [34m+1 [m | |
0127 [34mnum[m USTORE 0004 0126 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [1mssa.lua:39[m|---- ] | |
0128 [32mstr[m TOSTR 0126 NUM | |
0129 rdi p32 BUFHDR [0x416bd414] RESET | |
0130 rdi p32 BUFPUT 0129 [32m"L" [m | |
0131 rdi p32 BUFPUT 0130 0128 | |
0132 [18] [32mstr[m BUFSTR 0131 0129 | |
0133 [14] > [31mtab[m TDUP [31m{0x40ff53c0}[m | |
0134 rcx > [31mtab[m TNEW #0 #0 | |
0135 rdx p32 FLOAD 0133 tab.node | |
0136 p32 HREFK 0135 [32m"bindings"[m @2 | |
0137 [31mtab[m HSTORE 0136 0134 | |
0138 p32 HREFK 0135 [32m"label"[m @3 | |
0139 [32mstr[m HSTORE 0138 0132 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [1mssa.lua:39[m|[32m0132[m [31m0133[m ---- ] | |
0140 [35mint[m FLOAD 0021 tab.hmask | |
0141 > [35mint[m EQ 0140 [35m+1 [m | |
0142 rsi p32 FLOAD 0021 tab.node | |
0143 > p32 HREFK 0142 [32m"blocks"[m @0 | |
0144 [24] > [31mtab[m HLOAD 0143 | |
0145 rdx p32 HREF 0144 0132 | |
0146 > p32 EQ 0145 [0x416bd458] | |
0147 [31mtab[m FLOAD 0144 tab.meta | |
0148 > [31mtab[m EQ 0147 [31m[NULL][m | |
0149 rcx p32 NEWREF 0144 0132 | |
0150 [31mtab[m HSTORE 0149 0133 | |
0151 nil TBAR 0144 | |
0152 p32 FREF 0144 tab.nomm | |
0153 [35mu8 [m FSTORE 0152 [35m+0 [m | |
.... SNAP #11 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [1mssa.lua:39[m|---- [31m0133[m ---- ] | |
0154 [35mint[m FLOAD 0069 tab.asize | |
0155 > [35mint[m ABC 0154 [35m+2 [m | |
0156 rdx p32 FLOAD 0069 tab.array | |
0157 p32 AREF 0156 [35m+2 [m | |
0158 [10] > [31mtab[m ALOAD 0157 | |
0159 rdx p32 HREF 0071 [32m"assert"[m | |
0160 > p32 EQ 0159 [0x416bd458] | |
0161 [35mint[m FLOAD 0074 tab.hmask | |
0162 > [35mint[m EQ 0161 [35m+1 [m | |
0163 rsi p32 FLOAD 0074 tab.node | |
0164 > p32 HREFK 0163 [32m"__index"[m @1 | |
0165 rsi > [31mtab[m HLOAD 0164 | |
0166 [35mint[m FLOAD 0165 tab.hmask | |
0167 > [35mint[m EQ 0166 [35m+63 [m | |
0168 rsi p32 FLOAD 0165 tab.node | |
0169 > p32 HREFK 0168 [32m"assert"[m @3 | |
0170 > [1mfun[m HLOAD 0169 | |
0171 rdx p32 HREF 0071 [32m"type"[m | |
0172 > p32 EQ 0171 [0x416bd458] | |
0173 > p32 HREFK 0168 [32m"type"[m @60 | |
0174 > [1mfun[m HLOAD 0173 | |
0175 > [1mfun[m EQ 0174 [1mtype[m | |
0176 > [1mfun[m EQ 0170 [1massert[m | |
0177 [35mint[m FLOAD 0158 tab.asize | |
0178 > [35mint[m ABC 0177 [35m+1 [m | |
0179 rsi p32 FLOAD 0158 tab.array | |
0180 p32 AREF 0179 [35m+1 [m | |
0181 [1c] > [32mstr[m ALOAD 0180 | |
.... SNAP #12 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0182 > [32mstr[m NE 0181 [32m"if"[m | |
.... SNAP #13 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0183 > [32mstr[m NE 0181 [32m"let"[m | |
.... SNAP #14 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0184 > [32mstr[m NE 0181 [32m"true"[m | |
.... SNAP #15 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0185 > [32mstr[m NE 0181 [32m"false"[m | |
.... SNAP #16 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0186 > [32mstr[m NE 0181 [32m"match"[m | |
.... SNAP #17 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0187 > [32mstr[m NE 0181 [32m"fail"[m | |
.... SNAP #18 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m ] | |
0188 > p32 UREFC [1mssa.lua:55[m #4 | |
0189 rdx > [31mtab[m ULOAD 0188 | |
0190 rsi p32 HREF 0189 0181 | |
0191 > tru HLOAD 0190 | |
0192 [c] > [31mtab[m TDUP [31m{0x40fe9ad8}[m | |
0193 rdx p32 FLOAD 0192 tab.array | |
0194 p32 AREF 0193 [35m+2 [m | |
0195 [31mtab[m ASTORE 0194 0158 | |
.... SNAP #19 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m [1mssa.lua:49[m|[31m0070[m ---- [31m0105[m [31m0133[m [31m0192[m ] | |
0196 [35mint[m FLOAD 0105 tab.hmask | |
0197 > [35mint[m EQ 0196 [35m+3 [m | |
0198 rcx p32 FLOAD 0105 tab.node | |
0199 > p32 HREFK 0198 [32m"label"[m @3 | |
0200 rcx > [32mstr[m HLOAD 0199 | |
0201 p32 AREF 0193 [35m+3 [m | |
0202 [32mstr[m ASTORE 0201 0200 | |
0203 p32 AREF 0193 [35m+4 [m | |
0204 [32mstr[m ASTORE 0203 0132 | |
.... SNAP #20 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m [31m0070[m [31m0105[m [31m0133[m [32m0181[m [1mssa.lua:49[m|[31m0070[m ---- ---- ---- [31m0192[m ---- ] | |
0205 rdx p32 HREF 0070 [32m"control"[m | |
0206 > p32 EQ 0205 [0x416bd458] | |
0207 [31mtab[m FLOAD 0070 tab.meta | |
0208 > [31mtab[m EQ 0207 [31m[NULL][m | |
0209 r11 p32 NEWREF 0070 [32m"control"[m | |
0210 [31mtab[m HSTORE 0209 0192 | |
0211 nil TBAR 0070 | |
.... SNAP #21 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [31m0013[m [31m0043[m [1mssa.lua:55[m|[31m0069[m [31m0070[m [31m0013[m [31m0043[m [32m0096[m [31m0105[m [31m0133[m [1mssa.lua:55[m|[31m0158[m ] | |
---- TRACE 6 mcode 2681 | |
0bcbe808 mov eax, [0x416bd4b0] | |
0bcbe80f mov eax, [rax+0x20] | |
0bcbe812 sub eax, [0x416bd4b4] | |
0bcbe819 cmp eax, 0xe8 | |
0bcbe81f jb 0x0bcb0014 ->1 | |
0bcbe825 add rsp, -0x60 | |
0bcbe829 mov dword [0x416bd410], 0x6 | |
0bcbe834 mov edi, [0x416bd3d8] | |
0bcbe83b cmp edi, [0x416bd3dc] | |
0bcbe842 jb 0x0bcbe85b | |
0bcbe844 mov esi, 0xd | |
0bcbe849 mov edi, 0x416bd3b8 | |
0bcbe84e call 0x00421730 ->lj_gc_step_jit | |
0bcbe853 test eax, eax | |
0bcbe855 jnz 0x0bcb0010 ->0 | |
0bcbe85b mov edx, [0x416bd4b4] | |
0bcbe862 cmp dword [rdx-0x8], 0x416cd018 | |
0bcbe869 jnz 0x0bcb0010 ->0 | |
0bcbe86f mov edi, [0x40fea350] | |
0bcbe876 mov [rsp+0x44], edi | |
0bcbe87a cmp dword [rdi+0x4], 0xfffeffff | |
0bcbe881 jnb 0x0bcb0010 ->0 | |
0bcbe887 movsd xmm7, [rdi] | |
0bcbe88b addsd xmm7, [0x40fe3fc0] | |
0bcbe894 movsd [rsp+0x58], xmm7 | |
0bcbe89a movsd [rdi], xmm7 | |
0bcbe89e mov edi, 0x416bd414 | |
0bcbe8a3 mov esi, [rdi+0x8] | |
0bcbe8a6 mov [rdi], esi | |
0bcbe8a8 mov esi, 0x4c | |
0bcbe8ad call 0x00421b60 ->lj_buf_putchar | |
0bcbe8b2 mov edi, eax | |
0bcbe8b4 lea rsi, [rsp+0x58] | |
0bcbe8b9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbe8be mov edi, eax | |
0bcbe8c0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbe8c5 mov [rsp+0x60], eax | |
0bcbe8c9 mov edi, [0x416bd4b0] | |
0bcbe8d0 mov esi, 0x40ff53c0 | |
0bcbe8d5 call 0x004223c0 ->lj_tab_dup | |
0bcbe8da mov ebp, eax | |
0bcbe8dc mov [rsp+0x8], ebp | |
0bcbe8e0 mov edi, [0x416bd4b0] | |
0bcbe8e7 xor esi, esi | |
0bcbe8e9 call 0x00422350 ->lj_tab_new1 | |
0bcbe8ee mov r15d, eax | |
0bcbe8f1 mov edi, [0x416bd4b0] | |
0bcbe8f8 mov eax, [rsp+0x60] | |
0bcbe8fc mov ebp, [rbp+0x14] | |
0bcbe8ff mov dword [rbp+0x34], 0xfffffff4 | |
0bcbe906 mov [rbp+0x30], r15d | |
0bcbe90a mov dword [rbp+0x4c], 0xfffffffb | |
0bcbe911 mov [rbp+0x48], eax | |
0bcbe914 mov ebp, [0x416d20c0] | |
0bcbe91b cmp dword [rbp+0x4], -0x0c | |
0bcbe91f jnz 0x0bcb0018 ->2 | |
0bcbe925 mov esi, [rbp+0x0] | |
0bcbe928 mov [rsp+0x2c], esi | |
0bcbe92c cmp dword [rsi+0x1c], +0x01 | |
0bcbe930 jnz 0x0bcb0018 ->2 | |
0bcbe936 mov ebp, [rsi+0x14] | |
0bcbe939 mov rsi, 0xfffffffb40ff4698 | |
0bcbe943 cmp rsi, [rbp+0x8] | |
0bcbe947 jnz 0x0bcb0018 ->2 | |
0bcbe94d cmp dword [rbp+0x4], -0x0c | |
0bcbe951 jnz 0x0bcb0018 ->2 | |
0bcbe957 mov ebp, [rbp+0x0] | |
0bcbe95a mov esi, [rbp+0x1c] | |
0bcbe95d and esi, [rax+0x8] | |
0bcbe960 lea esi, [rsi+rsi*2] | |
0bcbe963 shl esi, 0x03 | |
0bcbe966 add esi, [rbp+0x14] | |
0bcbe969 cmp dword [rsi+0xc], -0x05 | |
0bcbe96d jnz 0x0bcbe978 | |
0bcbe96f cmp eax, [rsi+0x8] | |
0bcbe972 jz 0x0bcb0018 ->2 | |
0bcbe978 mov esi, [rsi+0x10] | |
0bcbe97b test esi, esi | |
0bcbe97d jnz 0x0bcbe969 | |
0bcbe97f cmp dword [rbp+0x10], +0x00 | |
0bcbe983 jnz 0x0bcb0018 ->2 | |
0bcbe989 mov edx, 0x416bd448 | |
0bcbe98e mov dword [rdx+0x4], 0xfffffffb | |
0bcbe995 mov [rdx], eax | |
0bcbe997 mov esi, ebp | |
0bcbe999 call 0x00422cf0 ->lj_tab_newkey | |
0bcbe99e mov r15d, eax | |
0bcbe9a1 mov edi, [rsp+0x44] | |
0bcbe9a5 mov eax, [rsp+0x8] | |
0bcbe9a9 movsd xmm7, [rsp+0x58] | |
0bcbe9af mov dword [r15+0x4], 0xfffffff4 | |
0bcbe9b7 mov [r15], eax | |
0bcbe9ba test byte [rbp+0x4], 0x4 | |
0bcbe9be jz 0x0bcbe9d5 | |
0bcbe9c0 and byte [rbp+0x4], 0xfb | |
0bcbe9c4 mov esi, [0x416bd3f4] | |
0bcbe9cb mov [0x416bd3f4], ebp | |
0bcbe9d2 mov [rbp+0xc], esi | |
0bcbe9d5 mov byte [rbp+0x6], 0x0 | |
0bcbe9d9 addsd xmm7, [0x40fe3fc0] | |
0bcbe9e2 movsd [rsp+0x50], xmm7 | |
0bcbe9e8 movsd [rdi], xmm7 | |
0bcbe9ec mov edi, 0x416bd414 | |
0bcbe9f1 mov esi, [rdi+0x8] | |
0bcbe9f4 mov [rdi], esi | |
0bcbe9f6 mov esi, 0x4c | |
0bcbe9fb call 0x00421b60 ->lj_buf_putchar | |
0bcbea00 mov edi, eax | |
0bcbea02 lea rsi, [rsp+0x50] | |
0bcbea07 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbea0c mov edi, eax | |
0bcbea0e call 0x00421ff0 ->lj_buf_tostr | |
0bcbea13 mov [rsp+0x4c], eax | |
0bcbea17 mov edi, [0x416bd4b0] | |
0bcbea1e mov esi, 0x40ff53c0 | |
0bcbea23 call 0x004223c0 ->lj_tab_dup | |
0bcbea28 mov ebp, eax | |
0bcbea2a mov edi, [0x416bd4b0] | |
0bcbea31 xor esi, esi | |
0bcbea33 call 0x00422350 ->lj_tab_new1 | |
0bcbea38 mov r14d, eax | |
0bcbea3b mov edi, [0x416bd4b0] | |
0bcbea42 mov esi, [rsp+0x2c] | |
0bcbea46 mov eax, [rsp+0x4c] | |
0bcbea4a mov r15d, [rbp+0x14] | |
0bcbea4e mov dword [r15+0x34], 0xfffffff4 | |
0bcbea56 mov [r15+0x30], r14d | |
0bcbea5a mov dword [r15+0x4c], 0xfffffffb | |
0bcbea62 mov [r15+0x48], eax | |
0bcbea66 cmp dword [rsi+0x1c], +0x01 | |
0bcbea6a jnz 0x0bcb0020 ->4 | |
0bcbea70 mov r15d, [rsi+0x14] | |
0bcbea74 mov rsi, 0xfffffffb40ff4698 | |
0bcbea7e cmp rsi, [r15+0x8] | |
0bcbea82 jnz 0x0bcb0020 ->4 | |
0bcbea88 cmp dword [r15+0x4], -0x0c | |
0bcbea8d jnz 0x0bcb0020 ->4 | |
0bcbea93 mov r15d, [r15] | |
0bcbea96 mov esi, [r15+0x1c] | |
0bcbea9a and esi, [rax+0x8] | |
0bcbea9d lea esi, [rsi+rsi*2] | |
0bcbeaa0 shl esi, 0x03 | |
0bcbeaa3 add esi, [r15+0x14] | |
0bcbeaa7 cmp dword [rsi+0xc], -0x05 | |
0bcbeaab jnz 0x0bcbeab6 | |
0bcbeaad cmp eax, [rsi+0x8] | |
0bcbeab0 jz 0x0bcb0020 ->4 | |
0bcbeab6 mov esi, [rsi+0x10] | |
0bcbeab9 test esi, esi | |
0bcbeabb jnz 0x0bcbeaa7 | |
0bcbeabd cmp dword [r15+0x10], +0x00 | |
0bcbeac2 jnz 0x0bcb0020 ->4 | |
0bcbeac8 mov edx, 0x416bd448 | |
0bcbeacd mov dword [rdx+0x4], 0xfffffffb | |
0bcbead4 mov [rdx], eax | |
0bcbead6 mov esi, r15d | |
0bcbead9 call 0x00422cf0 ->lj_tab_newkey | |
0bcbeade mov edi, [rsp+0x44] | |
0bcbeae2 mov edx, [0x416bd4b4] | |
0bcbeae9 movsd xmm7, [rsp+0x50] | |
0bcbeaef mov dword [rax+0x4], 0xfffffff4 | |
0bcbeaf6 mov [rax], ebp | |
0bcbeaf8 test byte [r15+0x4], 0x4 | |
0bcbeafd jz 0x0bcbeb17 | |
0bcbeaff and byte [r15+0x4], 0xfb | |
0bcbeb04 mov esi, [0x416bd3f4] | |
0bcbeb0b mov [0x416bd3f4], r15d | |
0bcbeb13 mov [r15+0xc], esi | |
0bcbeb17 mov byte [r15+0x6], 0x0 | |
0bcbeb1c cmp dword [rdx+0x4], -0x0c | |
0bcbeb20 jnz 0x0bcb0024 ->5 | |
0bcbeb26 mov r15d, [rdx] | |
0bcbeb29 cmp dword [r15+0x18], +0x02 | |
0bcbeb2e jbe 0x0bcb0024 ->5 | |
0bcbeb34 mov r15d, [r15+0x8] | |
0bcbeb38 cmp dword [r15+0x14], -0x0c | |
0bcbeb3d jnz 0x0bcb0024 ->5 | |
0bcbeb43 mov r15d, [r15+0x10] | |
0bcbeb47 cmp dword [rdx+0xc], -0x0c | |
0bcbeb4b jnz 0x0bcb0024 ->5 | |
0bcbeb51 mov r14d, [rdx+0x8] | |
0bcbeb55 mov eax, [0x416cd020] | |
0bcbeb5c mov [rsp+0x20], eax | |
0bcbeb60 mov esi, [rax+0x1c] | |
0bcbeb63 and esi, 0xce2b6183 | |
0bcbeb69 lea esi, [rsi+rsi*2] | |
0bcbeb6c shl esi, 0x03 | |
0bcbeb6f add esi, [rax+0x14] | |
0bcbeb72 cmp dword [rsi+0xc], -0x05 | |
0bcbeb76 jnz 0x0bcbeb85 | |
0bcbeb78 cmp dword [rsi+0x8], 0x416bfdb0 | |
0bcbeb7f jz 0x0bcb0024 ->5 | |
0bcbeb85 mov esi, [rsi+0x10] | |
0bcbeb88 test esi, esi | |
0bcbeb8a jnz 0x0bcbeb72 | |
0bcbeb8c mov esi, [rax+0x10] | |
0bcbeb8f mov [rsp+0x28], esi | |
0bcbeb93 test esi, esi | |
0bcbeb95 jz 0x0bcb0024 ->5 | |
0bcbeb9b cmp dword [rsi+0x1c], +0x01 | |
0bcbeb9f jnz 0x0bcb0024 ->5 | |
0bcbeba5 mov r13d, [rsi+0x14] | |
0bcbeba9 mov rsi, 0xfffffffb416bf4c8 | |
0bcbebb3 cmp rsi, [r13+0x20] | |
0bcbebb7 jnz 0x0bcb0024 ->5 | |
0bcbebbd cmp dword [r13+0x1c], -0x0c | |
0bcbebc2 jnz 0x0bcb0024 ->5 | |
0bcbebc8 mov r13d, [r13+0x18] | |
0bcbebcc cmp dword [r13+0x1c], +0x3f | |
0bcbebd1 jnz 0x0bcb0024 ->5 | |
0bcbebd7 mov r13d, [r13+0x14] | |
0bcbebdb mov rsi, 0xfffffffb416bfdb0 | |
0bcbebe5 cmp rsi, [r13+0x50] | |
0bcbebe9 jnz 0x0bcb0024 ->5 | |
0bcbebef cmp dword [r13+0x4c], -0x09 | |
0bcbebf4 jnz 0x0bcb0024 ->5 | |
0bcbebfa mov esi, [rax+0x1c] | |
0bcbebfd and esi, 0x798a813c | |
0bcbec03 lea esi, [rsi+rsi*2] | |
0bcbec06 shl esi, 0x03 | |
0bcbec09 add esi, [rax+0x14] | |
0bcbec0c cmp dword [rsi+0xc], -0x05 | |
0bcbec10 jnz 0x0bcbec1f | |
0bcbec12 cmp dword [rsi+0x8], 0x416bffb0 | |
0bcbec19 jz 0x0bcb0024 ->5 | |
0bcbec1f mov esi, [rsi+0x10] | |
0bcbec22 test esi, esi | |
0bcbec24 jnz 0x0bcbec0c | |
0bcbec26 mov rsi, 0xfffffffb416bffb0 | |
0bcbec30 cmp rsi, [r13+0x5a8] | |
0bcbec37 jnz 0x0bcb0024 ->5 | |
0bcbec3d cmp dword [r13+0x5a4], -0x09 | |
0bcbec45 jnz 0x0bcb0024 ->5 | |
0bcbec4b cmp dword [r13+0x5a0], 0x416bff18 | |
0bcbec56 jnz 0x0bcb0024 ->5 | |
0bcbec5c cmp dword [r13+0x48], 0x416bfd88 | |
0bcbec64 jnz 0x0bcb0024 ->5 | |
0bcbec6a cmp dword [r15+0x18], +0x01 | |
0bcbec6f jbe 0x0bcb0024 ->5 | |
0bcbec75 mov r13d, [r15+0x8] | |
0bcbec79 cmp dword [r13+0xc], -0x05 | |
0bcbec7e jnz 0x0bcb0024 ->5 | |
0bcbec84 mov r13d, [r13+0x8] | |
0bcbec88 cmp r13d, 0x416bf8f8 | |
0bcbec8f jnz 0x0bcb0028 ->6 | |
0bcbec95 addsd xmm7, [0x40fe3fc0] | |
0bcbec9e movsd [rsp+0x38], xmm7 | |
0bcbeca4 movsd [rdi], xmm7 | |
0bcbeca8 mov edi, 0x416bd414 | |
0bcbecad mov esi, [rdi+0x8] | |
0bcbecb0 mov [rdi], esi | |
0bcbecb2 mov esi, 0x4c | |
0bcbecb7 call 0x00421b60 ->lj_buf_putchar | |
0bcbecbc mov edi, eax | |
0bcbecbe lea rsi, [rsp+0x38] | |
0bcbecc3 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbecc8 mov edi, eax | |
0bcbecca call 0x00421ff0 ->lj_buf_tostr | |
0bcbeccf mov [rsp+0x48], eax | |
0bcbecd3 mov edi, [0x416bd4b0] | |
0bcbecda mov esi, 0x40ff53c0 | |
0bcbecdf call 0x004223c0 ->lj_tab_dup | |
0bcbece4 mov r12d, eax | |
0bcbece7 mov edi, [0x416bd4b0] | |
0bcbecee xor esi, esi | |
0bcbecf0 call 0x00422350 ->lj_tab_new1 | |
0bcbecf5 mov ecx, eax | |
0bcbecf7 mov edi, [0x416bd4b0] | |
0bcbecfe mov esi, [rsp+0x2c] | |
0bcbed02 mov eax, [rsp+0x48] | |
0bcbed06 mov edx, [r12+0x14] | |
0bcbed0b mov dword [rdx+0x34], 0xfffffff4 | |
0bcbed12 mov [rdx+0x30], ecx | |
0bcbed15 mov dword [rdx+0x4c], 0xfffffffb | |
0bcbed1c mov [rdx+0x48], eax | |
0bcbed1f cmp dword [rsi+0x1c], +0x01 | |
0bcbed23 jnz 0x0bcb0030 ->8 | |
0bcbed29 mov esi, [rsi+0x14] | |
0bcbed2c mov rdx, 0xfffffffb40ff4698 | |
0bcbed36 cmp rdx, [rsi+0x8] | |
0bcbed3a jnz 0x0bcb0030 ->8 | |
0bcbed40 cmp dword [rsi+0x4], -0x0c | |
0bcbed44 jnz 0x0bcb0030 ->8 | |
0bcbed4a mov esi, [rsi] | |
0bcbed4c mov [rsp+0x40], esi | |
0bcbed50 mov edx, [rsi+0x1c] | |
0bcbed53 and edx, [rax+0x8] | |
0bcbed56 lea edx, [rdx+rdx*2] | |
0bcbed59 shl edx, 0x03 | |
0bcbed5c add edx, [rsi+0x14] | |
0bcbed5f cmp dword [rdx+0xc], -0x05 | |
0bcbed63 jnz 0x0bcbed6e | |
0bcbed65 cmp eax, [rdx+0x8] | |
0bcbed68 jz 0x0bcb0030 ->8 | |
0bcbed6e mov edx, [rdx+0x10] | |
0bcbed71 test edx, edx | |
0bcbed73 jnz 0x0bcbed5f | |
0bcbed75 cmp dword [rsi+0x10], +0x00 | |
0bcbed79 jnz 0x0bcb0030 ->8 | |
0bcbed7f mov edx, 0x416bd448 | |
0bcbed84 mov dword [rdx+0x4], 0xfffffffb | |
0bcbed8b mov [rdx], eax | |
0bcbed8d call 0x00422cf0 ->lj_tab_newkey | |
0bcbed92 mov edi, [rsp+0x44] | |
0bcbed96 mov esi, [rsp+0x40] | |
0bcbed9a movsd xmm7, [rsp+0x38] | |
0bcbeda0 mov dword [rax+0x4], 0xfffffff4 | |
0bcbeda7 mov [rax], r12d | |
0bcbedaa test byte [rsi+0x4], 0x4 | |
0bcbedae jz 0x0bcbedc5 | |
0bcbedb0 and byte [rsi+0x4], 0xfb | |
0bcbedb4 mov edx, [0x416bd3f4] | |
0bcbedbb mov [0x416bd3f4], esi | |
0bcbedc2 mov [rsi+0xc], edx | |
0bcbedc5 mov byte [rsi+0x6], 0x0 | |
0bcbedc9 addsd xmm7, [0x40fe3fc0] | |
0bcbedd2 movsd [rsp+0x30], xmm7 | |
0bcbedd8 movsd [rdi], xmm7 | |
0bcbeddc mov edi, 0x416bd414 | |
0bcbede1 mov esi, [rdi+0x8] | |
0bcbede4 mov [rdi], esi | |
0bcbede6 mov esi, 0x4c | |
0bcbedeb call 0x00421b60 ->lj_buf_putchar | |
0bcbedf0 mov edi, eax | |
0bcbedf2 lea rsi, [rsp+0x30] | |
0bcbedf7 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbedfc mov edi, eax | |
0bcbedfe call 0x00421ff0 ->lj_buf_tostr | |
0bcbee03 mov [rsp+0x18], eax | |
0bcbee07 mov edi, [0x416bd4b0] | |
0bcbee0e mov esi, 0x40ff53c0 | |
0bcbee13 call 0x004223c0 ->lj_tab_dup | |
0bcbee18 mov [rsp+0x14], eax | |
0bcbee1c mov edi, [0x416bd4b0] | |
0bcbee23 xor esi, esi | |
0bcbee25 call 0x00422350 ->lj_tab_new1 | |
0bcbee2a mov ecx, eax | |
0bcbee2c mov edi, [rsp+0x14] | |
0bcbee30 mov esi, [rsp+0x2c] | |
0bcbee34 mov eax, [rsp+0x18] | |
0bcbee38 mov edx, [rdi+0x14] | |
0bcbee3b mov edi, [0x416bd4b0] | |
0bcbee42 mov dword [rdx+0x34], 0xfffffff4 | |
0bcbee49 mov [rdx+0x30], ecx | |
0bcbee4c mov dword [rdx+0x4c], 0xfffffffb | |
0bcbee53 mov [rdx+0x48], eax | |
0bcbee56 cmp dword [rsi+0x1c], +0x01 | |
0bcbee5a jnz 0x0bcb0038 ->10 | |
0bcbee60 mov esi, [rsi+0x14] | |
0bcbee63 mov rdx, 0xfffffffb40ff4698 | |
0bcbee6d cmp rdx, [rsi+0x8] | |
0bcbee71 jnz 0x0bcb0038 ->10 | |
0bcbee77 cmp dword [rsi+0x4], -0x0c | |
0bcbee7b jnz 0x0bcb0038 ->10 | |
0bcbee81 mov esi, [rsi] | |
0bcbee83 mov [rsp+0x24], esi | |
0bcbee87 mov edx, [rsi+0x1c] | |
0bcbee8a and edx, [rax+0x8] | |
0bcbee8d lea edx, [rdx+rdx*2] | |
0bcbee90 shl edx, 0x03 | |
0bcbee93 add edx, [rsi+0x14] | |
0bcbee96 cmp dword [rdx+0xc], -0x05 | |
0bcbee9a jnz 0x0bcbeea5 | |
0bcbee9c cmp eax, [rdx+0x8] | |
0bcbee9f jz 0x0bcb0038 ->10 | |
0bcbeea5 mov edx, [rdx+0x10] | |
0bcbeea8 test edx, edx | |
0bcbeeaa jnz 0x0bcbee96 | |
0bcbeeac cmp dword [rsi+0x10], +0x00 | |
0bcbeeb0 jnz 0x0bcb0038 ->10 | |
0bcbeeb6 mov edx, 0x416bd448 | |
0bcbeebb mov dword [rdx+0x4], 0xfffffffb | |
0bcbeec2 mov [rdx], eax | |
0bcbeec4 call 0x00422cf0 ->lj_tab_newkey | |
0bcbeec9 mov ecx, eax | |
0bcbeecb mov edi, [rsp+0x14] | |
0bcbeecf mov esi, [rsp+0x28] | |
0bcbeed3 mov edx, [rsp+0x24] | |
0bcbeed7 mov eax, [rsp+0x20] | |
0bcbeedb mov dword [rcx+0x4], 0xfffffff4 | |
0bcbeee2 mov [rcx], edi | |
0bcbeee4 mov edi, [0x416bd4b0] | |
0bcbeeeb test byte [rdx+0x4], 0x4 | |
0bcbeeef jz 0x0bcbef06 | |
0bcbeef1 and byte [rdx+0x4], 0xfb | |
0bcbeef5 mov ecx, [0x416bd3f4] | |
0bcbeefc mov [0x416bd3f4], edx | |
0bcbef03 mov [rdx+0xc], ecx | |
0bcbef06 mov byte [rdx+0x6], 0x0 | |
0bcbef0a cmp dword [r15+0x18], +0x02 | |
0bcbef0f jbe 0x0bcb003c ->11 | |
0bcbef15 mov edx, [r15+0x8] | |
0bcbef19 cmp dword [rdx+0x14], -0x0c | |
0bcbef1d jnz 0x0bcb003c ->11 | |
0bcbef23 mov ecx, [rdx+0x10] | |
0bcbef26 mov [rsp+0x10], ecx | |
0bcbef2a mov edx, [rax+0x1c] | |
0bcbef2d and edx, 0xce2b6183 | |
0bcbef33 lea edx, [rdx+rdx*2] | |
0bcbef36 shl edx, 0x03 | |
0bcbef39 add edx, [rax+0x14] | |
0bcbef3c cmp dword [rdx+0xc], -0x05 | |
0bcbef40 jnz 0x0bcbef4f | |
0bcbef42 cmp dword [rdx+0x8], 0x416bfdb0 | |
0bcbef49 jz 0x0bcb003c ->11 | |
0bcbef4f mov edx, [rdx+0x10] | |
0bcbef52 test edx, edx | |
0bcbef54 jnz 0x0bcbef3c | |
0bcbef56 cmp dword [rsi+0x1c], +0x01 | |
0bcbef5a jnz 0x0bcb003c ->11 | |
0bcbef60 mov esi, [rsi+0x14] | |
0bcbef63 mov rdx, 0xfffffffb416bf4c8 | |
0bcbef6d cmp rdx, [rsi+0x20] | |
0bcbef71 jnz 0x0bcb003c ->11 | |
0bcbef77 cmp dword [rsi+0x1c], -0x0c | |
0bcbef7b jnz 0x0bcb003c ->11 | |
0bcbef81 mov esi, [rsi+0x18] | |
0bcbef84 cmp dword [rsi+0x1c], +0x3f | |
0bcbef88 jnz 0x0bcb003c ->11 | |
0bcbef8e mov esi, [rsi+0x14] | |
0bcbef91 mov rdx, 0xfffffffb416bfdb0 | |
0bcbef9b cmp rdx, [rsi+0x50] | |
0bcbef9f jnz 0x0bcb003c ->11 | |
0bcbefa5 cmp dword [rsi+0x4c], -0x09 | |
0bcbefa9 jnz 0x0bcb003c ->11 | |
0bcbefaf mov edx, [rax+0x1c] | |
0bcbefb2 and edx, 0x798a813c | |
0bcbefb8 lea edx, [rdx+rdx*2] | |
0bcbefbb shl edx, 0x03 | |
0bcbefbe add edx, [rax+0x14] | |
0bcbefc1 cmp dword [rdx+0xc], -0x05 | |
0bcbefc5 jnz 0x0bcbefd4 | |
0bcbefc7 cmp dword [rdx+0x8], 0x416bffb0 | |
0bcbefce jz 0x0bcb003c ->11 | |
0bcbefd4 mov edx, [rdx+0x10] | |
0bcbefd7 test edx, edx | |
0bcbefd9 jnz 0x0bcbefc1 | |
0bcbefdb mov rdx, 0xfffffffb416bffb0 | |
0bcbefe5 cmp rdx, [rsi+0x5a8] | |
0bcbefec jnz 0x0bcb003c ->11 | |
0bcbeff2 cmp dword [rsi+0x5a4], -0x09 | |
0bcbeff9 jnz 0x0bcb003c ->11 | |
0bcbefff cmp dword [rsi+0x5a0], 0x416bff18 | |
0bcbf009 jnz 0x0bcb003c ->11 | |
0bcbf00f cmp dword [rsi+0x48], 0x416bfd88 | |
0bcbf016 jnz 0x0bcb003c ->11 | |
0bcbf01c cmp dword [rcx+0x18], +0x01 | |
0bcbf020 jbe 0x0bcb003c ->11 | |
0bcbf026 mov esi, [rcx+0x8] | |
0bcbf029 cmp dword [rsi+0xc], -0x05 | |
0bcbf02d jnz 0x0bcb003c ->11 | |
0bcbf033 mov ecx, [rsi+0x8] | |
0bcbf036 mov [rsp+0x1c], ecx | |
0bcbf03a cmp ecx, 0x416bf8f8 | |
0bcbf040 jz 0x0bcb0040 ->12 | |
0bcbf046 cmp ecx, 0x40fea3e8 | |
0bcbf04c jz 0x0bcb0044 ->13 | |
0bcbf052 cmp ecx, 0x416bfa18 | |
0bcbf058 jz 0x0bcb0048 ->14 | |
0bcbf05e cmp ecx, 0x416bf870 | |
0bcbf064 jz 0x0bcb004c ->15 | |
0bcbf06a cmp ecx, 0x416c2cb0 | |
0bcbf070 jz 0x0bcb0050 ->16 | |
0bcbf076 cmp ecx, 0x416d1ce0 | |
0bcbf07c jz 0x0bcb0054 ->17 | |
0bcbf082 cmp dword [0x416d21c4], -0x0c | |
0bcbf08a jnz 0x0bcb0058 ->18 | |
0bcbf090 mov edx, [0x416d21c0] | |
0bcbf097 mov esi, [rdx+0x1c] | |
0bcbf09a and esi, [rcx+0x8] | |
0bcbf09d lea esi, [rsi+rsi*2] | |
0bcbf0a0 shl esi, 0x03 | |
0bcbf0a3 add esi, [rdx+0x14] | |
0bcbf0a6 cmp dword [rsi+0xc], -0x05 | |
0bcbf0aa jnz 0x0bcbf0b1 | |
0bcbf0ac cmp ecx, [rsi+0x8] | |
0bcbf0af jz 0x0bcbf0bd | |
0bcbf0b1 mov esi, [rsi+0x10] | |
0bcbf0b4 test esi, esi | |
0bcbf0b6 jnz 0x0bcbf0a6 | |
0bcbf0b8 mov esi, 0x416bd458 | |
0bcbf0bd cmp dword [rsi+0x4], -0x03 | |
0bcbf0c1 jnz 0x0bcb0058 ->18 | |
0bcbf0c7 mov esi, 0x40fe9ad8 | |
0bcbf0cc call 0x004223c0 ->lj_tab_dup | |
0bcbf0d1 mov edx, eax | |
0bcbf0d3 mov [rsp+0xc], edx | |
0bcbf0d7 mov edi, [0x416bd4b0] | |
0bcbf0de mov ecx, [rsp+0x10] | |
0bcbf0e2 mov eax, [rsp+0x18] | |
0bcbf0e6 mov edx, [rdx+0x8] | |
0bcbf0e9 mov dword [rdx+0x14], 0xfffffff4 | |
0bcbf0f0 mov [rdx+0x10], ecx | |
0bcbf0f3 cmp dword [r12+0x1c], +0x03 | |
0bcbf0f9 jnz 0x0bcb005c ->19 | |
0bcbf0ff mov ecx, [r12+0x14] | |
0bcbf104 mov r11, 0xfffffffb40ff4738 | |
0bcbf10e cmp r11, [rcx+0x50] | |
0bcbf112 jnz 0x0bcb005c ->19 | |
0bcbf118 cmp dword [rcx+0x4c], -0x05 | |
0bcbf11c jnz 0x0bcb005c ->19 | |
0bcbf122 mov ecx, [rcx+0x48] | |
0bcbf125 mov dword [rdx+0x1c], 0xfffffffb | |
0bcbf12c mov [rdx+0x18], ecx | |
0bcbf12f mov dword [rdx+0x24], 0xfffffffb | |
0bcbf136 mov [rdx+0x20], eax | |
0bcbf139 mov edx, [r14+0x1c] | |
0bcbf13d and edx, 0x2a54dc55 | |
0bcbf143 lea edx, [rdx+rdx*2] | |
0bcbf146 shl edx, 0x03 | |
0bcbf149 add edx, [r14+0x14] | |
0bcbf14d cmp dword [rdx+0xc], -0x05 | |
0bcbf151 jnz 0x0bcbf160 | |
0bcbf153 cmp dword [rdx+0x8], 0x40ff4ea0 | |
0bcbf15a jz 0x0bcb0060 ->20 | |
0bcbf160 mov edx, [rdx+0x10] | |
0bcbf163 test edx, edx | |
0bcbf165 jnz 0x0bcbf14d | |
0bcbf167 cmp dword [r14+0x10], +0x00 | |
0bcbf16c jnz 0x0bcb0060 ->20 | |
0bcbf172 mov edx, 0x416bd448 | |
0bcbf177 mov dword [rdx+0x4], 0xfffffffb | |
0bcbf17e mov dword [rdx], 0x40ff4ea0 | |
0bcbf184 mov esi, r14d | |
0bcbf187 call 0x00422cf0 ->lj_tab_newkey | |
0bcbf18c mov r11d, eax | |
0bcbf18f mov edi, [rsp+0x14] | |
0bcbf193 mov esi, [rsp+0x10] | |
0bcbf197 mov edx, [0x416bd4b4] | |
0bcbf19e mov ecx, [rsp+0xc] | |
0bcbf1a2 mov eax, [rsp+0x8] | |
0bcbf1a6 mov dword [r11+0x4], 0xfffffff4 | |
0bcbf1ae mov [r11], ecx | |
0bcbf1b1 test byte [r14+0x4], 0x4 | |
0bcbf1b6 jz 0x0bcbf1d0 | |
0bcbf1b8 and byte [r14+0x4], 0xfb | |
0bcbf1bd mov ecx, [0x416bd3f4] | |
0bcbf1c4 mov [0x416bd3f4], r14d | |
0bcbf1cc mov [r14+0xc], ecx | |
0bcbf1d0 mov dword [rdx+0x84], 0xfffffff4 | |
0bcbf1da mov [rdx+0x80], esi | |
0bcbf1e0 mov dword [rdx+0x7c], 0x40ff5de8 | |
0bcbf1e7 mov dword [rdx+0x78], 0x416cd018 | |
0bcbf1ee mov dword [rdx+0x74], 0xfffffff4 | |
0bcbf1f5 mov [rdx+0x70], edi | |
0bcbf1f8 mov dword [rdx+0x6c], 0xfffffff4 | |
0bcbf1ff mov [rdx+0x68], r12d | |
0bcbf203 mov dword [rdx+0x64], 0xfffffffb | |
0bcbf20a mov [rdx+0x60], r13d | |
0bcbf20e mov dword [rdx+0x5c], 0xfffffff4 | |
0bcbf215 mov [rdx+0x58], ebp | |
0bcbf218 mov dword [rdx+0x54], 0xfffffff4 | |
0bcbf21f mov [rdx+0x50], eax | |
0bcbf222 mov dword [rdx+0x4c], 0xfffffff4 | |
0bcbf229 mov [rdx+0x48], r14d | |
0bcbf22d mov dword [rdx+0x44], 0xfffffff4 | |
0bcbf234 mov [rdx+0x40], r15d | |
0bcbf238 mov dword [rdx+0x3c], 0x40ff5de8 | |
0bcbf23f mov dword [rdx+0x38], 0x416cd018 | |
0bcbf246 mov dword [rdx+0x34], 0xfffffff4 | |
0bcbf24d mov [rdx+0x30], ebp | |
0bcbf250 mov dword [rdx+0x2c], 0xfffffff4 | |
0bcbf257 mov [rdx+0x28], eax | |
0bcbf25a mov dword [rdx+0x24], 0xfffffffb | |
0bcbf261 mov [rdx+0x20], ebx | |
0bcbf264 mov dword [rdx-0x8], 0x416cd018 | |
0bcbf26b add edx, 0x80 | |
0bcbf271 mov [0x416bd4b4], edx | |
0bcbf278 add rsp, +0x60 | |
0bcbf27c jmp 0x0bcbf398 | |
---- TRACE 6 stop -> 4 | |
---- TRACE 4 exit 1 | |
---- TRACE 2 exit 2 | |
---- TRACE 6 exit 12 | |
---- TRACE 2 exit 8 | |
---- TRACE 4 exit 1 | |
---- TRACE 2 exit 3 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 3 | |
---- TRACE 2 exit 8 | |
---- TRACE 4 exit 1 | |
---- TRACE 6 exit 6 | |
---- TRACE 4 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 4 exit 6 | |
---- TRACE 5 exit 1 | |
---- TRACE 4 exit 1 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 1 | |
---- TRACE 4 exit 1 | |
---- TRACE 4 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 1 | |
---- TRACE 7 start 4/1 ssa.lua:79 | |
0094 RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 JLOOP 1 4 | |
---- TRACE 7 IR | |
.... SNAP #0 [ ---- ] | |
.... SNAP #1 [ ---- ] | |
0002 > p32 RETF proto: 0x40ff5d48 [0x40ff5e18] | |
.... SNAP #2 [ ---- ---- ] | |
---- TRACE 7 mcode 50 | |
0bcbe7d3 mov dword [0x416bd410], 0x7 | |
0bcbe7de mov edx, [0x416bd4b4] | |
0bcbe7e5 cmp dword [rdx-0x4], 0x40ff5e18 | |
0bcbe7ec jnz 0x0bcb0014 ->1 | |
0bcbe7f2 add edx, -0x40 | |
0bcbe7f5 mov [0x416bd4b4], edx | |
0bcbe7fc add rsp, +0x10 | |
0bcbe800 jmp 0x0bcbf398 | |
---- TRACE 7 stop -> 4 | |
---- TRACE 7 exit 1 | |
---- TRACE 6 exit 6 | |
---- TRACE 7 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 7 exit 1 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 7 exit 1 | |
---- TRACE 6 exit 6 | |
---- TRACE 7 exit 1 | |
---- TRACE 2 exit 2 | |
---- TRACE 6 exit 20 | |
---- TRACE 7 exit 1 | |
---- TRACE 2 exit 3 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 3 | |
---- TRACE 2 exit 8 | |
---- TRACE 7 exit 1 | |
---- TRACE 2 exit 3 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 6 | |
---- TRACE 7 exit 1 | |
---- TRACE 6 exit 6 | |
---- TRACE 8 start ssa.lua:49 | |
0001 TDUP 4 1 | |
0002 TSETB 1 4 2 | |
0003 TGETS 5 2 2 ; "label" | |
0004 TSETB 5 4 3 | |
0005 TGETS 5 3 2 ; "label" | |
0006 TSETB 5 4 4 | |
0007 TSETS 4 0 0 ; "control" | |
0008 RET0 0 1 | |
---- TRACE 8 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rax > [31mtab[m TDUP [31m{0x40fe9ad8}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 rbx p32 FLOAD 0001 tab.array | |
0004 p32 AREF 0003 [35m+2 [m | |
0005 [31mtab[m ASTORE 0004 0002 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [31m0001[m ] | |
0006 rbp > [31mtab[m SLOAD #3 T | |
0007 [35mint[m FLOAD 0006 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+3 [m | |
0009 rbp p32 FLOAD 0006 tab.node | |
0010 > p32 HREFK 0009 [32m"label"[m @3 | |
0011 rbp > [32mstr[m HLOAD 0010 | |
0012 p32 AREF 0003 [35m+3 [m | |
0013 [32mstr[m ASTORE 0012 0011 | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0014 rbp > [31mtab[m SLOAD #4 T | |
0015 [35mint[m FLOAD 0014 tab.hmask | |
0016 > [35mint[m EQ 0015 [35m+3 [m | |
0017 rbp p32 FLOAD 0014 tab.node | |
0018 > p32 HREFK 0017 [32m"label"[m @3 | |
0019 rbp > [32mstr[m HLOAD 0018 | |
0020 p32 AREF 0003 [35m+4 [m | |
0021 [32mstr[m ASTORE 0020 0019 | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0022 rbp > [31mtab[m SLOAD #1 T | |
0023 [35mint[m FLOAD 0022 tab.hmask | |
0024 > [35mint[m EQ 0023 [35m+3 [m | |
0025 rbx p32 FLOAD 0022 tab.node | |
0026 > p32 HREFK 0025 [32m"control"[m @1 | |
0027 [31mtab[m FLOAD 0022 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 [31mtab[m HSTORE 0026 0001 | |
0030 nil TBAR 0022 | |
.... SNAP #4 [ ---- ] | |
---- TRACE 8 mcode 348 | |
0bcbe670 mov dword [0x416bd410], 0x8 | |
0bcbe67b mov edi, [0x416bd3d8] | |
0bcbe682 cmp edi, [0x416bd3dc] | |
0bcbe689 jb 0x0bcbe6a2 | |
0bcbe68b mov esi, 0x1 | |
0bcbe690 mov edi, 0x416bd3b8 | |
0bcbe695 call 0x00421730 ->lj_gc_step_jit | |
0bcbe69a test eax, eax | |
0bcbe69c jnz 0x0bcb0010 ->0 | |
0bcbe6a2 mov edi, [0x416bd4b0] | |
0bcbe6a9 mov esi, 0x40fe9ad8 | |
0bcbe6ae call 0x004223c0 ->lj_tab_dup | |
0bcbe6b3 mov edx, [0x416bd4b4] | |
0bcbe6ba cmp dword [rdx+0xc], -0x0c | |
0bcbe6be jnz 0x0bcb0010 ->0 | |
0bcbe6c4 mov ebp, [rdx+0x8] | |
0bcbe6c7 mov ebx, [rax+0x8] | |
0bcbe6ca mov dword [rbx+0x14], 0xfffffff4 | |
0bcbe6d1 mov [rbx+0x10], ebp | |
0bcbe6d4 cmp dword [rdx+0x14], -0x0c | |
0bcbe6d8 jnz 0x0bcb0014 ->1 | |
0bcbe6de mov ebp, [rdx+0x10] | |
0bcbe6e1 cmp dword [rbp+0x1c], +0x03 | |
0bcbe6e5 jnz 0x0bcb0014 ->1 | |
0bcbe6eb mov ebp, [rbp+0x14] | |
0bcbe6ee mov rdi, 0xfffffffb40ff4738 | |
0bcbe6f8 cmp rdi, [rbp+0x50] | |
0bcbe6fc jnz 0x0bcb0014 ->1 | |
0bcbe702 cmp dword [rbp+0x4c], -0x05 | |
0bcbe706 jnz 0x0bcb0014 ->1 | |
0bcbe70c mov ebp, [rbp+0x48] | |
0bcbe70f mov dword [rbx+0x1c], 0xfffffffb | |
0bcbe716 mov [rbx+0x18], ebp | |
0bcbe719 cmp dword [rdx+0x1c], -0x0c | |
0bcbe71d jnz 0x0bcb0018 ->2 | |
0bcbe723 mov ebp, [rdx+0x18] | |
0bcbe726 cmp dword [rbp+0x1c], +0x03 | |
0bcbe72a jnz 0x0bcb0018 ->2 | |
0bcbe730 mov ebp, [rbp+0x14] | |
0bcbe733 mov rdi, 0xfffffffb40ff4738 | |
0bcbe73d cmp rdi, [rbp+0x50] | |
0bcbe741 jnz 0x0bcb0018 ->2 | |
0bcbe747 cmp dword [rbp+0x4c], -0x05 | |
0bcbe74b jnz 0x0bcb0018 ->2 | |
0bcbe751 mov ebp, [rbp+0x48] | |
0bcbe754 mov dword [rbx+0x24], 0xfffffffb | |
0bcbe75b mov [rbx+0x20], ebp | |
0bcbe75e cmp dword [rdx+0x4], -0x0c | |
0bcbe762 jnz 0x0bcb001c ->3 | |
0bcbe768 mov ebp, [rdx] | |
0bcbe76a cmp dword [rbp+0x1c], +0x03 | |
0bcbe76e jnz 0x0bcb001c ->3 | |
0bcbe774 mov ebx, [rbp+0x14] | |
0bcbe777 mov rdi, 0xfffffffb40ff4ea0 | |
0bcbe781 cmp rdi, [rbx+0x20] | |
0bcbe785 jnz 0x0bcb001c ->3 | |
0bcbe78b cmp dword [rbp+0x10], +0x00 | |
0bcbe78f jnz 0x0bcb001c ->3 | |
0bcbe795 mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbe79c mov [rbx+0x18], eax | |
0bcbe79f test byte [rbp+0x4], 0x4 | |
0bcbe7a3 jz 0x0bcbe7ba | |
0bcbe7a5 and byte [rbp+0x4], 0xfb | |
0bcbe7a9 mov edi, [0x416bd3f4] | |
0bcbe7b0 mov [0x416bd3f4], ebp | |
0bcbe7b7 mov [rbp+0xc], edi | |
0bcbe7ba xor eax, eax | |
0bcbe7bc mov ebx, 0x40ff5890 | |
0bcbe7c1 mov r14d, 0x416be008 | |
0bcbe7c7 jmp 0x00420177 | |
---- TRACE 8 stop -> return | |
---- TRACE 7 exit 1 | |
---- TRACE 2 exit 2 | |
---- TRACE 6 exit 6 | |
---- TRACE 7 exit 1 | |
---- TRACE 9 start 7/1 ssa.lua:79 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0039 . TGETB 5 0 2 | |
0040 . TGETB 6 0 3 | |
0041 . TGETB 7 0 4 | |
0042 . GGET 8 2 ; "table" | |
0043 . TGETS 8 8 5 ; "insert" | |
0044 . TGETS 9 1 6 ; "bindings" | |
0045 . TDUP 10 7 | |
0046 . TSETS 5 10 8 ; "name" | |
0047 . TSETS 6 10 9 ; "value" | |
0048 . CALL 8 1 3 | |
0000 . . FUNCC ; table.insert | |
0049 . UGET 8 1 ; compile_bool | |
0050 . MOV 9 7 | |
0051 . MOV 10 1 | |
0052 . MOV 11 2 | |
0053 . MOV 12 3 | |
0054 . CALL 8 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0014 . . UGET 5 0 ; add_block | |
0015 . . CALL 5 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0016 . . UGET 6 0 ; add_block | |
0017 . . CALL 6 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0018 . . UGET 7 1 ; compile_bool | |
0019 . . TGETB 8 0 2 | |
0020 . . MOV 9 1 | |
0021 . . MOV 10 5 | |
0022 . . MOV 11 6 | |
0023 . . CALL 7 1 5 | |
0000 . . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . . GGET 4 0 ; "assert" | |
0002 . . . GGET 5 1 ; "type" | |
0003 . . . MOV 6 0 | |
0004 . . . CALL 5 2 2 | |
0000 . . . . FUNCC ; type | |
0005 . . . ISEQS 5 2 ; "table" | |
0006 . . . JMP 5 => 0009 | |
0009 . . . KPRI 5 2 | |
0010 . . . CALL 4 1 2 | |
0000 . . . . FUNCC ; assert | |
0011 . . . TGETB 4 0 1 | |
0012 . . . ISNES 4 3 ; "if" | |
0013 . . . JMP 5 => 0037 | |
0037 . . . ISNES 4 4 ; "let" | |
0038 . . . JMP 5 => 0056 | |
0056 . . . ISNES 4 10 ; "true" | |
0057 . . . JMP 5 => 0063 | |
0063 . . . ISNES 4 11 ; "false" | |
0064 . . . JMP 5 => 0070 | |
0070 . . . ISNES 4 12 ; "match" | |
0071 . . . JMP 5 => 0077 | |
0077 . . . ISNES 4 14 ; "fail" | |
0078 . . . JMP 5 => 0084 | |
0084 . . . GGET 5 0 ; "assert" | |
0085 . . . UGET 6 4 ; relops | |
0086 . . . TGETV 6 6 4 | |
0087 . . . CALL 5 1 2 | |
0000 . . . . FUNCC ; assert | |
0088 . . . UGET 5 5 ; finish_if | |
0089 . . . MOV 6 1 | |
0090 . . . MOV 7 0 | |
0091 . . . MOV 8 2 | |
0092 . . . MOV 9 3 | |
0093 . . . CALL 5 1 5 | |
0000 . . . . JFUNCF 6 8 ; ssa.lua:49 | |
0001 . . . . TDUP 4 1 | |
0002 . . . . TSETB 1 4 2 | |
0003 . . . . TGETS 5 2 2 ; "label" | |
0004 . . . . TSETB 5 4 3 | |
0005 . . . . TGETS 5 3 2 ; "label" | |
0006 . . . . TSETB 5 4 4 | |
0007 . . . . TSETS 4 0 0 ; "control" | |
0008 . . . . RET0 0 1 | |
0094 . . . JLOOP 1 4 | |
---- TRACE 9 IR | |
.... SNAP #0 [ ---- ] | |
.... SNAP #1 [ ---- ] | |
0002 > p32 RETF proto: 0x40ff5d48 [0x40ff5de8] | |
.... SNAP #2 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0003 [1mfun[m SLOAD #0 R | |
0004 > [1mfun[m EQ 0003 [1mssa.lua:55[m | |
0005 rbp > [31mtab[m SLOAD #1 T | |
0006 [35mint[m FLOAD 0005 tab.asize | |
0007 > [35mint[m ABC 0006 [35m+3 [m | |
0008 rbp p32 FLOAD 0005 tab.array | |
0009 p32 AREF 0008 [35m+3 [m | |
0010 rbp > [31mtab[m ALOAD 0009 | |
0011 rbx > [31mtab[m SLOAD #6 T | |
0012 r15 > [31mtab[m SLOAD #3 T | |
0013 r14 > [31mtab[m SLOAD #4 T | |
0014 [20] [31mtab[m FLOAD [1mssa.lua:55[m func.env | |
0015 rsi p32 HREF 0014 [32m"assert"[m | |
0016 > p32 EQ 0015 [0x416bd458] | |
0017 [28] [31mtab[m FLOAD 0014 tab.meta | |
0018 > [31mtab[m NE 0017 [31m[NULL][m | |
0019 [35mint[m FLOAD 0017 tab.hmask | |
0020 > [35mint[m EQ 0019 [35m+1 [m | |
0021 r13 p32 FLOAD 0017 tab.node | |
0022 > p32 HREFK 0021 [32m"__index"[m @1 | |
0023 r13 > [31mtab[m HLOAD 0022 | |
0024 [35mint[m FLOAD 0023 tab.hmask | |
0025 > [35mint[m EQ 0024 [35m+63 [m | |
0026 rsi p32 FLOAD 0023 tab.node | |
0027 > p32 HREFK 0026 [32m"assert"[m @3 | |
0028 > [1mfun[m HLOAD 0027 | |
0029 rdx p32 HREF 0014 [32m"type"[m | |
0030 > p32 EQ 0029 [0x416bd458] | |
0031 > p32 HREFK 0026 [32m"type"[m @60 | |
0032 > [1mfun[m HLOAD 0031 | |
0033 > [1mfun[m EQ 0032 [1mtype[m | |
0034 > [1mfun[m EQ 0028 [1massert[m | |
0035 [35mint[m FLOAD 0010 tab.asize | |
0036 > [35mint[m ABC 0035 [35m+4 [m | |
0037 r12 p32 FLOAD 0010 tab.array | |
0038 p32 AREF 0037 [35m+1 [m | |
0039 r13 > [32mstr[m ALOAD 0038 | |
.... SNAP #3 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0040 > [32mstr[m NE 0039 [32m"if"[m | |
.... SNAP #4 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0041 > [32mstr[m EQ 0039 [32m"let"[m | |
.... SNAP #5 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0042 p32 AREF 0037 [35m+2 [m | |
0043 [60] > [32mstr[m ALOAD 0042 | |
0044 p32 AREF 0037 [35m+3 [m | |
0045 [64] > [31mtab[m ALOAD 0044 | |
0046 p32 AREF 0037 [35m+4 [m | |
0047 r12 > [31mtab[m ALOAD 0046 | |
0048 rdx p32 HREF 0014 [32m"table"[m | |
0049 > p32 EQ 0048 [0x416bd458] | |
0050 > p32 HREFK 0026 [32m"table"[m @47 | |
0051 rsi > [31mtab[m HLOAD 0050 | |
0052 [35mint[m FLOAD 0051 tab.hmask | |
0053 > [35mint[m EQ 0052 [35m+7 [m | |
0054 rsi p32 FLOAD 0051 tab.node | |
0055 > p32 HREFK 0054 [32m"insert"[m @7 | |
0056 [54] > [1mfun[m HLOAD 0055 | |
0057 [35mint[m FLOAD 0011 tab.hmask | |
0058 > [35mint[m EQ 0057 [35m+3 [m | |
0059 rsi p32 FLOAD 0011 tab.node | |
0060 > p32 HREFK 0059 [32m"bindings"[m @2 | |
0061 [50] > [31mtab[m HLOAD 0060 | |
0062 [4c] > [31mtab[m TDUP [31m{0x40fe6af8}[m | |
0063 rax p32 FLOAD 0062 tab.node | |
0064 p32 HREFK 0063 [32m"name"[m @0 | |
0065 [32mstr[m HSTORE 0064 0043 | |
0066 p32 HREFK 0063 [32m"value"[m @1 | |
0067 [31mtab[m HSTORE 0066 0045 | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1m0056[m [31m0061[m [31m0062[m ] | |
0068 > [1mfun[m EQ 0056 [1mtable.insert[m | |
0069 rax [35mint[m CALLL lj_tab_len (0061) | |
0070 rax [35mint[m ADD 0069 [35m+1 [m | |
0071 [35mint[m FLOAD 0061 tab.asize | |
0072 > [35mint[m ULE 0071 0070 | |
0073 [35mint[m FLOAD 0061 tab.hmask | |
0074 > [35mint[m EQ 0073 [35m+0 [m | |
0075 [58] [34mnum[m CONV 0070 [34mnum[m.[35mint[m | |
0076 rcx p32 NEWREF 0061 0075 | |
0077 [31mtab[m HSTORE 0076 0062 | |
0078 nil TBAR 0061 | |
.... SNAP #7 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m ] | |
0079 rdi p32 HREF 0014 [32m"assert"[m | |
0080 > p32 EQ 0079 [0x416bd458] | |
0081 [35mint[m FLOAD 0017 tab.hmask | |
0082 > [35mint[m EQ 0081 [35m+1 [m | |
0083 rdi p32 FLOAD 0017 tab.node | |
0084 > p32 HREFK 0083 [32m"__index"[m @1 | |
0085 rdi > [31mtab[m HLOAD 0084 | |
0086 [35mint[m FLOAD 0085 tab.hmask | |
0087 > [35mint[m EQ 0086 [35m+63 [m | |
0088 rdi p32 FLOAD 0085 tab.node | |
0089 > p32 HREFK 0088 [32m"assert"[m @3 | |
0090 > [1mfun[m HLOAD 0089 | |
0091 rsi p32 HREF 0014 [32m"type"[m | |
0092 > p32 EQ 0091 [0x416bd458] | |
0093 > p32 HREFK 0088 [32m"type"[m @60 | |
0094 > [1mfun[m HLOAD 0093 | |
0095 > [1mfun[m EQ 0094 [1mtype[m | |
0096 > [1mfun[m EQ 0090 [1massert[m | |
0097 [35mint[m FLOAD 0047 tab.asize | |
0098 > [35mint[m ABC 0097 [35m+1 [m | |
0099 rdi p32 FLOAD 0047 tab.array | |
0100 p32 AREF 0099 [35m+1 [m | |
0101 [18] > [32mstr[m ALOAD 0100 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m ] | |
0102 > [32mstr[m EQ 0101 [32m"if"[m | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m ] | |
0103 [44] > p32 UREFO [1mssa.lua:39[m #0 | |
0104 xmm7 > [34mnum[m ULOAD 0103 | |
0105 [38] [34mnum[m ADD 0104 [34m+1 [m | |
0106 [34mnum[m USTORE 0103 0105 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [1mssa.lua:39[m|---- ] | |
0107 [32mstr[m TOSTR 0105 NUM | |
0108 rdi p32 BUFHDR [0x416bd414] RESET | |
0109 rdi p32 BUFPUT 0108 [32m"L" [m | |
0110 rdi p32 BUFPUT 0109 0107 | |
0111 [48] [32mstr[m BUFSTR 0110 0108 | |
0112 [c] > [31mtab[m TDUP [31m{0x40ff53c0}[m | |
0113 rdx > [31mtab[m TNEW #0 #0 | |
0114 rsi p32 FLOAD 0112 tab.node | |
0115 p32 HREFK 0114 [32m"bindings"[m @2 | |
0116 [31mtab[m HSTORE 0115 0113 | |
0117 p32 HREFK 0114 [32m"label"[m @3 | |
0118 [32mstr[m HSTORE 0117 0111 | |
.... SNAP #11 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [1mssa.lua:39[m|[32m0111[m [31m0112[m ---- ] | |
0119 rsi > p32 UREFO [1mssa.lua:39[m #1 | |
0120 [2c] > [31mtab[m ULOAD 0119 | |
0121 [35mint[m FLOAD 0120 tab.hmask | |
0122 > [35mint[m EQ 0121 [35m+1 [m | |
0123 rsi p32 FLOAD 0120 tab.node | |
0124 > p32 HREFK 0123 [32m"blocks"[m @0 | |
0125 [40] > [31mtab[m HLOAD 0124 | |
0126 rdx p32 HREF 0125 0111 | |
0127 > p32 EQ 0126 [0x416bd458] | |
0128 [31mtab[m FLOAD 0125 tab.meta | |
0129 > [31mtab[m EQ 0128 [31m[NULL][m | |
0130 rdx p32 NEWREF 0125 0111 | |
0131 [31mtab[m HSTORE 0130 0112 | |
0132 nil TBAR 0125 | |
0133 p32 FREF 0125 tab.nomm | |
0134 [35mu8 [m FSTORE 0133 [35m+0 [m | |
0135 [30] [34mnum[m ADD 0105 [34m+1 [m | |
0136 [34mnum[m USTORE 0103 0135 | |
.... SNAP #12 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [1mssa.lua:39[m|---- ] | |
0137 [32mstr[m TOSTR 0135 NUM | |
0138 rdi p32 BUFHDR [0x416bd414] RESET | |
0139 rdi p32 BUFPUT 0138 [32m"L" [m | |
0140 rdi p32 BUFPUT 0139 0137 | |
0141 [1c] [32mstr[m BUFSTR 0140 0138 | |
0142 [14] > [31mtab[m TDUP [31m{0x40ff53c0}[m | |
0143 rdx > [31mtab[m TNEW #0 #0 | |
0144 rax p32 FLOAD 0142 tab.node | |
0145 p32 HREFK 0144 [32m"bindings"[m @2 | |
0146 [31mtab[m HSTORE 0145 0143 | |
0147 p32 HREFK 0144 [32m"label"[m @3 | |
0148 [32mstr[m HSTORE 0147 0141 | |
.... SNAP #13 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [1mssa.lua:39[m|[32m0141[m [31m0142[m ---- ] | |
0149 [35mint[m FLOAD 0120 tab.hmask | |
0150 > [35mint[m EQ 0149 [35m+1 [m | |
0151 rsi p32 FLOAD 0120 tab.node | |
0152 > p32 HREFK 0151 [32m"blocks"[m @0 | |
0153 [24] > [31mtab[m HLOAD 0152 | |
0154 rdx p32 HREF 0153 0141 | |
0155 > p32 EQ 0154 [0x416bd458] | |
0156 [31mtab[m FLOAD 0153 tab.meta | |
0157 > [31mtab[m EQ 0156 [31m[NULL][m | |
0158 r11 p32 NEWREF 0153 0141 | |
0159 [31mtab[m HSTORE 0158 0142 | |
0160 nil TBAR 0153 | |
0161 p32 FREF 0153 tab.nomm | |
0162 [35mu8 [m FSTORE 0161 [35m+0 [m | |
.... SNAP #14 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [1mssa.lua:39[m|---- [31m0142[m ---- ] | |
0163 [35mint[m FLOAD 0047 tab.asize | |
0164 > [35mint[m ABC 0163 [35m+2 [m | |
0165 rdx p32 FLOAD 0047 tab.array | |
0166 p32 AREF 0165 [35m+2 [m | |
0167 [10] > [31mtab[m ALOAD 0166 | |
0168 rdx p32 HREF 0014 [32m"assert"[m | |
0169 > p32 EQ 0168 [0x416bd458] | |
0170 [35mint[m FLOAD 0017 tab.hmask | |
0171 > [35mint[m EQ 0170 [35m+1 [m | |
0172 rsi p32 FLOAD 0017 tab.node | |
0173 > p32 HREFK 0172 [32m"__index"[m @1 | |
0174 rsi > [31mtab[m HLOAD 0173 | |
0175 [35mint[m FLOAD 0174 tab.hmask | |
0176 > [35mint[m EQ 0175 [35m+63 [m | |
0177 rsi p32 FLOAD 0174 tab.node | |
0178 > p32 HREFK 0177 [32m"assert"[m @3 | |
0179 > [1mfun[m HLOAD 0178 | |
0180 rdx p32 HREF 0014 [32m"type"[m | |
0181 > p32 EQ 0180 [0x416bd458] | |
0182 > p32 HREFK 0177 [32m"type"[m @60 | |
0183 > [1mfun[m HLOAD 0182 | |
0184 > [1mfun[m EQ 0183 [1mtype[m | |
0185 > [1mfun[m EQ 0179 [1massert[m | |
0186 [35mint[m FLOAD 0167 tab.asize | |
0187 > [35mint[m ABC 0186 [35m+1 [m | |
0188 rsi p32 FLOAD 0167 tab.array | |
0189 p32 AREF 0188 [35m+1 [m | |
0190 [8] > [32mstr[m ALOAD 0189 | |
.... SNAP #15 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0191 > [32mstr[m NE 0190 [32m"if"[m | |
.... SNAP #16 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0192 > [32mstr[m NE 0190 [32m"let"[m | |
.... SNAP #17 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0193 > [32mstr[m NE 0190 [32m"true"[m | |
.... SNAP #18 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0194 > [32mstr[m NE 0190 [32m"false"[m | |
.... SNAP #19 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0195 > [32mstr[m NE 0190 [32m"match"[m | |
.... SNAP #20 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0196 > [32mstr[m NE 0190 [32m"fail"[m | |
.... SNAP #21 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m ] | |
0197 > p32 UREFC [1mssa.lua:55[m #4 | |
0198 rdx > [31mtab[m ULOAD 0197 | |
0199 rsi p32 HREF 0198 0190 | |
0200 > tru HLOAD 0199 | |
0201 r11 > [31mtab[m TDUP [31m{0x40fe9ad8}[m | |
0202 r8 p32 FLOAD 0201 tab.array | |
0203 p32 AREF 0202 [35m+2 [m | |
0204 [31mtab[m ASTORE 0203 0167 | |
.... SNAP #22 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m [1mssa.lua:49[m|[31m0011[m ---- [31m0112[m [31m0142[m [31m0201[m ] | |
0205 [35mint[m FLOAD 0112 tab.hmask | |
0206 > [35mint[m EQ 0205 [35m+3 [m | |
0207 r9 p32 FLOAD 0112 tab.node | |
0208 > p32 HREFK 0207 [32m"label"[m @3 | |
0209 r9 > [32mstr[m HLOAD 0208 | |
0210 p32 AREF 0202 [35m+3 [m | |
0211 [32mstr[m ASTORE 0210 0209 | |
0212 p32 AREF 0202 [35m+4 [m | |
0213 [32mstr[m ASTORE 0212 0141 | |
.... SNAP #23 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m [31m0011[m [31m0112[m [31m0142[m [32m0190[m [1mssa.lua:49[m|[31m0011[m ---- ---- ---- [31m0201[m ---- ] | |
0214 [35mint[m FLOAD 0011 tab.hmask | |
0215 > [35mint[m EQ 0214 [35m+3 [m | |
0216 r10 p32 FLOAD 0011 tab.node | |
0217 > p32 HREFK 0216 [32m"control"[m @1 | |
0218 [31mtab[m FLOAD 0011 tab.meta | |
0219 > [31mtab[m EQ 0218 [31m[NULL][m | |
0220 [31mtab[m HSTORE 0217 0201 | |
0221 nil TBAR 0011 | |
.... SNAP #24 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ---- ---- [31m0047[m [1mssa.lua:55[m|[31m0047[m [31m0011[m [31m0012[m [31m0013[m [32m0101[m [31m0112[m [31m0142[m [1mssa.lua:55[m|[31m0167[m ] | |
---- TRACE 9 mcode 2906 | |
0bcbdb13 mov eax, [0x416bd4b0] | |
0bcbdb1a mov eax, [rax+0x20] | |
0bcbdb1d sub eax, [0x416bd4b4] | |
0bcbdb24 cmp eax, 0xf0 | |
0bcbdb2a jb 0x0bcb0014 ->1 | |
0bcbdb30 add rsp, -0x50 | |
0bcbdb34 mov dword [0x416bd410], 0x9 | |
0bcbdb3f mov edi, [0x416bd3d8] | |
0bcbdb46 cmp edi, [0x416bd3dc] | |
0bcbdb4d jb 0x0bcbdb66 | |
0bcbdb4f mov esi, 0x8 | |
0bcbdb54 mov edi, 0x416bd3b8 | |
0bcbdb59 call 0x00421730 ->lj_gc_step_jit | |
0bcbdb5e test eax, eax | |
0bcbdb60 jnz 0x0bcb0010 ->0 | |
0bcbdb66 mov edi, [0x416bd4b0] | |
0bcbdb6d mov edx, [0x416bd4b4] | |
0bcbdb74 cmp dword [rdx-0x4], 0x40ff5de8 | |
0bcbdb7b jnz 0x0bcb0014 ->1 | |
0bcbdb81 add edx, -0x40 | |
0bcbdb84 mov [0x416bd4b4], edx | |
0bcbdb8b cmp dword [rdx-0x8], 0x416cd018 | |
0bcbdb92 jnz 0x0bcb0018 ->2 | |
0bcbdb98 cmp dword [rdx+0x4], -0x0c | |
0bcbdb9c jnz 0x0bcb0018 ->2 | |
0bcbdba2 mov ebp, [rdx] | |
0bcbdba4 cmp dword [rbp+0x18], +0x03 | |
0bcbdba8 jbe 0x0bcb0018 ->2 | |
0bcbdbae mov ebp, [rbp+0x8] | |
0bcbdbb1 cmp dword [rbp+0x1c], -0x0c | |
0bcbdbb5 jnz 0x0bcb0018 ->2 | |
0bcbdbbb mov ebp, [rbp+0x18] | |
0bcbdbbe cmp dword [rdx+0x2c], -0x0c | |
0bcbdbc2 jnz 0x0bcb0018 ->2 | |
0bcbdbc8 mov ebx, [rdx+0x28] | |
0bcbdbcb cmp dword [rdx+0x14], -0x0c | |
0bcbdbcf jnz 0x0bcb0018 ->2 | |
0bcbdbd5 mov r15d, [rdx+0x10] | |
0bcbdbd9 cmp dword [rdx+0x1c], -0x0c | |
0bcbdbdd jnz 0x0bcb0018 ->2 | |
0bcbdbe3 mov r14d, [rdx+0x18] | |
0bcbdbe7 mov eax, [0x416cd020] | |
0bcbdbee mov [rsp+0x20], eax | |
0bcbdbf2 mov esi, [rax+0x1c] | |
0bcbdbf5 and esi, 0xce2b6183 | |
0bcbdbfb lea esi, [rsi+rsi*2] | |
0bcbdbfe shl esi, 0x03 | |
0bcbdc01 add esi, [rax+0x14] | |
0bcbdc04 cmp dword [rsi+0xc], -0x05 | |
0bcbdc08 jnz 0x0bcbdc17 | |
0bcbdc0a cmp dword [rsi+0x8], 0x416bfdb0 | |
0bcbdc11 jz 0x0bcb0018 ->2 | |
0bcbdc17 mov esi, [rsi+0x10] | |
0bcbdc1a test esi, esi | |
0bcbdc1c jnz 0x0bcbdc04 | |
0bcbdc1e mov esi, [rax+0x10] | |
0bcbdc21 mov [rsp+0x28], esi | |
0bcbdc25 test esi, esi | |
0bcbdc27 jz 0x0bcb0018 ->2 | |
0bcbdc2d cmp dword [rsi+0x1c], +0x01 | |
0bcbdc31 jnz 0x0bcb0018 ->2 | |
0bcbdc37 mov r13d, [rsi+0x14] | |
0bcbdc3b mov rsi, 0xfffffffb416bf4c8 | |
0bcbdc45 cmp rsi, [r13+0x20] | |
0bcbdc49 jnz 0x0bcb0018 ->2 | |
0bcbdc4f cmp dword [r13+0x1c], -0x0c | |
0bcbdc54 jnz 0x0bcb0018 ->2 | |
0bcbdc5a mov r13d, [r13+0x18] | |
0bcbdc5e cmp dword [r13+0x1c], +0x3f | |
0bcbdc63 jnz 0x0bcb0018 ->2 | |
0bcbdc69 mov esi, [r13+0x14] | |
0bcbdc6d mov rdx, 0xfffffffb416bfdb0 | |
0bcbdc77 cmp rdx, [rsi+0x50] | |
0bcbdc7b jnz 0x0bcb0018 ->2 | |
0bcbdc81 cmp dword [rsi+0x4c], -0x09 | |
0bcbdc85 jnz 0x0bcb0018 ->2 | |
0bcbdc8b mov edx, [rax+0x1c] | |
0bcbdc8e and edx, 0x798a813c | |
0bcbdc94 lea edx, [rdx+rdx*2] | |
0bcbdc97 shl edx, 0x03 | |
0bcbdc9a add edx, [rax+0x14] | |
0bcbdc9d cmp dword [rdx+0xc], -0x05 | |
0bcbdca1 jnz 0x0bcbdcb0 | |
0bcbdca3 cmp dword [rdx+0x8], 0x416bffb0 | |
0bcbdcaa jz 0x0bcb0018 ->2 | |
0bcbdcb0 mov edx, [rdx+0x10] | |
0bcbdcb3 test edx, edx | |
0bcbdcb5 jnz 0x0bcbdc9d | |
0bcbdcb7 mov rdx, 0xfffffffb416bffb0 | |
0bcbdcc1 cmp rdx, [rsi+0x5a8] | |
0bcbdcc8 jnz 0x0bcb0018 ->2 | |
0bcbdcce cmp dword [rsi+0x5a4], -0x09 | |
0bcbdcd5 jnz 0x0bcb0018 ->2 | |
0bcbdcdb cmp dword [rsi+0x5a0], 0x416bff18 | |
0bcbdce5 jnz 0x0bcb0018 ->2 | |
0bcbdceb cmp dword [rsi+0x48], 0x416bfd88 | |
0bcbdcf2 jnz 0x0bcb0018 ->2 | |
0bcbdcf8 cmp dword [rbp+0x18], +0x04 | |
0bcbdcfc jbe 0x0bcb0018 ->2 | |
0bcbdd02 mov r12d, [rbp+0x8] | |
0bcbdd06 cmp dword [r12+0xc], -0x05 | |
0bcbdd0c jnz 0x0bcb0018 ->2 | |
0bcbdd12 mov r13d, [r12+0x8] | |
0bcbdd17 cmp r13d, 0x416bf8f8 | |
0bcbdd1e jz 0x0bcb001c ->3 | |
0bcbdd24 cmp r13d, 0x40fea3e8 | |
0bcbdd2b jnz 0x0bcb0020 ->4 | |
0bcbdd31 cmp dword [r12+0x14], -0x05 | |
0bcbdd37 jnz 0x0bcb0024 ->5 | |
0bcbdd3d mov ecx, [r12+0x10] | |
0bcbdd42 mov [rsp+0x60], ecx | |
0bcbdd46 cmp dword [r12+0x1c], -0x0c | |
0bcbdd4c jnz 0x0bcb0024 ->5 | |
0bcbdd52 mov edx, [r12+0x18] | |
0bcbdd57 mov [rsp+0x64], edx | |
0bcbdd5b cmp dword [r12+0x24], -0x0c | |
0bcbdd61 jnz 0x0bcb0024 ->5 | |
0bcbdd67 mov r12d, [r12+0x20] | |
0bcbdd6c mov edx, [rax+0x1c] | |
0bcbdd6f and edx, 0x7230fd67 | |
0bcbdd75 lea edx, [rdx+rdx*2] | |
0bcbdd78 shl edx, 0x03 | |
0bcbdd7b add edx, [rax+0x14] | |
0bcbdd7e cmp dword [rdx+0xc], -0x05 | |
0bcbdd82 jnz 0x0bcbdd91 | |
0bcbdd84 cmp dword [rdx+0x8], 0x416bfed8 | |
0bcbdd8b jz 0x0bcb0024 ->5 | |
0bcbdd91 mov edx, [rdx+0x10] | |
0bcbdd94 test edx, edx | |
0bcbdd96 jnz 0x0bcbdd7e | |
0bcbdd98 mov rdx, 0xfffffffb416bfed8 | |
0bcbdda2 cmp rdx, [rsi+0x470] | |
0bcbdda9 jnz 0x0bcb0024 ->5 | |
0bcbddaf cmp dword [rsi+0x46c], -0x0c | |
0bcbddb6 jnz 0x0bcb0024 ->5 | |
0bcbddbc mov esi, [rsi+0x468] | |
0bcbddc2 cmp dword [rsi+0x1c], +0x07 | |
0bcbddc6 jnz 0x0bcb0024 ->5 | |
0bcbddcc mov esi, [rsi+0x14] | |
0bcbddcf mov rdx, 0xfffffffb416c16d0 | |
0bcbddd9 cmp rdx, [rsi+0xb0] | |
0bcbdde0 jnz 0x0bcb0024 ->5 | |
0bcbdde6 cmp dword [rsi+0xac], -0x09 | |
0bcbdded jnz 0x0bcb0024 ->5 | |
0bcbddf3 mov edx, [rsi+0xa8] | |
0bcbddf9 mov [rsp+0x54], edx | |
0bcbddfd cmp dword [rbx+0x1c], +0x03 | |
0bcbde01 jnz 0x0bcb0024 ->5 | |
0bcbde07 mov esi, [rbx+0x14] | |
0bcbde0a mov rdx, 0xfffffffb40ff49d0 | |
0bcbde14 cmp rdx, [rsi+0x38] | |
0bcbde18 jnz 0x0bcb0024 ->5 | |
0bcbde1e cmp dword [rsi+0x34], -0x0c | |
0bcbde22 jnz 0x0bcb0024 ->5 | |
0bcbde28 mov esi, [rsi+0x30] | |
0bcbde2b mov [rsp+0x50], esi | |
0bcbde2f mov esi, 0x40fe6af8 | |
0bcbde34 call 0x004223c0 ->lj_tab_dup | |
0bcbde39 mov [rsp+0x4c], eax | |
0bcbde3d mov edi, [rsp+0x50] | |
0bcbde41 mov esi, [rsp+0x64] | |
0bcbde45 mov edx, [rsp+0x54] | |
0bcbde49 mov ecx, [rsp+0x60] | |
0bcbde4d mov eax, [rax+0x14] | |
0bcbde50 mov dword [rax+0x4], 0xfffffffb | |
0bcbde57 mov [rax], ecx | |
0bcbde59 mov dword [rax+0x1c], 0xfffffff4 | |
0bcbde60 mov [rax+0x18], esi | |
0bcbde63 cmp edx, 0x416c16a8 | |
0bcbde69 jnz 0x0bcb0028 ->6 | |
0bcbde6f call 0x00423150 ->lj_tab_len | |
0bcbde74 mov edi, [0x416bd4b0] | |
0bcbde7b mov esi, [rsp+0x50] | |
0bcbde7f add eax, +0x01 | |
0bcbde82 cmp eax, [rsi+0x18] | |
0bcbde85 jb 0x0bcb0028 ->6 | |
0bcbde8b cmp dword [rsi+0x1c], +0x00 | |
0bcbde8f jnz 0x0bcb0028 ->6 | |
0bcbde95 xorps xmm7, xmm7 | |
0bcbde98 cvtsi2sd xmm7, eax | |
0bcbde9c movsd [rsp+0x58], xmm7 | |
0bcbdea2 lea rdx, [rsp+0x58] | |
0bcbdea7 call 0x00422cf0 ->lj_tab_newkey | |
0bcbdeac mov ecx, eax | |
0bcbdeae mov edi, [rsp+0x50] | |
0bcbdeb2 mov esi, [rsp+0x28] | |
0bcbdeb6 mov edx, [rsp+0x4c] | |
0bcbdeba mov eax, [rsp+0x20] | |
0bcbdebe mov dword [rcx+0x4], 0xfffffff4 | |
0bcbdec5 mov [rcx], edx | |
0bcbdec7 test byte [rdi+0x4], 0x4 | |
0bcbdecb jz 0x0bcbdee2 | |
0bcbdecd and byte [rdi+0x4], 0xfb | |
0bcbded1 mov edx, [0x416bd3f4] | |
0bcbded8 mov [0x416bd3f4], edi | |
0bcbdedf mov [rdi+0xc], edx | |
0bcbdee2 mov edi, [rax+0x1c] | |
0bcbdee5 and edi, 0xce2b6183 | |
0bcbdeeb lea edi, [rdi+rdi*2] | |
0bcbdeee shl edi, 0x03 | |
0bcbdef1 add edi, [rax+0x14] | |
0bcbdef4 cmp dword [rdi+0xc], -0x05 | |
0bcbdef8 jnz 0x0bcbdf07 | |
0bcbdefa cmp dword [rdi+0x8], 0x416bfdb0 | |
0bcbdf01 jz 0x0bcb002c ->7 | |
0bcbdf07 mov edi, [rdi+0x10] | |
0bcbdf0a test edi, edi | |
0bcbdf0c jnz 0x0bcbdef4 | |
0bcbdf0e cmp dword [rsi+0x1c], +0x01 | |
0bcbdf12 jnz 0x0bcb002c ->7 | |
0bcbdf18 mov edi, [rsi+0x14] | |
0bcbdf1b mov rsi, 0xfffffffb416bf4c8 | |
0bcbdf25 cmp rsi, [rdi+0x20] | |
0bcbdf29 jnz 0x0bcb002c ->7 | |
0bcbdf2f cmp dword [rdi+0x1c], -0x0c | |
0bcbdf33 jnz 0x0bcb002c ->7 | |
0bcbdf39 mov edi, [rdi+0x18] | |
0bcbdf3c cmp dword [rdi+0x1c], +0x3f | |
0bcbdf40 jnz 0x0bcb002c ->7 | |
0bcbdf46 mov edi, [rdi+0x14] | |
0bcbdf49 mov rsi, 0xfffffffb416bfdb0 | |
0bcbdf53 cmp rsi, [rdi+0x50] | |
0bcbdf57 jnz 0x0bcb002c ->7 | |
0bcbdf5d cmp dword [rdi+0x4c], -0x09 | |
0bcbdf61 jnz 0x0bcb002c ->7 | |
0bcbdf67 mov esi, [rax+0x1c] | |
0bcbdf6a and esi, 0x798a813c | |
0bcbdf70 lea esi, [rsi+rsi*2] | |
0bcbdf73 shl esi, 0x03 | |
0bcbdf76 add esi, [rax+0x14] | |
0bcbdf79 cmp dword [rsi+0xc], -0x05 | |
0bcbdf7d jnz 0x0bcbdf8c | |
0bcbdf7f cmp dword [rsi+0x8], 0x416bffb0 | |
0bcbdf86 jz 0x0bcb002c ->7 | |
0bcbdf8c mov esi, [rsi+0x10] | |
0bcbdf8f test esi, esi | |
0bcbdf91 jnz 0x0bcbdf79 | |
0bcbdf93 mov rsi, 0xfffffffb416bffb0 | |
0bcbdf9d cmp rsi, [rdi+0x5a8] | |
0bcbdfa4 jnz 0x0bcb002c ->7 | |
0bcbdfaa cmp dword [rdi+0x5a4], -0x09 | |
0bcbdfb1 jnz 0x0bcb002c ->7 | |
0bcbdfb7 cmp dword [rdi+0x5a0], 0x416bff18 | |
0bcbdfc1 jnz 0x0bcb002c ->7 | |
0bcbdfc7 cmp dword [rdi+0x48], 0x416bfd88 | |
0bcbdfce jnz 0x0bcb002c ->7 | |
0bcbdfd4 cmp dword [r12+0x18], +0x01 | |
0bcbdfda jbe 0x0bcb002c ->7 | |
0bcbdfe0 mov edi, [r12+0x8] | |
0bcbdfe5 cmp dword [rdi+0xc], -0x05 | |
0bcbdfe9 jnz 0x0bcb002c ->7 | |
0bcbdfef mov esi, [rdi+0x8] | |
0bcbdff2 mov [rsp+0x18], esi | |
0bcbdff6 cmp dword [rdi+0x8], 0x416bf8f8 | |
0bcbdffd jnz 0x0bcb0030 ->8 | |
0bcbe003 mov edi, [0x40fea350] | |
0bcbe00a mov [rsp+0x44], edi | |
0bcbe00e cmp dword [rdi+0x4], 0xfffeffff | |
0bcbe015 jnb 0x0bcb0034 ->9 | |
0bcbe01b movsd xmm7, [rdi] | |
0bcbe01f addsd xmm7, [0x40fe3fc0] | |
0bcbe028 movsd [rsp+0x38], xmm7 | |
0bcbe02e movsd [rdi], xmm7 | |
0bcbe032 mov edi, 0x416bd414 | |
0bcbe037 mov esi, [rdi+0x8] | |
0bcbe03a mov [rdi], esi | |
0bcbe03c mov esi, 0x4c | |
0bcbe041 call 0x00421b60 ->lj_buf_putchar | |
0bcbe046 mov edi, eax | |
0bcbe048 lea rsi, [rsp+0x38] | |
0bcbe04d call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbe052 mov edi, eax | |
0bcbe054 call 0x00421ff0 ->lj_buf_tostr | |
0bcbe059 mov [rsp+0x48], eax | |
0bcbe05d mov edi, [0x416bd4b0] | |
0bcbe064 mov esi, 0x40ff53c0 | |
0bcbe069 call 0x004223c0 ->lj_tab_dup | |
0bcbe06e mov [rsp+0xc], eax | |
0bcbe072 mov edi, [0x416bd4b0] | |
0bcbe079 xor esi, esi | |
0bcbe07b call 0x00422350 ->lj_tab_new1 | |
0bcbe080 mov edx, eax | |
0bcbe082 mov edi, [0x416bd4b0] | |
0bcbe089 mov esi, [rsp+0xc] | |
0bcbe08d mov eax, [rsp+0x48] | |
0bcbe091 mov esi, [rsi+0x14] | |
0bcbe094 mov dword [rsi+0x34], 0xfffffff4 | |
0bcbe09b mov [rsi+0x30], edx | |
0bcbe09e mov dword [rsi+0x4c], 0xfffffffb | |
0bcbe0a5 mov [rsi+0x48], eax | |
0bcbe0a8 mov esi, [0x416d20c0] | |
0bcbe0af cmp dword [rsi+0x4], -0x0c | |
0bcbe0b3 jnz 0x0bcb003c ->11 | |
0bcbe0b9 mov esi, [rsi] | |
0bcbe0bb mov [rsp+0x2c], esi | |
0bcbe0bf cmp dword [rsi+0x1c], +0x01 | |
0bcbe0c3 jnz 0x0bcb003c ->11 | |
0bcbe0c9 mov esi, [rsi+0x14] | |
0bcbe0cc mov rdx, 0xfffffffb40ff4698 | |
0bcbe0d6 cmp rdx, [rsi+0x8] | |
0bcbe0da jnz 0x0bcb003c ->11 | |
0bcbe0e0 cmp dword [rsi+0x4], -0x0c | |
0bcbe0e4 jnz 0x0bcb003c ->11 | |
0bcbe0ea mov esi, [rsi] | |
0bcbe0ec mov [rsp+0x40], esi | |
0bcbe0f0 mov edx, [rsi+0x1c] | |
0bcbe0f3 and edx, [rax+0x8] | |
0bcbe0f6 lea edx, [rdx+rdx*2] | |
0bcbe0f9 shl edx, 0x03 | |
0bcbe0fc add edx, [rsi+0x14] | |
0bcbe0ff cmp dword [rdx+0xc], -0x05 | |
0bcbe103 jnz 0x0bcbe10e | |
0bcbe105 cmp eax, [rdx+0x8] | |
0bcbe108 jz 0x0bcb003c ->11 | |
0bcbe10e mov edx, [rdx+0x10] | |
0bcbe111 test edx, edx | |
0bcbe113 jnz 0x0bcbe0ff | |
0bcbe115 cmp dword [rsi+0x10], +0x00 | |
0bcbe119 jnz 0x0bcb003c ->11 | |
0bcbe11f mov edx, 0x416bd448 | |
0bcbe124 mov dword [rdx+0x4], 0xfffffffb | |
0bcbe12b mov [rdx], eax | |
0bcbe12d call 0x00422cf0 ->lj_tab_newkey | |
0bcbe132 mov edx, eax | |
0bcbe134 mov edi, [rsp+0x44] | |
0bcbe138 mov esi, [rsp+0x40] | |
0bcbe13c mov eax, [rsp+0xc] | |
0bcbe140 movsd xmm7, [rsp+0x38] | |
0bcbe146 mov dword [rdx+0x4], 0xfffffff4 | |
0bcbe14d mov [rdx], eax | |
0bcbe14f test byte [rsi+0x4], 0x4 | |
0bcbe153 jz 0x0bcbe16a | |
0bcbe155 and byte [rsi+0x4], 0xfb | |
0bcbe159 mov edx, [0x416bd3f4] | |
0bcbe160 mov [0x416bd3f4], esi | |
0bcbe167 mov [rsi+0xc], edx | |
0bcbe16a mov byte [rsi+0x6], 0x0 | |
0bcbe16e addsd xmm7, [0x40fe3fc0] | |
0bcbe177 movsd [rsp+0x30], xmm7 | |
0bcbe17d movsd [rdi], xmm7 | |
0bcbe181 mov edi, 0x416bd414 | |
0bcbe186 mov esi, [rdi+0x8] | |
0bcbe189 mov [rdi], esi | |
0bcbe18b mov esi, 0x4c | |
0bcbe190 call 0x00421b60 ->lj_buf_putchar | |
0bcbe195 mov edi, eax | |
0bcbe197 lea rsi, [rsp+0x30] | |
0bcbe19c call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbe1a1 mov edi, eax | |
0bcbe1a3 call 0x00421ff0 ->lj_buf_tostr | |
0bcbe1a8 mov [rsp+0x1c], eax | |
0bcbe1ac mov edi, [0x416bd4b0] | |
0bcbe1b3 mov esi, 0x40ff53c0 | |
0bcbe1b8 call 0x004223c0 ->lj_tab_dup | |
0bcbe1bd mov [rsp+0x14], eax | |
0bcbe1c1 mov edi, [0x416bd4b0] | |
0bcbe1c8 xor esi, esi | |
0bcbe1ca call 0x00422350 ->lj_tab_new1 | |
0bcbe1cf mov edx, eax | |
0bcbe1d1 mov r10d, [rsp+0x1c] | |
0bcbe1d6 mov edi, [0x416bd4b0] | |
0bcbe1dd mov esi, [rsp+0x2c] | |
0bcbe1e1 mov ecx, [rsp+0x14] | |
0bcbe1e5 mov eax, [rcx+0x14] | |
0bcbe1e8 mov dword [rax+0x34], 0xfffffff4 | |
0bcbe1ef mov [rax+0x30], edx | |
0bcbe1f2 mov dword [rax+0x4c], 0xfffffffb | |
0bcbe1f9 mov [rax+0x48], r10d | |
0bcbe1fd cmp dword [rsi+0x1c], +0x01 | |
0bcbe201 jnz 0x0bcb0044 ->13 | |
0bcbe207 mov esi, [rsi+0x14] | |
0bcbe20a mov rdx, 0xfffffffb40ff4698 | |
0bcbe214 cmp rdx, [rsi+0x8] | |
0bcbe218 jnz 0x0bcb0044 ->13 | |
0bcbe21e cmp dword [rsi+0x4], -0x0c | |
0bcbe222 jnz 0x0bcb0044 ->13 | |
0bcbe228 mov esi, [rsi] | |
0bcbe22a mov [rsp+0x24], esi | |
0bcbe22e mov edx, [rsi+0x1c] | |
0bcbe231 and edx, [r10+0x8] | |
0bcbe235 lea edx, [rdx+rdx*2] | |
0bcbe238 shl edx, 0x03 | |
0bcbe23b add edx, [rsi+0x14] | |
0bcbe23e cmp dword [rdx+0xc], -0x05 | |
0bcbe242 jnz 0x0bcbe24e | |
0bcbe244 cmp r10d, [rdx+0x8] | |
0bcbe248 jz 0x0bcb0044 ->13 | |
0bcbe24e mov edx, [rdx+0x10] | |
0bcbe251 test edx, edx | |
0bcbe253 jnz 0x0bcbe23e | |
0bcbe255 cmp dword [rsi+0x10], +0x00 | |
0bcbe259 jnz 0x0bcb0044 ->13 | |
0bcbe25f mov edx, 0x416bd448 | |
0bcbe264 mov dword [rdx+0x4], 0xfffffffb | |
0bcbe26b mov [rdx], r10d | |
0bcbe26e call 0x00422cf0 ->lj_tab_newkey | |
0bcbe273 mov r11d, eax | |
0bcbe276 mov edi, [0x416bd4b0] | |
0bcbe27d mov esi, [rsp+0x28] | |
0bcbe281 mov edx, [rsp+0x24] | |
0bcbe285 mov ecx, [rsp+0x14] | |
0bcbe289 mov eax, [rsp+0x20] | |
0bcbe28d mov dword [r11+0x4], 0xfffffff4 | |
0bcbe295 mov [r11], ecx | |
0bcbe298 test byte [rdx+0x4], 0x4 | |
0bcbe29c jz 0x0bcbe2b3 | |
0bcbe29e and byte [rdx+0x4], 0xfb | |
0bcbe2a2 mov ecx, [0x416bd3f4] | |
0bcbe2a9 mov [0x416bd3f4], edx | |
0bcbe2b0 mov [rdx+0xc], ecx | |
0bcbe2b3 mov byte [rdx+0x6], 0x0 | |
0bcbe2b7 cmp dword [r12+0x18], +0x02 | |
0bcbe2bd jbe 0x0bcb0048 ->14 | |
0bcbe2c3 mov edx, [r12+0x8] | |
0bcbe2c8 cmp dword [rdx+0x14], -0x0c | |
0bcbe2cc jnz 0x0bcb0048 ->14 | |
0bcbe2d2 mov ecx, [rdx+0x10] | |
0bcbe2d5 mov [rsp+0x10], ecx | |
0bcbe2d9 mov edx, [rax+0x1c] | |
0bcbe2dc and edx, 0xce2b6183 | |
0bcbe2e2 lea edx, [rdx+rdx*2] | |
0bcbe2e5 shl edx, 0x03 | |
0bcbe2e8 add edx, [rax+0x14] | |
0bcbe2eb cmp dword [rdx+0xc], -0x05 | |
0bcbe2ef jnz 0x0bcbe2fe | |
0bcbe2f1 cmp dword [rdx+0x8], 0x416bfdb0 | |
0bcbe2f8 jz 0x0bcb0048 ->14 | |
0bcbe2fe mov edx, [rdx+0x10] | |
0bcbe301 test edx, edx | |
0bcbe303 jnz 0x0bcbe2eb | |
0bcbe305 cmp dword [rsi+0x1c], +0x01 | |
0bcbe309 jnz 0x0bcb0048 ->14 | |
0bcbe30f mov esi, [rsi+0x14] | |
0bcbe312 mov rdx, 0xfffffffb416bf4c8 | |
0bcbe31c cmp rdx, [rsi+0x20] | |
0bcbe320 jnz 0x0bcb0048 ->14 | |
0bcbe326 cmp dword [rsi+0x1c], -0x0c | |
0bcbe32a jnz 0x0bcb0048 ->14 | |
0bcbe330 mov esi, [rsi+0x18] | |
0bcbe333 cmp dword [rsi+0x1c], +0x3f | |
0bcbe337 jnz 0x0bcb0048 ->14 | |
0bcbe33d mov esi, [rsi+0x14] | |
0bcbe340 mov rdx, 0xfffffffb416bfdb0 | |
0bcbe34a cmp rdx, [rsi+0x50] | |
0bcbe34e jnz 0x0bcb0048 ->14 | |
0bcbe354 cmp dword [rsi+0x4c], -0x09 | |
0bcbe358 jnz 0x0bcb0048 ->14 | |
0bcbe35e mov edx, [rax+0x1c] | |
0bcbe361 and edx, 0x798a813c | |
0bcbe367 lea edx, [rdx+rdx*2] | |
0bcbe36a shl edx, 0x03 | |
0bcbe36d add edx, [rax+0x14] | |
0bcbe370 cmp dword [rdx+0xc], -0x05 | |
0bcbe374 jnz 0x0bcbe383 | |
0bcbe376 cmp dword [rdx+0x8], 0x416bffb0 | |
0bcbe37d jz 0x0bcb0048 ->14 | |
0bcbe383 mov edx, [rdx+0x10] | |
0bcbe386 test edx, edx | |
0bcbe388 jnz 0x0bcbe370 | |
0bcbe38a mov rdx, 0xfffffffb416bffb0 | |
0bcbe394 cmp rdx, [rsi+0x5a8] | |
0bcbe39b jnz 0x0bcb0048 ->14 | |
0bcbe3a1 cmp dword [rsi+0x5a4], -0x09 | |
0bcbe3a8 jnz 0x0bcb0048 ->14 | |
0bcbe3ae cmp dword [rsi+0x5a0], 0x416bff18 | |
0bcbe3b8 jnz 0x0bcb0048 ->14 | |
0bcbe3be cmp dword [rsi+0x48], 0x416bfd88 | |
0bcbe3c5 jnz 0x0bcb0048 ->14 | |
0bcbe3cb cmp dword [rcx+0x18], +0x01 | |
0bcbe3cf jbe 0x0bcb0048 ->14 | |
0bcbe3d5 mov esi, [rcx+0x8] | |
0bcbe3d8 cmp dword [rsi+0xc], -0x05 | |
0bcbe3dc jnz 0x0bcb0048 ->14 | |
0bcbe3e2 mov r9d, [rsi+0x8] | |
0bcbe3e6 mov [rsp+0x8], r9d | |
0bcbe3eb cmp r9d, 0x416bf8f8 | |
0bcbe3f2 jz 0x0bcb004c ->15 | |
0bcbe3f8 cmp r9d, 0x40fea3e8 | |
0bcbe3ff jz 0x0bcb0050 ->16 | |
0bcbe405 cmp r9d, 0x416bfa18 | |
0bcbe40c jz 0x0bcb0054 ->17 | |
0bcbe412 cmp r9d, 0x416bf870 | |
0bcbe419 jz 0x0bcb0058 ->18 | |
0bcbe41f cmp r9d, 0x416c2cb0 | |
0bcbe426 jz 0x0bcb005c ->19 | |
0bcbe42c cmp r9d, 0x416d1ce0 | |
0bcbe433 jz 0x0bcb0060 ->20 | |
0bcbe439 cmp dword [0x416d21c4], -0x0c | |
0bcbe441 jnz 0x0bcb0064 ->21 | |
0bcbe447 mov edx, [0x416d21c0] | |
0bcbe44e mov esi, [rdx+0x1c] | |
0bcbe451 and esi, [r9+0x8] | |
0bcbe455 lea esi, [rsi+rsi*2] | |
0bcbe458 shl esi, 0x03 | |
0bcbe45b add esi, [rdx+0x14] | |
0bcbe45e cmp dword [rsi+0xc], -0x05 | |
0bcbe462 jnz 0x0bcbe46a | |
0bcbe464 cmp r9d, [rsi+0x8] | |
0bcbe468 jz 0x0bcbe476 | |
0bcbe46a mov esi, [rsi+0x10] | |
0bcbe46d test esi, esi | |
0bcbe46f jnz 0x0bcbe45e | |
0bcbe471 mov esi, 0x416bd458 | |
0bcbe476 cmp dword [rsi+0x4], -0x03 | |
0bcbe47a jnz 0x0bcb0064 ->21 | |
0bcbe480 mov esi, 0x40fe9ad8 | |
0bcbe485 call 0x004223c0 ->lj_tab_dup | |
0bcbe48a mov r11d, eax | |
0bcbe48d mov r10d, [rsp+0x1c] | |
0bcbe492 mov edi, [rsp+0x18] | |
0bcbe496 mov esi, [rsp+0x14] | |
0bcbe49a mov ecx, [rsp+0x10] | |
0bcbe49e mov eax, [rsp+0xc] | |
0bcbe4a2 mov r8d, [r11+0x8] | |
0bcbe4a6 mov dword [r8+0x14], 0xfffffff4 | |
0bcbe4ae mov [r8+0x10], ecx | |
0bcbe4b2 cmp dword [rax+0x1c], +0x03 | |
0bcbe4b6 jnz 0x0bcb0068 ->22 | |
0bcbe4bc mov r9d, [rax+0x14] | |
0bcbe4c0 mov rdx, 0xfffffffb40ff4738 | |
0bcbe4ca cmp rdx, [r9+0x50] | |
0bcbe4ce mov edx, [0x416bd4b4] | |
0bcbe4d5 jnz 0x0bcb0068 ->22 | |
0bcbe4db cmp dword [r9+0x4c], -0x05 | |
0bcbe4e0 jnz 0x0bcb0068 ->22 | |
0bcbe4e6 mov r9d, [r9+0x48] | |
0bcbe4ea mov dword [r8+0x1c], 0xfffffffb | |
0bcbe4f2 mov [r8+0x18], r9d | |
0bcbe4f6 mov dword [r8+0x24], 0xfffffffb | |
0bcbe4fe mov [r8+0x20], r10d | |
0bcbe502 cmp dword [rbx+0x1c], +0x03 | |
0bcbe506 jnz 0x0bcb006c ->23 | |
0bcbe50c mov r10d, [rbx+0x14] | |
0bcbe510 mov r8, 0xfffffffb40ff4ea0 | |
0bcbe51a cmp r8, [r10+0x20] | |
0bcbe51e jnz 0x0bcb006c ->23 | |
0bcbe524 cmp dword [rbx+0x10], +0x00 | |
0bcbe528 jnz 0x0bcb006c ->23 | |
0bcbe52e mov dword [r10+0x1c], 0xfffffff4 | |
0bcbe536 mov [r10+0x18], r11d | |
0bcbe53a test byte [rbx+0x4], 0x4 | |
0bcbe53e jz 0x0bcbe557 | |
0bcbe540 and byte [rbx+0x4], 0xfb | |
0bcbe544 mov r11d, [0x416bd3f4] | |
0bcbe54c mov [0x416bd3f4], ebx | |
0bcbe553 mov [rbx+0xc], r11d | |
0bcbe557 mov dword [rdx+0xcc], 0xfffffff4 | |
0bcbe561 mov [rdx+0xc8], ecx | |
0bcbe567 mov dword [rdx+0xc4], 0x40ff5de8 | |
0bcbe571 mov dword [rdx+0xc0], 0x416cd018 | |
0bcbe57b mov dword [rdx+0xbc], 0xfffffff4 | |
0bcbe585 mov [rdx+0xb8], esi | |
0bcbe58b mov dword [rdx+0xb4], 0xfffffff4 | |
0bcbe595 mov [rdx+0xb0], eax | |
0bcbe59b mov dword [rdx+0xac], 0xfffffffb | |
0bcbe5a5 mov [rdx+0xa8], edi | |
0bcbe5ab mov dword [rdx+0xa4], 0xfffffff4 | |
0bcbe5b5 mov [rdx+0xa0], r14d | |
0bcbe5bc mov dword [rdx+0x9c], 0xfffffff4 | |
0bcbe5c6 mov [rdx+0x98], r15d | |
0bcbe5cd mov dword [rdx+0x94], 0xfffffff4 | |
0bcbe5d7 mov [rdx+0x90], ebx | |
0bcbe5dd mov dword [rdx+0x8c], 0xfffffff4 | |
0bcbe5e7 mov [rdx+0x88], r12d | |
0bcbe5ee mov dword [rdx+0x84], 0x40ff5e64 | |
0bcbe5f8 mov dword [rdx+0x80], 0x416cd018 | |
0bcbe602 mov dword [rdx+0x7c], 0xfffffff4 | |
0bcbe609 mov [rdx+0x78], r12d | |
0bcbe60d mov dword [rdx+0x64], 0xfffffffb | |
0bcbe614 mov [rdx+0x60], r13d | |
0bcbe618 mov dword [rdx+0x5c], 0xfffffff4 | |
0bcbe61f mov [rdx+0x58], r14d | |
0bcbe623 mov dword [rdx+0x54], 0xfffffff4 | |
0bcbe62a mov [rdx+0x50], r15d | |
0bcbe62e mov dword [rdx+0x4c], 0xfffffff4 | |
0bcbe635 mov [rdx+0x48], ebx | |
0bcbe638 mov dword [rdx+0x44], 0xfffffff4 | |
0bcbe63f mov [rdx+0x40], ebp | |
0bcbe642 mov dword [rdx+0x3c], 0x40ff5e00 | |
0bcbe649 mov dword [rdx+0x38], 0x416cd018 | |
0bcbe650 mov dword [rdx-0x8], 0x416cd018 | |
0bcbe657 add edx, 0xc8 | |
0bcbe65d mov [0x416bd4b4], edx | |
0bcbe664 add rsp, +0x60 | |
0bcbe668 jmp 0x0bcbf398 | |
---- TRACE 9 stop -> 4 | |
---- TRACE 9 exit 4 | |
---- TRACE 8 exit 1 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 9 exit 1 | |
---- TRACE 4 exit 6 | |
---- TRACE 5 exit 1 | |
---- TRACE 9 exit 1 | |
---- TRACE 4 exit 7 | |
---- TRACE 3 exit 0 | |
---- TRACE 10 start 3/0 ssa.lua:53 | |
0001 TDUP 2 1 | |
0002 TGETS 3 1 2 ; "label" | |
0003 TSETB 3 2 2 | |
0004 TSETS 2 0 0 ; "control" | |
0005 RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 JLOOP 1 4 | |
---- TRACE 10 IR | |
.... SNAP #0 [ ---- ---- ---- ] | |
0001 rax > [31mtab[m TDUP [31m{0x40fe38f0}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 [35mint[m FLOAD 0002 tab.hmask | |
0004 > [35mint[m EQ 0003 [35m+3 [m | |
0005 rbx p32 FLOAD 0002 tab.node | |
0006 > p32 HREFK 0005 [32m"label"[m @3 | |
0007 > nil HLOAD 0006 | |
0008 [31mtab[m FLOAD 0002 tab.meta | |
0009 > [31mtab[m EQ 0008 [31m[NULL][m | |
0010 rbp p32 FLOAD 0001 tab.array | |
0011 p32 AREF 0010 [35m+2 [m | |
0012 nil ASTORE 0011 nil | |
.... SNAP #1 [ ---- ---- ---- [31m0001[m ---- ] | |
0013 rbp > [31mtab[m SLOAD #1 T | |
0014 [35mint[m FLOAD 0013 tab.hmask | |
0015 > [35mint[m EQ 0014 [35m+3 [m | |
0016 rbx p32 FLOAD 0013 tab.node | |
0017 > p32 HREFK 0016 [32m"control"[m @1 | |
0018 [31mtab[m FLOAD 0013 tab.meta | |
0019 > [31mtab[m EQ 0018 [31m[NULL][m | |
0020 [31mtab[m HSTORE 0017 0001 | |
0021 nil TBAR 0013 | |
.... SNAP #2 [ ---- ---- ---- ---- ---- ] | |
0022 > p32 RETF proto: 0x40ff5d48 [0x40ff5e9c] | |
.... SNAP #3 [ ---- ---- ] | |
---- TRACE 10 mcode 296 | |
0bcbd9e4 mov eax, [0x416bd4b0] | |
0bcbd9eb mov eax, [rax+0x20] | |
0bcbd9ee sub eax, [0x416bd4b4] | |
0bcbd9f5 cmp eax, +0x38 | |
0bcbd9f8 jb 0x0bcb0010 ->0 | |
0bcbd9fe mov dword [0x416bd410], 0xa | |
0bcbda09 mov edi, [0x416bd3d8] | |
0bcbda10 cmp edi, [0x416bd3dc] | |
0bcbda17 jb 0x0bcbda30 | |
0bcbda19 mov esi, 0x1 | |
0bcbda1e mov edi, 0x416bd3b8 | |
0bcbda23 call 0x00421730 ->lj_gc_step_jit | |
0bcbda28 test eax, eax | |
0bcbda2a jnz 0x0bcb0010 ->0 | |
0bcbda30 mov edi, [0x416bd4b0] | |
0bcbda37 mov esi, 0x40fe38f0 | |
0bcbda3c call 0x004223c0 ->lj_tab_dup | |
0bcbda41 mov edx, [0x416bd4b4] | |
0bcbda48 cmp dword [rdx+0xc], -0x0c | |
0bcbda4c jnz 0x0bcb0010 ->0 | |
0bcbda52 mov ebp, [rdx+0x8] | |
0bcbda55 cmp dword [rbp+0x1c], +0x03 | |
0bcbda59 jnz 0x0bcb0010 ->0 | |
0bcbda5f mov ebx, [rbp+0x14] | |
0bcbda62 mov rdi, 0xfffffffb40ff4738 | |
0bcbda6c cmp rdi, [rbx+0x50] | |
0bcbda70 jnz 0x0bcb0010 ->0 | |
0bcbda76 cmp dword [rbx+0x4c], -0x01 | |
0bcbda7a jnz 0x0bcb0010 ->0 | |
0bcbda80 cmp dword [rbp+0x10], +0x00 | |
0bcbda84 jnz 0x0bcb0010 ->0 | |
0bcbda8a mov ebp, [rax+0x8] | |
0bcbda8d mov dword [rbp+0x14], 0xffffffff | |
0bcbda94 cmp dword [rdx+0x4], -0x0c | |
0bcbda98 jnz 0x0bcb0014 ->1 | |
0bcbda9e mov ebp, [rdx] | |
0bcbdaa0 cmp dword [rbp+0x1c], +0x03 | |
0bcbdaa4 jnz 0x0bcb0014 ->1 | |
0bcbdaaa mov ebx, [rbp+0x14] | |
0bcbdaad mov rdi, 0xfffffffb40ff4ea0 | |
0bcbdab7 cmp rdi, [rbx+0x20] | |
0bcbdabb jnz 0x0bcb0014 ->1 | |
0bcbdac1 cmp dword [rbp+0x10], +0x00 | |
0bcbdac5 jnz 0x0bcb0014 ->1 | |
0bcbdacb mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbdad2 mov [rbx+0x18], eax | |
0bcbdad5 test byte [rbp+0x4], 0x4 | |
0bcbdad9 jz 0x0bcbdaf0 | |
0bcbdadb and byte [rbp+0x4], 0xfb | |
0bcbdadf mov edi, [0x416bd3f4] | |
0bcbdae6 mov [0x416bd3f4], ebp | |
0bcbdaed mov [rbp+0xc], edi | |
0bcbdaf0 cmp dword [rdx-0x4], 0x40ff5e9c | |
0bcbdaf7 jnz 0x0bcb0018 ->2 | |
0bcbdafd add edx, -0x30 | |
0bcbdb00 mov [0x416bd4b4], edx | |
0bcbdb07 jmp 0x0bcbf398 | |
---- TRACE 10 stop -> 4 | |
---- TRACE 4 exit 7 | |
---- TRACE 9 exit 1 | |
---- TRACE 4 exit 3 | |
---- TRACE 2 exit 8 | |
---- TRACE 9 exit 5 |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x41d65414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x41d69148}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x41d65458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x41d65410], 0x1 | |
0bcbfe53 mov edi, [0x41d653d8] | |
0bcbfe5a cmp edi, [0x41d653dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x41d653b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x41d654b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x41879ee8] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x41d65414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x41d654b0] | |
0bcbfee0 mov esi, 0x41d69148 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x41d654b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x41d654b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb41884340 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x41d65448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x41d654b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x41d653f4] | |
0bcbffcf mov [0x41d653f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x41885018 | |
0bcbffee mov r14d, 0x41d66008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0058 . UGET 5 2 ; finish_goto | |
0059 . MOV 6 1 | |
0060 . MOV 7 2 | |
0061 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0062 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . FUNCF 13 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . FUNCF 13 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0014 . . UGET 5 0 ; add_block | |
0015 . . CALL 5 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0016 . . UGET 6 0 ; add_block | |
0017 . . CALL 6 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0018 . . UGET 7 1 ; compile_bool | |
0019 . . TGETB 8 0 2 | |
0020 . . MOV 9 1 | |
0021 . . MOV 10 5 | |
0022 . . MOV 11 6 | |
0023 . . CALL 7 1 5 | |
0000 . . . FUNCF 13 ; ssa.lua:55 | |
---- TRACE 2 abort ssa.lua:56 -- retry recording | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0070 ISNES 4 12 ; "match" | |
0071 JMP 5 => 0077 | |
0077 ISNES 4 14 ; "fail" | |
0078 JMP 5 => 0084 | |
0084 GGET 5 0 ; "assert" | |
0085 UGET 6 4 ; relops | |
0086 TGETV 6 6 4 | |
0087 CALL 5 1 2 | |
0000 . FUNCC ; assert | |
0088 UGET 5 5 ; finish_if | |
0089 MOV 6 1 | |
0090 MOV 7 0 | |
0091 MOV 8 2 | |
0092 MOV 9 3 | |
0093 CALL 5 1 5 | |
0000 . FUNCF 6 ; ssa.lua:49 | |
0001 . TDUP 4 1 | |
0002 . TSETB 1 4 2 | |
0003 . TGETS 5 2 2 ; "label" | |
0004 . TSETB 5 4 3 | |
0005 . TGETS 5 3 2 ; "label" | |
0006 . TSETB 5 4 4 | |
0007 . TSETS 4 0 0 ; "control" | |
0008 . RET0 0 1 | |
0094 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x41d65458] | |
0005 r15 [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 r15 p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 r15 > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 r15 p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x41d65458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 rbx > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 r15 p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 r15 > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m NE 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [32mstr[m NE 0028 [32m"match"[m | |
.... SNAP #6 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0034 > [32mstr[m NE 0028 [32m"fail"[m | |
.... SNAP #7 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0035 r14 > p32 UREFC 0001 #4 | |
0036 r13 > [31mtab[m ULOAD 0035 | |
0037 r14 p32 HREF 0036 0028 | |
0038 > tru HLOAD 0037 | |
0039 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0040 rbp > [31mtab[m SLOAD #2 T | |
0041 r12 > [31mtab[m SLOAD #3 T | |
0042 r13 > [31mtab[m SLOAD #4 T | |
0043 rax > [31mtab[m TDUP [31m{0x41878918}[m | |
0044 r14 p32 FLOAD 0043 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 [31mtab[m ASTORE 0045 0021 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- [31m0041[m [31m0042[m [31m0043[m ] | |
0047 [35mint[m FLOAD 0041 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+1 [m | |
0049 rbx p32 FLOAD 0041 tab.node | |
0050 > p32 HREFK 0049 [32m"label"[m @1 | |
0051 rbx > [32mstr[m HLOAD 0050 | |
0052 p32 AREF 0044 [35m+3 [m | |
0053 [32mstr[m ASTORE 0052 0051 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- [31m0042[m [31m0043[m ---- ] | |
0054 [35mint[m FLOAD 0042 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 rbx p32 FLOAD 0042 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 rbx > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0044 [35m+4 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- ---- [31m0043[m ---- ] | |
0061 [35mint[m FLOAD 0040 tab.hmask | |
0062 > [35mint[m EQ 0061 [35m+3 [m | |
0063 rbx p32 FLOAD 0040 tab.node | |
0064 > p32 HREFK 0063 [32m"control"[m @1 | |
0065 [31mtab[m FLOAD 0040 tab.meta | |
0066 > [31mtab[m EQ 0065 [31m[NULL][m | |
0067 [31mtab[m HSTORE 0064 0043 | |
0068 nil TBAR 0040 | |
.... SNAP #11 [ [1mssa.lua:55[m|] | |
---- TRACE 2 mcode 878 | |
0bcbfacf mov dword [0x41d65410], 0x2 | |
0bcbfada mov edi, [0x41d653d8] | |
0bcbfae1 cmp edi, [0x41d653dc] | |
0bcbfae8 jb 0x0bcbfb01 | |
0bcbfaea mov esi, 0x1 | |
0bcbfaef mov edi, 0x41d653b8 | |
0bcbfaf4 call 0x00421730 ->lj_gc_step_jit | |
0bcbfaf9 test eax, eax | |
0bcbfafb jnz 0x0bcb0010 ->0 | |
0bcbfb01 mov edi, [0x41d654b0] | |
0bcbfb08 mov edx, [0x41d654b4] | |
0bcbfb0f mov ebp, [rdx-0x8] | |
0bcbfb12 mov ebx, [rbp+0x8] | |
0bcbfb15 mov esi, [rbx+0x1c] | |
0bcbfb18 and esi, 0xce2b6183 | |
0bcbfb1e lea esi, [rsi+rsi*2] | |
0bcbfb21 shl esi, 0x03 | |
0bcbfb24 add esi, [rbx+0x14] | |
0bcbfb27 cmp dword [rsi+0xc], -0x05 | |
0bcbfb2b jnz 0x0bcbfb3a | |
0bcbfb2d cmp dword [rsi+0x8], 0x41d67db0 | |
0bcbfb34 jz 0x0bcb0010 ->0 | |
0bcbfb3a mov esi, [rsi+0x10] | |
0bcbfb3d test esi, esi | |
0bcbfb3f jnz 0x0bcbfb27 | |
0bcbfb41 mov r15d, [rbx+0x10] | |
0bcbfb45 test r15d, r15d | |
0bcbfb48 jz 0x0bcb0010 ->0 | |
0bcbfb4e cmp dword [r15+0x1c], +0x01 | |
0bcbfb53 jnz 0x0bcb0010 ->0 | |
0bcbfb59 mov r15d, [r15+0x14] | |
0bcbfb5d mov rsi, 0xfffffffb41d674c8 | |
0bcbfb67 cmp rsi, [r15+0x20] | |
0bcbfb6b jnz 0x0bcb0010 ->0 | |
0bcbfb71 cmp dword [r15+0x1c], -0x0c | |
0bcbfb76 jnz 0x0bcb0010 ->0 | |
0bcbfb7c mov r15d, [r15+0x18] | |
0bcbfb80 cmp dword [r15+0x1c], +0x3f | |
0bcbfb85 jnz 0x0bcb0010 ->0 | |
0bcbfb8b mov r15d, [r15+0x14] | |
0bcbfb8f mov rsi, 0xfffffffb41d67db0 | |
0bcbfb99 cmp rsi, [r15+0x50] | |
0bcbfb9d jnz 0x0bcb0010 ->0 | |
0bcbfba3 cmp dword [r15+0x4c], -0x09 | |
0bcbfba8 jnz 0x0bcb0010 ->0 | |
0bcbfbae mov esi, [rbx+0x1c] | |
0bcbfbb1 and esi, 0x798a813c | |
0bcbfbb7 lea esi, [rsi+rsi*2] | |
0bcbfbba shl esi, 0x03 | |
0bcbfbbd add esi, [rbx+0x14] | |
0bcbfbc0 cmp dword [rsi+0xc], -0x05 | |
0bcbfbc4 jnz 0x0bcbfbd3 | |
0bcbfbc6 cmp dword [rsi+0x8], 0x41d67fb0 | |
0bcbfbcd jz 0x0bcb0010 ->0 | |
0bcbfbd3 mov esi, [rsi+0x10] | |
0bcbfbd6 test esi, esi | |
0bcbfbd8 jnz 0x0bcbfbc0 | |
0bcbfbda mov rsi, 0xfffffffb41d67fb0 | |
0bcbfbe4 cmp rsi, [r15+0x5a8] | |
0bcbfbeb jnz 0x0bcb0010 ->0 | |
0bcbfbf1 cmp dword [r15+0x5a4], -0x09 | |
0bcbfbf9 jnz 0x0bcb0010 ->0 | |
0bcbfbff cmp dword [rdx+0x4], -0x0c | |
0bcbfc03 jnz 0x0bcb0010 ->0 | |
0bcbfc09 mov ebx, [rdx] | |
0bcbfc0b cmp dword [r15+0x5a0], 0x41d67f18 | |
0bcbfc16 jnz 0x0bcb0010 ->0 | |
0bcbfc1c cmp dword [r15+0x48], 0x41d67d88 | |
0bcbfc24 jnz 0x0bcb0010 ->0 | |
0bcbfc2a cmp dword [rbx+0x18], +0x01 | |
0bcbfc2e jbe 0x0bcb0010 ->0 | |
0bcbfc34 mov r15d, [rbx+0x8] | |
0bcbfc38 cmp dword [r15+0xc], -0x05 | |
0bcbfc3d jnz 0x0bcb0010 ->0 | |
0bcbfc43 mov r15d, [r15+0x8] | |
0bcbfc47 cmp r15d, 0x41d678f8 | |
0bcbfc4e jz 0x0bcb0014 ->1 | |
0bcbfc54 cmp r15d, 0x41d826b8 | |
0bcbfc5b jz 0x0bcb0018 ->2 | |
0bcbfc61 cmp r15d, 0x41d67a18 | |
0bcbfc68 jz 0x0bcb001c ->3 | |
0bcbfc6e cmp r15d, 0x41d67870 | |
0bcbfc75 jz 0x0bcb0020 ->4 | |
0bcbfc7b cmp r15d, 0x41d6acb0 | |
0bcbfc82 jz 0x0bcb0024 ->5 | |
0bcbfc88 cmp r15d, 0x41d822b8 | |
0bcbfc8f jz 0x0bcb0028 ->6 | |
0bcbfc95 mov esi, [rbp+0x24] | |
0bcbfc98 cmp byte [rsi+0x6], 0x1 | |
0bcbfc9c jnz 0x0bcb002c ->7 | |
0bcbfca2 lea r14d, [rsi+0x8] | |
0bcbfca6 cmp dword [r14+0x4], -0x0c | |
0bcbfcab jnz 0x0bcb002c ->7 | |
0bcbfcb1 mov r13d, [r14] | |
0bcbfcb4 mov r14d, [r13+0x1c] | |
0bcbfcb8 and r14d, [r15+0x8] | |
0bcbfcbc lea r14d, [r14+r14*2] | |
0bcbfcc0 shl r14d, 0x03 | |
0bcbfcc4 add r14d, [r13+0x14] | |
0bcbfcc8 cmp dword [r14+0xc], -0x05 | |
0bcbfccd jnz 0x0bcbfcd5 | |
0bcbfccf cmp r15d, [r14+0x8] | |
0bcbfcd3 jz 0x0bcbfce4 | |
0bcbfcd5 mov r14d, [r14+0x10] | |
0bcbfcd9 test r14d, r14d | |
0bcbfcdc jnz 0x0bcbfcc8 | |
0bcbfcde mov r14d, 0x41d65458 | |
0bcbfce4 cmp dword [r14+0x4], -0x03 | |
0bcbfce9 jnz 0x0bcb002c ->7 | |
0bcbfcef cmp ebp, 0x41879a00 | |
0bcbfcf5 jnz 0x0bcb002c ->7 | |
0bcbfcfb cmp dword [rdx+0xc], -0x0c | |
0bcbfcff jnz 0x0bcb002c ->7 | |
0bcbfd05 mov ebp, [rdx+0x8] | |
0bcbfd08 cmp dword [rdx+0x14], -0x0c | |
0bcbfd0c jnz 0x0bcb002c ->7 | |
0bcbfd12 mov r12d, [rdx+0x10] | |
0bcbfd16 cmp dword [rdx+0x1c], -0x0c | |
0bcbfd1a jnz 0x0bcb002c ->7 | |
0bcbfd20 mov r13d, [rdx+0x18] | |
0bcbfd24 mov esi, 0x41878918 | |
0bcbfd29 call 0x004223c0 ->lj_tab_dup | |
0bcbfd2e mov edx, [0x41d654b4] | |
0bcbfd35 mov r14d, [rax+0x8] | |
0bcbfd39 mov dword [r14+0x14], 0xfffffff4 | |
0bcbfd41 mov [r14+0x10], ebx | |
0bcbfd45 cmp dword [r12+0x1c], +0x01 | |
0bcbfd4b jnz 0x0bcb0030 ->8 | |
0bcbfd51 mov ebx, [r12+0x14] | |
0bcbfd56 mov rdi, 0xfffffffb418843e0 | |
0bcbfd60 cmp rdi, [rbx+0x20] | |
0bcbfd64 jnz 0x0bcb0030 ->8 | |
0bcbfd6a cmp dword [rbx+0x1c], -0x05 | |
0bcbfd6e jnz 0x0bcb0030 ->8 | |
0bcbfd74 mov ebx, [rbx+0x18] | |
0bcbfd77 mov dword [r14+0x1c], 0xfffffffb | |
0bcbfd7f mov [r14+0x18], ebx | |
0bcbfd83 cmp dword [r13+0x1c], +0x01 | |
0bcbfd88 jnz 0x0bcb0034 ->9 | |
0bcbfd8e mov ebx, [r13+0x14] | |
0bcbfd92 mov rdi, 0xfffffffb418843e0 | |
0bcbfd9c cmp rdi, [rbx+0x20] | |
0bcbfda0 jnz 0x0bcb0034 ->9 | |
0bcbfda6 cmp dword [rbx+0x1c], -0x05 | |
0bcbfdaa jnz 0x0bcb0034 ->9 | |
0bcbfdb0 mov ebx, [rbx+0x18] | |
0bcbfdb3 mov dword [r14+0x24], 0xfffffffb | |
0bcbfdbb mov [r14+0x20], ebx | |
0bcbfdbf cmp dword [rbp+0x1c], +0x03 | |
0bcbfdc3 jnz 0x0bcb0038 ->10 | |
0bcbfdc9 mov ebx, [rbp+0x14] | |
0bcbfdcc mov rdi, 0xfffffffb41884b48 | |
0bcbfdd6 cmp rdi, [rbx+0x20] | |
0bcbfdda jnz 0x0bcb0038 ->10 | |
0bcbfde0 cmp dword [rbp+0x10], +0x00 | |
0bcbfde4 jnz 0x0bcb0038 ->10 | |
0bcbfdea mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbfdf1 mov [rbx+0x18], eax | |
0bcbfdf4 test byte [rbp+0x4], 0x4 | |
0bcbfdf8 jz 0x0bcbfe0f | |
0bcbfdfa and byte [rbp+0x4], 0xfb | |
0bcbfdfe mov edi, [0x41d653f4] | |
0bcbfe05 mov [0x41d653f4], ebp | |
0bcbfe0c mov [rbp+0xc], edi | |
0bcbfe0f mov eax, [0x41d654b0] | |
0bcbfe16 mov eax, [rax+0x20] | |
0bcbfe19 sub eax, edx | |
0bcbfe1b cmp eax, +0x68 | |
0bcbfe1e jb 0x0bcb003c ->11 | |
0bcbfe24 mov dword [rdx-0x8], 0x41879a00 | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x41885ba8 | |
0bcbfe32 mov r14d, 0x41d66008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 6 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 3 start 2/4 ssa.lua:70 | |
0065 UGET 5 2 ; finish_goto | |
0066 MOV 6 1 | |
0067 MOV 7 3 | |
0068 CALL 5 1 3 | |
0000 . FUNCF 4 ; ssa.lua:52 | |
0001 . TDUP 2 1 | |
0002 . TGETS 3 1 2 ; "label" | |
0003 . TSETB 3 2 2 | |
0004 . TSETS 2 0 0 ; "control" | |
0005 . RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 abort ssa.lua:79 -- down-recursion, restarting | |
---- TRACE 3 start ssa.lua:79 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0072 . UGET 5 3 ; finish_return | |
0073 . MOV 6 1 | |
0074 . TDUP 7 13 | |
0075 . CALL 5 1 3 | |
0000 . . FUNCF 3 ; ssa.lua:46 | |
0001 . . TDUP 2 1 | |
0002 . . TSETB 1 2 2 | |
0003 . . TSETS 2 0 0 ; "control" | |
0004 . . RET0 0 1 | |
0076 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0014 . . UGET 5 0 ; add_block | |
0015 . . CALL 5 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0016 . . UGET 6 0 ; add_block | |
0017 . . CALL 6 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0018 . . UGET 7 1 ; compile_bool | |
0019 . . TGETB 8 0 2 | |
0020 . . MOV 9 1 | |
0021 . . MOV 10 5 | |
0022 . . MOV 11 6 | |
0023 . . CALL 7 1 5 | |
0000 . . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . . GGET 4 0 ; "assert" | |
0002 . . . GGET 5 1 ; "type" | |
0003 . . . MOV 6 0 | |
0004 . . . CALL 5 2 2 | |
0000 . . . . FUNCC ; type | |
0005 . . . ISEQS 5 2 ; "table" | |
0006 . . . JMP 5 => 0009 | |
0009 . . . KPRI 5 2 | |
0010 . . . CALL 4 1 2 | |
0000 . . . . FUNCC ; assert | |
0011 . . . TGETB 4 0 1 | |
0012 . . . ISNES 4 3 ; "if" | |
0013 . . . JMP 5 => 0037 | |
0014 . . . UGET 5 0 ; add_block | |
0015 . . . CALL 5 2 1 | |
0000 . . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . . UGET 0 0 ; label_counter | |
0002 . . . . ADDVN 0 0 0 ; 1 | |
0003 . . . . USETV 0 0 ; label_counter | |
0004 . . . . KSTR 0 0 ; "L" | |
0005 . . . . UGET 1 0 ; label_counter | |
0006 . . . . CAT 0 0 1 | |
0007 . . . . TDUP 1 1 | |
0008 . . . . TNEW 2 0 | |
0009 . . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . . TSETS 0 1 3 ; "label" | |
0011 . . . . UGET 2 1 ; ssa | |
0012 . . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . . TSETV 1 2 0 | |
0014 . . . . RET1 1 2 | |
0016 . . . UGET 6 0 ; add_block | |
0017 . . . CALL 6 2 1 | |
0000 . . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . . UGET 0 0 ; label_counter | |
0002 . . . . ADDVN 0 0 0 ; 1 | |
0003 . . . . USETV 0 0 ; label_counter | |
0004 . . . . KSTR 0 0 ; "L" | |
0005 . . . . UGET 1 0 ; label_counter | |
0006 . . . . CAT 0 0 1 | |
0007 . . . . TDUP 1 1 | |
0008 . . . . TNEW 2 0 | |
0009 . . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . . TSETS 0 1 3 ; "label" | |
0011 . . . . UGET 2 1 ; ssa | |
0012 . . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . . TSETV 1 2 0 | |
0014 . . . . RET1 1 2 | |
0018 . . . UGET 7 1 ; compile_bool | |
0019 . . . TGETB 8 0 2 | |
0020 . . . MOV 9 1 | |
0021 . . . MOV 10 5 | |
0022 . . . MOV 11 6 | |
0023 . . . CALL 7 1 5 | |
0000 . . . . JFUNCF 13 2 ; ssa.lua:55 | |
---- TRACE 3 abort ssa.lua:55 -- call unroll limit reached | |
---- TRACE 3 start ssa.lua:52 | |
0001 TDUP 2 1 | |
0002 TGETS 3 1 2 ; "label" | |
0003 TSETB 3 2 2 | |
0004 TSETS 2 0 0 ; "control" | |
0005 RET0 0 1 | |
---- TRACE 3 IR | |
.... SNAP #0 [ ---- ---- ---- ] | |
0001 rax > [31mtab[m TDUP [31m{0x41d82678}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 [35mint[m FLOAD 0002 tab.hmask | |
0004 > [35mint[m EQ 0003 [35m+3 [m | |
0005 rbx p32 FLOAD 0002 tab.node | |
0006 > p32 HREFK 0005 [32m"label"[m @3 | |
0007 > nil HLOAD 0006 | |
0008 [31mtab[m FLOAD 0002 tab.meta | |
0009 > [31mtab[m EQ 0008 [31m[NULL][m | |
0010 rbp p32 FLOAD 0001 tab.array | |
0011 p32 AREF 0010 [35m+2 [m | |
0012 nil ASTORE 0011 nil | |
.... SNAP #1 [ ---- ---- ---- [31m0001[m ---- ] | |
0013 rbp > [31mtab[m SLOAD #1 T | |
0014 [35mint[m FLOAD 0013 tab.hmask | |
0015 > [35mint[m EQ 0014 [35m+3 [m | |
0016 rbx p32 FLOAD 0013 tab.node | |
0017 > p32 HREFK 0016 [32m"control"[m @1 | |
0018 [31mtab[m FLOAD 0013 tab.meta | |
0019 > [31mtab[m EQ 0018 [31m[NULL][m | |
0020 [31mtab[m HSTORE 0017 0001 | |
0021 nil TBAR 0013 | |
.... SNAP #2 [ ---- ] | |
---- TRACE 3 mcode 260 | |
0bcbf9c4 mov dword [0x41d65410], 0x3 | |
0bcbf9cf mov edi, [0x41d653d8] | |
0bcbf9d6 cmp edi, [0x41d653dc] | |
0bcbf9dd jb 0x0bcbf9f6 | |
0bcbf9df mov esi, 0x1 | |
0bcbf9e4 mov edi, 0x41d653b8 | |
0bcbf9e9 call 0x00421730 ->lj_gc_step_jit | |
0bcbf9ee test eax, eax | |
0bcbf9f0 jnz 0x0bcb0010 ->0 | |
0bcbf9f6 mov edi, [0x41d654b0] | |
0bcbf9fd mov esi, 0x41d82678 | |
0bcbfa02 call 0x004223c0 ->lj_tab_dup | |
0bcbfa07 mov edx, [0x41d654b4] | |
0bcbfa0e cmp dword [rdx+0xc], -0x0c | |
0bcbfa12 jnz 0x0bcb0010 ->0 | |
0bcbfa18 mov ebp, [rdx+0x8] | |
0bcbfa1b cmp dword [rbp+0x1c], +0x03 | |
0bcbfa1f jnz 0x0bcb0010 ->0 | |
0bcbfa25 mov ebx, [rbp+0x14] | |
0bcbfa28 mov rdi, 0xfffffffb418843e0 | |
0bcbfa32 cmp rdi, [rbx+0x50] | |
0bcbfa36 jnz 0x0bcb0010 ->0 | |
0bcbfa3c cmp dword [rbx+0x4c], -0x01 | |
0bcbfa40 jnz 0x0bcb0010 ->0 | |
0bcbfa46 cmp dword [rbp+0x10], +0x00 | |
0bcbfa4a jnz 0x0bcb0010 ->0 | |
0bcbfa50 mov ebp, [rax+0x8] | |
0bcbfa53 mov dword [rbp+0x14], 0xffffffff | |
0bcbfa5a cmp dword [rdx+0x4], -0x0c | |
0bcbfa5e jnz 0x0bcb0014 ->1 | |
0bcbfa64 mov ebp, [rdx] | |
0bcbfa66 cmp dword [rbp+0x1c], +0x03 | |
0bcbfa6a jnz 0x0bcb0014 ->1 | |
0bcbfa70 mov ebx, [rbp+0x14] | |
0bcbfa73 mov rdi, 0xfffffffb41884b48 | |
0bcbfa7d cmp rdi, [rbx+0x20] | |
0bcbfa81 jnz 0x0bcb0014 ->1 | |
0bcbfa87 cmp dword [rbp+0x10], +0x00 | |
0bcbfa8b jnz 0x0bcb0014 ->1 | |
0bcbfa91 mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbfa98 mov [rbx+0x18], eax | |
0bcbfa9b test byte [rbp+0x4], 0x4 | |
0bcbfa9f jz 0x0bcbfab6 | |
0bcbfaa1 and byte [rbp+0x4], 0xfb | |
0bcbfaa5 mov edi, [0x41d653f4] | |
0bcbfaac mov [0x41d653f4], ebp | |
0bcbfab3 mov [rbp+0xc], edi | |
0bcbfab6 xor eax, eax | |
0bcbfab8 mov ebx, 0x41d8278c | |
0bcbfabd mov r14d, 0x41d66008 | |
0bcbfac3 jmp 0x00420177 | |
---- TRACE 3 stop -> return | |
---- TRACE 4 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0065 UGET 5 2 ; finish_goto | |
0066 MOV 6 1 | |
0067 MOV 7 3 | |
0068 CALL 5 1 3 | |
0000 . JFUNCF 4 3 ; ssa.lua:52 | |
0001 . TDUP 2 1 | |
0002 . TGETS 3 1 2 ; "label" | |
0003 . TSETB 3 2 2 | |
0004 . TSETS 2 0 0 ; "control" | |
0005 . RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 4 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x41d65458] | |
0005 r15 [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 r15 p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 r15 > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 r15 p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x41d65458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 rbx > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 r15 > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m EQ 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0034 rbp > [31mtab[m SLOAD #2 T | |
0035 rbx > [31mtab[m SLOAD #4 T | |
0036 rax > [31mtab[m TDUP [31m{0x41d82678}[m | |
0037 [35mint[m FLOAD 0035 tab.hmask | |
0038 > [35mint[m EQ 0037 [35m+3 [m | |
0039 r14 p32 FLOAD 0035 tab.node | |
0040 > p32 HREFK 0039 [32m"label"[m @3 | |
0041 > nil HLOAD 0040 | |
0042 [31mtab[m FLOAD 0035 tab.meta | |
0043 > [31mtab[m EQ 0042 [31m[NULL][m | |
0044 rbx p32 FLOAD 0036 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 nil ASTORE 0045 nil | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:52[m|[31m0034[m ---- [31m0036[m ---- ] | |
0047 [35mint[m FLOAD 0034 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+3 [m | |
0049 rbx p32 FLOAD 0034 tab.node | |
0050 > p32 HREFK 0049 [32m"control"[m @1 | |
0051 [31mtab[m FLOAD 0034 tab.meta | |
0052 > [31mtab[m EQ 0051 [31m[NULL][m | |
0053 [31mtab[m HSTORE 0050 0036 | |
0054 nil TBAR 0034 | |
.... SNAP #7 [ [1mssa.lua:55[m|] | |
---- TRACE 4 mcode 672 | |
0bcbf71d mov dword [0x41d65410], 0x4 | |
0bcbf728 mov edi, [0x41d653d8] | |
0bcbf72f cmp edi, [0x41d653dc] | |
0bcbf736 jb 0x0bcbf74f | |
0bcbf738 mov esi, 0x1 | |
0bcbf73d mov edi, 0x41d653b8 | |
0bcbf742 call 0x00421730 ->lj_gc_step_jit | |
0bcbf747 test eax, eax | |
0bcbf749 jnz 0x0bcb0010 ->0 | |
0bcbf74f mov edi, [0x41d654b0] | |
0bcbf756 mov edx, [0x41d654b4] | |
0bcbf75d mov ebp, [rdx-0x8] | |
0bcbf760 mov ebx, [rbp+0x8] | |
0bcbf763 mov esi, [rbx+0x1c] | |
0bcbf766 and esi, 0xce2b6183 | |
0bcbf76c lea esi, [rsi+rsi*2] | |
0bcbf76f shl esi, 0x03 | |
0bcbf772 add esi, [rbx+0x14] | |
0bcbf775 cmp dword [rsi+0xc], -0x05 | |
0bcbf779 jnz 0x0bcbf788 | |
0bcbf77b cmp dword [rsi+0x8], 0x41d67db0 | |
0bcbf782 jz 0x0bcb0010 ->0 | |
0bcbf788 mov esi, [rsi+0x10] | |
0bcbf78b test esi, esi | |
0bcbf78d jnz 0x0bcbf775 | |
0bcbf78f mov r15d, [rbx+0x10] | |
0bcbf793 test r15d, r15d | |
0bcbf796 jz 0x0bcb0010 ->0 | |
0bcbf79c cmp dword [r15+0x1c], +0x01 | |
0bcbf7a1 jnz 0x0bcb0010 ->0 | |
0bcbf7a7 mov r15d, [r15+0x14] | |
0bcbf7ab mov rsi, 0xfffffffb41d674c8 | |
0bcbf7b5 cmp rsi, [r15+0x20] | |
0bcbf7b9 jnz 0x0bcb0010 ->0 | |
0bcbf7bf cmp dword [r15+0x1c], -0x0c | |
0bcbf7c4 jnz 0x0bcb0010 ->0 | |
0bcbf7ca mov r15d, [r15+0x18] | |
0bcbf7ce cmp dword [r15+0x1c], +0x3f | |
0bcbf7d3 jnz 0x0bcb0010 ->0 | |
0bcbf7d9 mov r15d, [r15+0x14] | |
0bcbf7dd mov rsi, 0xfffffffb41d67db0 | |
0bcbf7e7 cmp rsi, [r15+0x50] | |
0bcbf7eb jnz 0x0bcb0010 ->0 | |
0bcbf7f1 cmp dword [r15+0x4c], -0x09 | |
0bcbf7f6 jnz 0x0bcb0010 ->0 | |
0bcbf7fc mov esi, [rbx+0x1c] | |
0bcbf7ff and esi, 0x798a813c | |
0bcbf805 lea esi, [rsi+rsi*2] | |
0bcbf808 shl esi, 0x03 | |
0bcbf80b add esi, [rbx+0x14] | |
0bcbf80e cmp dword [rsi+0xc], -0x05 | |
0bcbf812 jnz 0x0bcbf821 | |
0bcbf814 cmp dword [rsi+0x8], 0x41d67fb0 | |
0bcbf81b jz 0x0bcb0010 ->0 | |
0bcbf821 mov esi, [rsi+0x10] | |
0bcbf824 test esi, esi | |
0bcbf826 jnz 0x0bcbf80e | |
0bcbf828 mov rsi, 0xfffffffb41d67fb0 | |
0bcbf832 cmp rsi, [r15+0x5a8] | |
0bcbf839 jnz 0x0bcb0010 ->0 | |
0bcbf83f cmp dword [r15+0x5a4], -0x09 | |
0bcbf847 jnz 0x0bcb0010 ->0 | |
0bcbf84d cmp dword [rdx+0x4], -0x0c | |
0bcbf851 jnz 0x0bcb0010 ->0 | |
0bcbf857 mov ebx, [rdx] | |
0bcbf859 cmp dword [r15+0x5a0], 0x41d67f18 | |
0bcbf864 jnz 0x0bcb0010 ->0 | |
0bcbf86a cmp dword [r15+0x48], 0x41d67d88 | |
0bcbf872 jnz 0x0bcb0010 ->0 | |
0bcbf878 cmp dword [rbx+0x18], +0x01 | |
0bcbf87c jbe 0x0bcb0010 ->0 | |
0bcbf882 mov ebx, [rbx+0x8] | |
0bcbf885 cmp dword [rbx+0xc], -0x05 | |
0bcbf889 jnz 0x0bcb0010 ->0 | |
0bcbf88f mov r15d, [rbx+0x8] | |
0bcbf893 cmp r15d, 0x41d678f8 | |
0bcbf89a jz 0x0bcb0014 ->1 | |
0bcbf8a0 cmp r15d, 0x41d826b8 | |
0bcbf8a7 jz 0x0bcb0018 ->2 | |
0bcbf8ad cmp r15d, 0x41d67a18 | |
0bcbf8b4 jz 0x0bcb001c ->3 | |
0bcbf8ba cmp r15d, 0x41d67870 | |
0bcbf8c1 jnz 0x0bcb0020 ->4 | |
0bcbf8c7 cmp ebp, 0x41879a00 | |
0bcbf8cd jnz 0x0bcb0024 ->5 | |
0bcbf8d3 cmp dword [rdx+0xc], -0x0c | |
0bcbf8d7 jnz 0x0bcb0024 ->5 | |
0bcbf8dd mov ebp, [rdx+0x8] | |
0bcbf8e0 cmp dword [rdx+0x1c], -0x0c | |
0bcbf8e4 jnz 0x0bcb0024 ->5 | |
0bcbf8ea mov ebx, [rdx+0x18] | |
0bcbf8ed mov esi, 0x41d82678 | |
0bcbf8f2 call 0x004223c0 ->lj_tab_dup | |
0bcbf8f7 mov edx, [0x41d654b4] | |
0bcbf8fe cmp dword [rbx+0x1c], +0x03 | |
0bcbf902 jnz 0x0bcb0024 ->5 | |
0bcbf908 mov r14d, [rbx+0x14] | |
0bcbf90c mov rdi, 0xfffffffb418843e0 | |
0bcbf916 cmp rdi, [r14+0x50] | |
0bcbf91a jnz 0x0bcb0024 ->5 | |
0bcbf920 cmp dword [r14+0x4c], -0x01 | |
0bcbf925 jnz 0x0bcb0024 ->5 | |
0bcbf92b cmp dword [rbx+0x10], +0x00 | |
0bcbf92f jnz 0x0bcb0024 ->5 | |
0bcbf935 mov ebx, [rax+0x8] | |
0bcbf938 mov dword [rbx+0x14], 0xffffffff | |
0bcbf93f cmp dword [rbp+0x1c], +0x03 | |
0bcbf943 jnz 0x0bcb0028 ->6 | |
0bcbf949 mov ebx, [rbp+0x14] | |
0bcbf94c mov rdi, 0xfffffffb41884b48 | |
0bcbf956 cmp rdi, [rbx+0x20] | |
0bcbf95a jnz 0x0bcb0028 ->6 | |
0bcbf960 cmp dword [rbp+0x10], +0x00 | |
0bcbf964 jnz 0x0bcb0028 ->6 | |
0bcbf96a mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbf971 mov [rbx+0x18], eax | |
0bcbf974 test byte [rbp+0x4], 0x4 | |
0bcbf978 jz 0x0bcbf98f | |
0bcbf97a and byte [rbp+0x4], 0xfb | |
0bcbf97e mov edi, [0x41d653f4] | |
0bcbf985 mov [0x41d653f4], ebp | |
0bcbf98c mov [rbp+0xc], edi | |
0bcbf98f mov eax, [0x41d654b0] | |
0bcbf996 mov eax, [rax+0x20] | |
0bcbf999 sub eax, edx | |
0bcbf99b cmp eax, +0x68 | |
0bcbf99e jb 0x0bcb002c ->7 | |
0bcbf9a4 mov dword [rdx-0x8], 0x41879a00 | |
0bcbf9ab xor eax, eax | |
0bcbf9ad mov ebx, 0x41885ba8 | |
0bcbf9b2 mov r14d, 0x41d66008 | |
0bcbf9b8 jmp 0x00420177 | |
---- TRACE 4 stop -> return | |
---- TRACE 4 exit 4 | |
---- TRACE 4 exit 1 | |
---- TRACE 4 exit 4 | |
---- TRACE 5 start ssa.lua:49 | |
0001 TDUP 4 1 | |
0002 TSETB 1 4 2 | |
0003 TGETS 5 2 2 ; "label" | |
0004 TSETB 5 4 3 | |
0005 TGETS 5 3 2 ; "label" | |
0006 TSETB 5 4 4 | |
0007 TSETS 4 0 0 ; "control" | |
0008 RET0 0 1 | |
---- TRACE 5 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rax > [31mtab[m TDUP [31m{0x41878918}[m | |
0002 rbx > [31mtab[m SLOAD #2 T | |
0003 rbp p32 FLOAD 0001 tab.array | |
0004 p32 AREF 0003 [35m+2 [m | |
0005 [31mtab[m ASTORE 0004 0002 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [31m0001[m ] | |
0006 rbx > [31mtab[m SLOAD #3 T | |
0007 [35mint[m FLOAD 0006 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+3 [m | |
0009 r15 p32 FLOAD 0006 tab.node | |
0010 > p32 HREFK 0009 [32m"label"[m @3 | |
0011 > nil HLOAD 0010 | |
0012 [31mtab[m FLOAD 0006 tab.meta | |
0013 > [31mtab[m EQ 0012 [31m[NULL][m | |
0014 p32 AREF 0003 [35m+3 [m | |
0015 nil ASTORE 0014 nil | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0016 rbx > [31mtab[m SLOAD #4 T | |
0017 [35mint[m FLOAD 0016 tab.hmask | |
0018 > [35mint[m EQ 0017 [35m+3 [m | |
0019 r15 p32 FLOAD 0016 tab.node | |
0020 > p32 HREFK 0019 [32m"label"[m @3 | |
0021 > nil HLOAD 0020 | |
0022 [31mtab[m FLOAD 0016 tab.meta | |
0023 > [31mtab[m EQ 0022 [31m[NULL][m | |
0024 p32 AREF 0003 [35m+4 [m | |
0025 nil ASTORE 0024 nil | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0026 rbp > [31mtab[m SLOAD #1 T | |
0027 [35mint[m FLOAD 0026 tab.hmask | |
0028 > [35mint[m EQ 0027 [35m+3 [m | |
0029 rbx p32 FLOAD 0026 tab.node | |
0030 > p32 HREFK 0029 [32m"control"[m @1 | |
0031 [31mtab[m FLOAD 0026 tab.meta | |
0032 > [31mtab[m EQ 0031 [31m[NULL][m | |
0033 [31mtab[m HSTORE 0030 0001 | |
0034 nil TBAR 0026 | |
.... SNAP #4 [ ---- ] | |
---- TRACE 5 mcode 360 | |
0bcbf5ae mov dword [0x41d65410], 0x5 | |
0bcbf5b9 mov edi, [0x41d653d8] | |
0bcbf5c0 cmp edi, [0x41d653dc] | |
0bcbf5c7 jb 0x0bcbf5e0 | |
0bcbf5c9 mov esi, 0x1 | |
0bcbf5ce mov edi, 0x41d653b8 | |
0bcbf5d3 call 0x00421730 ->lj_gc_step_jit | |
0bcbf5d8 test eax, eax | |
0bcbf5da jnz 0x0bcb0010 ->0 | |
0bcbf5e0 mov edi, [0x41d654b0] | |
0bcbf5e7 mov esi, 0x41878918 | |
0bcbf5ec call 0x004223c0 ->lj_tab_dup | |
0bcbf5f1 mov edx, [0x41d654b4] | |
0bcbf5f8 cmp dword [rdx+0xc], -0x0c | |
0bcbf5fc jnz 0x0bcb0010 ->0 | |
0bcbf602 mov ebx, [rdx+0x8] | |
0bcbf605 mov ebp, [rax+0x8] | |
0bcbf608 mov dword [rbp+0x14], 0xfffffff4 | |
0bcbf60f mov [rbp+0x10], ebx | |
0bcbf612 cmp dword [rdx+0x14], -0x0c | |
0bcbf616 jnz 0x0bcb0014 ->1 | |
0bcbf61c mov ebx, [rdx+0x10] | |
0bcbf61f cmp dword [rbx+0x1c], +0x03 | |
0bcbf623 jnz 0x0bcb0014 ->1 | |
0bcbf629 mov r15d, [rbx+0x14] | |
0bcbf62d mov rdi, 0xfffffffb418843e0 | |
0bcbf637 cmp rdi, [r15+0x50] | |
0bcbf63b jnz 0x0bcb0014 ->1 | |
0bcbf641 cmp dword [r15+0x4c], -0x01 | |
0bcbf646 jnz 0x0bcb0014 ->1 | |
0bcbf64c cmp dword [rbx+0x10], +0x00 | |
0bcbf650 jnz 0x0bcb0014 ->1 | |
0bcbf656 mov dword [rbp+0x1c], 0xffffffff | |
0bcbf65d cmp dword [rdx+0x1c], -0x0c | |
0bcbf661 jnz 0x0bcb0018 ->2 | |
0bcbf667 mov ebx, [rdx+0x18] | |
0bcbf66a cmp dword [rbx+0x1c], +0x03 | |
0bcbf66e jnz 0x0bcb0018 ->2 | |
0bcbf674 mov r15d, [rbx+0x14] | |
0bcbf678 mov rdi, 0xfffffffb418843e0 | |
0bcbf682 cmp rdi, [r15+0x50] | |
0bcbf686 jnz 0x0bcb0018 ->2 | |
0bcbf68c cmp dword [r15+0x4c], -0x01 | |
0bcbf691 jnz 0x0bcb0018 ->2 | |
0bcbf697 cmp dword [rbx+0x10], +0x00 | |
0bcbf69b jnz 0x0bcb0018 ->2 | |
0bcbf6a1 mov dword [rbp+0x24], 0xffffffff | |
0bcbf6a8 cmp dword [rdx+0x4], -0x0c | |
0bcbf6ac jnz 0x0bcb001c ->3 | |
0bcbf6b2 mov ebp, [rdx] | |
0bcbf6b4 cmp dword [rbp+0x1c], +0x03 | |
0bcbf6b8 jnz 0x0bcb001c ->3 | |
0bcbf6be mov ebx, [rbp+0x14] | |
0bcbf6c1 mov rdi, 0xfffffffb41884b48 | |
0bcbf6cb cmp rdi, [rbx+0x20] | |
0bcbf6cf jnz 0x0bcb001c ->3 | |
0bcbf6d5 cmp dword [rbp+0x10], +0x00 | |
0bcbf6d9 jnz 0x0bcb001c ->3 | |
0bcbf6df mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbf6e6 mov [rbx+0x18], eax | |
0bcbf6e9 test byte [rbp+0x4], 0x4 | |
0bcbf6ed jz 0x0bcbf704 | |
0bcbf6ef and byte [rbp+0x4], 0xfb | |
0bcbf6f3 mov edi, [0x41d653f4] | |
0bcbf6fa mov [0x41d653f4], ebp | |
0bcbf701 mov [rbp+0xc], edi | |
0bcbf704 xor eax, eax | |
0bcbf706 mov ebx, 0x41885538 | |
0bcbf70b mov r14d, 0x41d66008 | |
0bcbf711 jmp 0x00420177 | |
---- TRACE 5 stop -> return | |
---- TRACE 4 exit 4 | |
---- TRACE 5 exit 1 | |
---- TRACE 4 exit 5 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 5 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 5 | |
---- TRACE 3 exit 0 | |
---- TRACE 4 exit 1 | |
---- TRACE 4 exit 4 | |
---- TRACE 4 exit 2 |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x41307414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x41317508}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x41307458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x41307410], 0x1 | |
0bcbfe53 mov edi, [0x413073d8] | |
0bcbfe5a cmp edi, [0x413073dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x413073b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x413074b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x41318a78] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x41307414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x413074b0] | |
0bcbfee0 mov esi, 0x41317508 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x413074b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x413074b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb41a311b8 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x41307448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x413074b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x413073f4] | |
0bcbffcf mov [0x413073f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x41a31e90 | |
0bcbffee mov r14d, 0x41308008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0058 . UGET 5 2 ; finish_goto | |
0059 . MOV 6 1 | |
0060 . MOV 7 2 | |
0061 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0062 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . FUNCF 13 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . FUNCF 13 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0014 . . UGET 5 0 ; add_block | |
0015 . . CALL 5 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0016 . . UGET 6 0 ; add_block | |
0017 . . CALL 6 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0018 . . UGET 7 1 ; compile_bool | |
0019 . . TGETB 8 0 2 | |
0020 . . MOV 9 1 | |
0021 . . MOV 10 5 | |
0022 . . MOV 11 6 | |
0023 . . CALL 7 1 5 | |
0000 . . . FUNCF 13 ; ssa.lua:55 | |
---- TRACE 2 abort ssa.lua:56 -- retry recording | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0070 ISNES 4 12 ; "match" | |
0071 JMP 5 => 0077 | |
0077 ISNES 4 14 ; "fail" | |
0078 JMP 5 => 0084 | |
0084 GGET 5 0 ; "assert" | |
0085 UGET 6 4 ; relops | |
0086 TGETV 6 6 4 | |
0087 CALL 5 1 2 | |
0000 . FUNCC ; assert | |
0088 UGET 5 5 ; finish_if | |
0089 MOV 6 1 | |
0090 MOV 7 0 | |
0091 MOV 8 2 | |
0092 MOV 9 3 | |
0093 CALL 5 1 5 | |
0000 . FUNCF 6 ; ssa.lua:49 | |
0001 . TDUP 4 1 | |
0002 . TSETB 1 4 2 | |
0003 . TGETS 5 2 2 ; "label" | |
0004 . TSETB 5 4 3 | |
0005 . TGETS 5 3 2 ; "label" | |
0006 . TSETB 5 4 4 | |
0007 . TSETS 4 0 0 ; "control" | |
0008 . RET0 0 1 | |
0094 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x41307458] | |
0005 r15 [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 r15 p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 r15 > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 r15 p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x41307458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 rbx > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 r15 p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 r15 > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m NE 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [32mstr[m NE 0028 [32m"match"[m | |
.... SNAP #6 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0034 > [32mstr[m NE 0028 [32m"fail"[m | |
.... SNAP #7 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0035 r14 > p32 UREFC 0001 #4 | |
0036 r13 > [31mtab[m ULOAD 0035 | |
0037 r14 p32 HREF 0036 0028 | |
0038 > tru HLOAD 0037 | |
0039 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0040 rbp > [31mtab[m SLOAD #2 T | |
0041 r12 > [31mtab[m SLOAD #3 T | |
0042 r13 > [31mtab[m SLOAD #4 T | |
0043 rax > [31mtab[m TDUP [31m{0x41a257d8}[m | |
0044 r14 p32 FLOAD 0043 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 [31mtab[m ASTORE 0045 0021 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- [31m0041[m [31m0042[m [31m0043[m ] | |
0047 [35mint[m FLOAD 0041 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+1 [m | |
0049 rbx p32 FLOAD 0041 tab.node | |
0050 > p32 HREFK 0049 [32m"label"[m @1 | |
0051 rbx > [32mstr[m HLOAD 0050 | |
0052 p32 AREF 0044 [35m+3 [m | |
0053 [32mstr[m ASTORE 0052 0051 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- [31m0042[m [31m0043[m ---- ] | |
0054 [35mint[m FLOAD 0042 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 rbx p32 FLOAD 0042 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 rbx > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0044 [35m+4 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- ---- [31m0043[m ---- ] | |
0061 [35mint[m FLOAD 0040 tab.hmask | |
0062 > [35mint[m EQ 0061 [35m+3 [m | |
0063 rbx p32 FLOAD 0040 tab.node | |
0064 > p32 HREFK 0063 [32m"control"[m @1 | |
0065 [31mtab[m FLOAD 0040 tab.meta | |
0066 > [31mtab[m EQ 0065 [31m[NULL][m | |
0067 [31mtab[m HSTORE 0064 0043 | |
0068 nil TBAR 0040 | |
.... SNAP #11 [ [1mssa.lua:55[m|] | |
---- TRACE 2 mcode 878 | |
0bcbfacf mov dword [0x41307410], 0x2 | |
0bcbfada mov edi, [0x413073d8] | |
0bcbfae1 cmp edi, [0x413073dc] | |
0bcbfae8 jb 0x0bcbfb01 | |
0bcbfaea mov esi, 0x1 | |
0bcbfaef mov edi, 0x413073b8 | |
0bcbfaf4 call 0x00421730 ->lj_gc_step_jit | |
0bcbfaf9 test eax, eax | |
0bcbfafb jnz 0x0bcb0010 ->0 | |
0bcbfb01 mov edi, [0x413074b0] | |
0bcbfb08 mov edx, [0x413074b4] | |
0bcbfb0f mov ebp, [rdx-0x8] | |
0bcbfb12 mov ebx, [rbp+0x8] | |
0bcbfb15 mov esi, [rbx+0x1c] | |
0bcbfb18 and esi, 0xce2b6183 | |
0bcbfb1e lea esi, [rsi+rsi*2] | |
0bcbfb21 shl esi, 0x03 | |
0bcbfb24 add esi, [rbx+0x14] | |
0bcbfb27 cmp dword [rsi+0xc], -0x05 | |
0bcbfb2b jnz 0x0bcbfb3a | |
0bcbfb2d cmp dword [rsi+0x8], 0x41309db0 | |
0bcbfb34 jz 0x0bcb0010 ->0 | |
0bcbfb3a mov esi, [rsi+0x10] | |
0bcbfb3d test esi, esi | |
0bcbfb3f jnz 0x0bcbfb27 | |
0bcbfb41 mov r15d, [rbx+0x10] | |
0bcbfb45 test r15d, r15d | |
0bcbfb48 jz 0x0bcb0010 ->0 | |
0bcbfb4e cmp dword [r15+0x1c], +0x01 | |
0bcbfb53 jnz 0x0bcb0010 ->0 | |
0bcbfb59 mov r15d, [r15+0x14] | |
0bcbfb5d mov rsi, 0xfffffffb413094c8 | |
0bcbfb67 cmp rsi, [r15+0x20] | |
0bcbfb6b jnz 0x0bcb0010 ->0 | |
0bcbfb71 cmp dword [r15+0x1c], -0x0c | |
0bcbfb76 jnz 0x0bcb0010 ->0 | |
0bcbfb7c mov r15d, [r15+0x18] | |
0bcbfb80 cmp dword [r15+0x1c], +0x3f | |
0bcbfb85 jnz 0x0bcb0010 ->0 | |
0bcbfb8b mov r15d, [r15+0x14] | |
0bcbfb8f mov rsi, 0xfffffffb41309db0 | |
0bcbfb99 cmp rsi, [r15+0x50] | |
0bcbfb9d jnz 0x0bcb0010 ->0 | |
0bcbfba3 cmp dword [r15+0x4c], -0x09 | |
0bcbfba8 jnz 0x0bcb0010 ->0 | |
0bcbfbae mov esi, [rbx+0x1c] | |
0bcbfbb1 and esi, 0x798a813c | |
0bcbfbb7 lea esi, [rsi+rsi*2] | |
0bcbfbba shl esi, 0x03 | |
0bcbfbbd add esi, [rbx+0x14] | |
0bcbfbc0 cmp dword [rsi+0xc], -0x05 | |
0bcbfbc4 jnz 0x0bcbfbd3 | |
0bcbfbc6 cmp dword [rsi+0x8], 0x41309fb0 | |
0bcbfbcd jz 0x0bcb0010 ->0 | |
0bcbfbd3 mov esi, [rsi+0x10] | |
0bcbfbd6 test esi, esi | |
0bcbfbd8 jnz 0x0bcbfbc0 | |
0bcbfbda mov rsi, 0xfffffffb41309fb0 | |
0bcbfbe4 cmp rsi, [r15+0x5a8] | |
0bcbfbeb jnz 0x0bcb0010 ->0 | |
0bcbfbf1 cmp dword [r15+0x5a4], -0x09 | |
0bcbfbf9 jnz 0x0bcb0010 ->0 | |
0bcbfbff cmp dword [rdx+0x4], -0x0c | |
0bcbfc03 jnz 0x0bcb0010 ->0 | |
0bcbfc09 mov ebx, [rdx] | |
0bcbfc0b cmp dword [r15+0x5a0], 0x41309f18 | |
0bcbfc16 jnz 0x0bcb0010 ->0 | |
0bcbfc1c cmp dword [r15+0x48], 0x41309d88 | |
0bcbfc24 jnz 0x0bcb0010 ->0 | |
0bcbfc2a cmp dword [rbx+0x18], +0x01 | |
0bcbfc2e jbe 0x0bcb0010 ->0 | |
0bcbfc34 mov r15d, [rbx+0x8] | |
0bcbfc38 cmp dword [r15+0xc], -0x05 | |
0bcbfc3d jnz 0x0bcb0010 ->0 | |
0bcbfc43 mov r15d, [r15+0x8] | |
0bcbfc47 cmp r15d, 0x413098f8 | |
0bcbfc4e jz 0x0bcb0014 ->1 | |
0bcbfc54 cmp r15d, 0x413184a8 | |
0bcbfc5b jz 0x0bcb0018 ->2 | |
0bcbfc61 cmp r15d, 0x41309a18 | |
0bcbfc68 jz 0x0bcb001c ->3 | |
0bcbfc6e cmp r15d, 0x41309870 | |
0bcbfc75 jz 0x0bcb0020 ->4 | |
0bcbfc7b cmp r15d, 0x4130ccb0 | |
0bcbfc82 jz 0x0bcb0024 ->5 | |
0bcbfc88 cmp r15d, 0x41324450 | |
0bcbfc8f jz 0x0bcb0028 ->6 | |
0bcbfc95 mov esi, [rbp+0x24] | |
0bcbfc98 cmp byte [rsi+0x6], 0x1 | |
0bcbfc9c jnz 0x0bcb002c ->7 | |
0bcbfca2 lea r14d, [rsi+0x8] | |
0bcbfca6 cmp dword [r14+0x4], -0x0c | |
0bcbfcab jnz 0x0bcb002c ->7 | |
0bcbfcb1 mov r13d, [r14] | |
0bcbfcb4 mov r14d, [r13+0x1c] | |
0bcbfcb8 and r14d, [r15+0x8] | |
0bcbfcbc lea r14d, [r14+r14*2] | |
0bcbfcc0 shl r14d, 0x03 | |
0bcbfcc4 add r14d, [r13+0x14] | |
0bcbfcc8 cmp dword [r14+0xc], -0x05 | |
0bcbfccd jnz 0x0bcbfcd5 | |
0bcbfccf cmp r15d, [r14+0x8] | |
0bcbfcd3 jz 0x0bcbfce4 | |
0bcbfcd5 mov r14d, [r14+0x10] | |
0bcbfcd9 test r14d, r14d | |
0bcbfcdc jnz 0x0bcbfcc8 | |
0bcbfcde mov r14d, 0x41307458 | |
0bcbfce4 cmp dword [r14+0x4], -0x03 | |
0bcbfce9 jnz 0x0bcb002c ->7 | |
0bcbfcef cmp ebp, 0x41318880 | |
0bcbfcf5 jnz 0x0bcb002c ->7 | |
0bcbfcfb cmp dword [rdx+0xc], -0x0c | |
0bcbfcff jnz 0x0bcb002c ->7 | |
0bcbfd05 mov ebp, [rdx+0x8] | |
0bcbfd08 cmp dword [rdx+0x14], -0x0c | |
0bcbfd0c jnz 0x0bcb002c ->7 | |
0bcbfd12 mov r12d, [rdx+0x10] | |
0bcbfd16 cmp dword [rdx+0x1c], -0x0c | |
0bcbfd1a jnz 0x0bcb002c ->7 | |
0bcbfd20 mov r13d, [rdx+0x18] | |
0bcbfd24 mov esi, 0x41a257d8 | |
0bcbfd29 call 0x004223c0 ->lj_tab_dup | |
0bcbfd2e mov edx, [0x413074b4] | |
0bcbfd35 mov r14d, [rax+0x8] | |
0bcbfd39 mov dword [r14+0x14], 0xfffffff4 | |
0bcbfd41 mov [r14+0x10], ebx | |
0bcbfd45 cmp dword [r12+0x1c], +0x01 | |
0bcbfd4b jnz 0x0bcb0030 ->8 | |
0bcbfd51 mov ebx, [r12+0x14] | |
0bcbfd56 mov rdi, 0xfffffffb41a31258 | |
0bcbfd60 cmp rdi, [rbx+0x20] | |
0bcbfd64 jnz 0x0bcb0030 ->8 | |
0bcbfd6a cmp dword [rbx+0x1c], -0x05 | |
0bcbfd6e jnz 0x0bcb0030 ->8 | |
0bcbfd74 mov ebx, [rbx+0x18] | |
0bcbfd77 mov dword [r14+0x1c], 0xfffffffb | |
0bcbfd7f mov [r14+0x18], ebx | |
0bcbfd83 cmp dword [r13+0x1c], +0x01 | |
0bcbfd88 jnz 0x0bcb0034 ->9 | |
0bcbfd8e mov ebx, [r13+0x14] | |
0bcbfd92 mov rdi, 0xfffffffb41a31258 | |
0bcbfd9c cmp rdi, [rbx+0x20] | |
0bcbfda0 jnz 0x0bcb0034 ->9 | |
0bcbfda6 cmp dword [rbx+0x1c], -0x05 | |
0bcbfdaa jnz 0x0bcb0034 ->9 | |
0bcbfdb0 mov ebx, [rbx+0x18] | |
0bcbfdb3 mov dword [r14+0x24], 0xfffffffb | |
0bcbfdbb mov [r14+0x20], ebx | |
0bcbfdbf cmp dword [rbp+0x1c], +0x03 | |
0bcbfdc3 jnz 0x0bcb0038 ->10 | |
0bcbfdc9 mov ebx, [rbp+0x14] | |
0bcbfdcc mov rdi, 0xfffffffb41a319c0 | |
0bcbfdd6 cmp rdi, [rbx+0x20] | |
0bcbfdda jnz 0x0bcb0038 ->10 | |
0bcbfde0 cmp dword [rbp+0x10], +0x00 | |
0bcbfde4 jnz 0x0bcb0038 ->10 | |
0bcbfdea mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbfdf1 mov [rbx+0x18], eax | |
0bcbfdf4 test byte [rbp+0x4], 0x4 | |
0bcbfdf8 jz 0x0bcbfe0f | |
0bcbfdfa and byte [rbp+0x4], 0xfb | |
0bcbfdfe mov edi, [0x413073f4] | |
0bcbfe05 mov [0x413073f4], ebp | |
0bcbfe0c mov [rbp+0xc], edi | |
0bcbfe0f mov eax, [0x413074b0] | |
0bcbfe16 mov eax, [rax+0x20] | |
0bcbfe19 sub eax, edx | |
0bcbfe1b cmp eax, +0x68 | |
0bcbfe1e jb 0x0bcb003c ->11 | |
0bcbfe24 mov dword [rdx-0x8], 0x41318880 | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x41a32a20 | |
0bcbfe32 mov r14d, 0x41308008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 6 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 3 start 2/4 ssa.lua:70 | |
0065 UGET 5 2 ; finish_goto | |
0066 MOV 6 1 | |
0067 MOV 7 3 | |
0068 CALL 5 1 3 | |
0000 . FUNCF 4 ; ssa.lua:52 | |
0001 . TDUP 2 1 | |
0002 . TGETS 3 1 2 ; "label" | |
0003 . TSETB 3 2 2 | |
0004 . TSETS 2 0 0 ; "control" | |
0005 . RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 abort ssa.lua:79 -- down-recursion, restarting | |
---- TRACE 3 start ssa.lua:79 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0072 . UGET 5 3 ; finish_return | |
0073 . MOV 6 1 | |
0074 . TDUP 7 13 | |
0075 . CALL 5 1 3 | |
0000 . . FUNCF 3 ; ssa.lua:46 | |
0001 . . TDUP 2 1 | |
0002 . . TSETB 1 2 2 | |
0003 . . TSETS 2 0 0 ; "control" | |
0004 . . RET0 0 1 | |
0076 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0014 . . UGET 5 0 ; add_block | |
0015 . . CALL 5 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0016 . . UGET 6 0 ; add_block | |
0017 . . CALL 6 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0018 . . UGET 7 1 ; compile_bool | |
0019 . . TGETB 8 0 2 | |
0020 . . MOV 9 1 | |
0021 . . MOV 10 5 | |
0022 . . MOV 11 6 | |
0023 . . CALL 7 1 5 | |
0000 . . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . . GGET 4 0 ; "assert" | |
0002 . . . GGET 5 1 ; "type" | |
0003 . . . MOV 6 0 | |
0004 . . . CALL 5 2 2 | |
0000 . . . . FUNCC ; type | |
0005 . . . ISEQS 5 2 ; "table" | |
0006 . . . JMP 5 => 0009 | |
0009 . . . KPRI 5 2 | |
0010 . . . CALL 4 1 2 | |
0000 . . . . FUNCC ; assert | |
0011 . . . TGETB 4 0 1 | |
0012 . . . ISNES 4 3 ; "if" | |
0013 . . . JMP 5 => 0037 | |
0014 . . . UGET 5 0 ; add_block | |
0015 . . . CALL 5 2 1 | |
0000 . . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . . UGET 0 0 ; label_counter | |
0002 . . . . ADDVN 0 0 0 ; 1 | |
0003 . . . . USETV 0 0 ; label_counter | |
0004 . . . . KSTR 0 0 ; "L" | |
0005 . . . . UGET 1 0 ; label_counter | |
0006 . . . . CAT 0 0 1 | |
0007 . . . . TDUP 1 1 | |
0008 . . . . TNEW 2 0 | |
0009 . . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . . TSETS 0 1 3 ; "label" | |
0011 . . . . UGET 2 1 ; ssa | |
0012 . . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . . TSETV 1 2 0 | |
0014 . . . . RET1 1 2 | |
0016 . . . UGET 6 0 ; add_block | |
0017 . . . CALL 6 2 1 | |
0000 . . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . . UGET 0 0 ; label_counter | |
0002 . . . . ADDVN 0 0 0 ; 1 | |
0003 . . . . USETV 0 0 ; label_counter | |
0004 . . . . KSTR 0 0 ; "L" | |
0005 . . . . UGET 1 0 ; label_counter | |
0006 . . . . CAT 0 0 1 | |
0007 . . . . TDUP 1 1 | |
0008 . . . . TNEW 2 0 | |
0009 . . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . . TSETS 0 1 3 ; "label" | |
0011 . . . . UGET 2 1 ; ssa | |
0012 . . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . . TSETV 1 2 0 | |
0014 . . . . RET1 1 2 | |
0018 . . . UGET 7 1 ; compile_bool | |
0019 . . . TGETB 8 0 2 | |
0020 . . . MOV 9 1 | |
0021 . . . MOV 10 5 | |
0022 . . . MOV 11 6 | |
0023 . . . CALL 7 1 5 | |
0000 . . . . JFUNCF 13 2 ; ssa.lua:55 | |
---- TRACE 3 abort ssa.lua:55 -- call unroll limit reached | |
---- TRACE 3 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0065 UGET 5 2 ; finish_goto | |
0066 MOV 6 1 | |
0067 MOV 7 3 | |
0068 CALL 5 1 3 | |
0000 . FUNCF 4 ; ssa.lua:52 | |
0001 . TDUP 2 1 | |
0002 . TGETS 3 1 2 ; "label" | |
0003 . TSETB 3 2 2 | |
0004 . TSETS 2 0 0 ; "control" | |
0005 . RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x41307458] | |
0005 r15 [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 r15 p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 r15 > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 r15 p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x41307458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 rbx > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 r15 > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m EQ 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0034 rbp > [31mtab[m SLOAD #2 T | |
0035 rbx > [31mtab[m SLOAD #4 T | |
0036 rax > [31mtab[m TDUP [31m{0x41a2b268}[m | |
0037 [35mint[m FLOAD 0035 tab.hmask | |
0038 > [35mint[m EQ 0037 [35m+3 [m | |
0039 r14 p32 FLOAD 0035 tab.node | |
0040 > p32 HREFK 0039 [32m"label"[m @3 | |
0041 > nil HLOAD 0040 | |
0042 [31mtab[m FLOAD 0035 tab.meta | |
0043 > [31mtab[m EQ 0042 [31m[NULL][m | |
0044 rbx p32 FLOAD 0036 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 nil ASTORE 0045 nil | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:52[m|[31m0034[m ---- [31m0036[m ---- ] | |
0047 [35mint[m FLOAD 0034 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+3 [m | |
0049 rbx p32 FLOAD 0034 tab.node | |
0050 > p32 HREFK 0049 [32m"control"[m @1 | |
0051 [31mtab[m FLOAD 0034 tab.meta | |
0052 > [31mtab[m EQ 0051 [31m[NULL][m | |
0053 [31mtab[m HSTORE 0050 0036 | |
0054 nil TBAR 0034 | |
.... SNAP #7 [ [1mssa.lua:55[m|] | |
---- TRACE 3 mcode 672 | |
0bcbf828 mov dword [0x41307410], 0x3 | |
0bcbf833 mov edi, [0x413073d8] | |
0bcbf83a cmp edi, [0x413073dc] | |
0bcbf841 jb 0x0bcbf85a | |
0bcbf843 mov esi, 0x1 | |
0bcbf848 mov edi, 0x413073b8 | |
0bcbf84d call 0x00421730 ->lj_gc_step_jit | |
0bcbf852 test eax, eax | |
0bcbf854 jnz 0x0bcb0010 ->0 | |
0bcbf85a mov edi, [0x413074b0] | |
0bcbf861 mov edx, [0x413074b4] | |
0bcbf868 mov ebp, [rdx-0x8] | |
0bcbf86b mov ebx, [rbp+0x8] | |
0bcbf86e mov esi, [rbx+0x1c] | |
0bcbf871 and esi, 0xce2b6183 | |
0bcbf877 lea esi, [rsi+rsi*2] | |
0bcbf87a shl esi, 0x03 | |
0bcbf87d add esi, [rbx+0x14] | |
0bcbf880 cmp dword [rsi+0xc], -0x05 | |
0bcbf884 jnz 0x0bcbf893 | |
0bcbf886 cmp dword [rsi+0x8], 0x41309db0 | |
0bcbf88d jz 0x0bcb0010 ->0 | |
0bcbf893 mov esi, [rsi+0x10] | |
0bcbf896 test esi, esi | |
0bcbf898 jnz 0x0bcbf880 | |
0bcbf89a mov r15d, [rbx+0x10] | |
0bcbf89e test r15d, r15d | |
0bcbf8a1 jz 0x0bcb0010 ->0 | |
0bcbf8a7 cmp dword [r15+0x1c], +0x01 | |
0bcbf8ac jnz 0x0bcb0010 ->0 | |
0bcbf8b2 mov r15d, [r15+0x14] | |
0bcbf8b6 mov rsi, 0xfffffffb413094c8 | |
0bcbf8c0 cmp rsi, [r15+0x20] | |
0bcbf8c4 jnz 0x0bcb0010 ->0 | |
0bcbf8ca cmp dword [r15+0x1c], -0x0c | |
0bcbf8cf jnz 0x0bcb0010 ->0 | |
0bcbf8d5 mov r15d, [r15+0x18] | |
0bcbf8d9 cmp dword [r15+0x1c], +0x3f | |
0bcbf8de jnz 0x0bcb0010 ->0 | |
0bcbf8e4 mov r15d, [r15+0x14] | |
0bcbf8e8 mov rsi, 0xfffffffb41309db0 | |
0bcbf8f2 cmp rsi, [r15+0x50] | |
0bcbf8f6 jnz 0x0bcb0010 ->0 | |
0bcbf8fc cmp dword [r15+0x4c], -0x09 | |
0bcbf901 jnz 0x0bcb0010 ->0 | |
0bcbf907 mov esi, [rbx+0x1c] | |
0bcbf90a and esi, 0x798a813c | |
0bcbf910 lea esi, [rsi+rsi*2] | |
0bcbf913 shl esi, 0x03 | |
0bcbf916 add esi, [rbx+0x14] | |
0bcbf919 cmp dword [rsi+0xc], -0x05 | |
0bcbf91d jnz 0x0bcbf92c | |
0bcbf91f cmp dword [rsi+0x8], 0x41309fb0 | |
0bcbf926 jz 0x0bcb0010 ->0 | |
0bcbf92c mov esi, [rsi+0x10] | |
0bcbf92f test esi, esi | |
0bcbf931 jnz 0x0bcbf919 | |
0bcbf933 mov rsi, 0xfffffffb41309fb0 | |
0bcbf93d cmp rsi, [r15+0x5a8] | |
0bcbf944 jnz 0x0bcb0010 ->0 | |
0bcbf94a cmp dword [r15+0x5a4], -0x09 | |
0bcbf952 jnz 0x0bcb0010 ->0 | |
0bcbf958 cmp dword [rdx+0x4], -0x0c | |
0bcbf95c jnz 0x0bcb0010 ->0 | |
0bcbf962 mov ebx, [rdx] | |
0bcbf964 cmp dword [r15+0x5a0], 0x41309f18 | |
0bcbf96f jnz 0x0bcb0010 ->0 | |
0bcbf975 cmp dword [r15+0x48], 0x41309d88 | |
0bcbf97d jnz 0x0bcb0010 ->0 | |
0bcbf983 cmp dword [rbx+0x18], +0x01 | |
0bcbf987 jbe 0x0bcb0010 ->0 | |
0bcbf98d mov ebx, [rbx+0x8] | |
0bcbf990 cmp dword [rbx+0xc], -0x05 | |
0bcbf994 jnz 0x0bcb0010 ->0 | |
0bcbf99a mov r15d, [rbx+0x8] | |
0bcbf99e cmp r15d, 0x413098f8 | |
0bcbf9a5 jz 0x0bcb0014 ->1 | |
0bcbf9ab cmp r15d, 0x413184a8 | |
0bcbf9b2 jz 0x0bcb0018 ->2 | |
0bcbf9b8 cmp r15d, 0x41309a18 | |
0bcbf9bf jz 0x0bcb001c ->3 | |
0bcbf9c5 cmp r15d, 0x41309870 | |
0bcbf9cc jnz 0x0bcb0020 ->4 | |
0bcbf9d2 cmp ebp, 0x41318880 | |
0bcbf9d8 jnz 0x0bcb0024 ->5 | |
0bcbf9de cmp dword [rdx+0xc], -0x0c | |
0bcbf9e2 jnz 0x0bcb0024 ->5 | |
0bcbf9e8 mov ebp, [rdx+0x8] | |
0bcbf9eb cmp dword [rdx+0x1c], -0x0c | |
0bcbf9ef jnz 0x0bcb0024 ->5 | |
0bcbf9f5 mov ebx, [rdx+0x18] | |
0bcbf9f8 mov esi, 0x41a2b268 | |
0bcbf9fd call 0x004223c0 ->lj_tab_dup | |
0bcbfa02 mov edx, [0x413074b4] | |
0bcbfa09 cmp dword [rbx+0x1c], +0x03 | |
0bcbfa0d jnz 0x0bcb0024 ->5 | |
0bcbfa13 mov r14d, [rbx+0x14] | |
0bcbfa17 mov rdi, 0xfffffffb41a31258 | |
0bcbfa21 cmp rdi, [r14+0x50] | |
0bcbfa25 jnz 0x0bcb0024 ->5 | |
0bcbfa2b cmp dword [r14+0x4c], -0x01 | |
0bcbfa30 jnz 0x0bcb0024 ->5 | |
0bcbfa36 cmp dword [rbx+0x10], +0x00 | |
0bcbfa3a jnz 0x0bcb0024 ->5 | |
0bcbfa40 mov ebx, [rax+0x8] | |
0bcbfa43 mov dword [rbx+0x14], 0xffffffff | |
0bcbfa4a cmp dword [rbp+0x1c], +0x03 | |
0bcbfa4e jnz 0x0bcb0028 ->6 | |
0bcbfa54 mov ebx, [rbp+0x14] | |
0bcbfa57 mov rdi, 0xfffffffb41a319c0 | |
0bcbfa61 cmp rdi, [rbx+0x20] | |
0bcbfa65 jnz 0x0bcb0028 ->6 | |
0bcbfa6b cmp dword [rbp+0x10], +0x00 | |
0bcbfa6f jnz 0x0bcb0028 ->6 | |
0bcbfa75 mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbfa7c mov [rbx+0x18], eax | |
0bcbfa7f test byte [rbp+0x4], 0x4 | |
0bcbfa83 jz 0x0bcbfa9a | |
0bcbfa85 and byte [rbp+0x4], 0xfb | |
0bcbfa89 mov edi, [0x413073f4] | |
0bcbfa90 mov [0x413073f4], ebp | |
0bcbfa97 mov [rbp+0xc], edi | |
0bcbfa9a mov eax, [0x413074b0] | |
0bcbfaa1 mov eax, [rax+0x20] | |
0bcbfaa4 sub eax, edx | |
0bcbfaa6 cmp eax, +0x68 | |
0bcbfaa9 jb 0x0bcb002c ->7 | |
0bcbfaaf mov dword [rdx-0x8], 0x41318880 | |
0bcbfab6 xor eax, eax | |
0bcbfab8 mov ebx, 0x41a32a20 | |
0bcbfabd mov r14d, 0x41308008 | |
0bcbfac3 jmp 0x00420177 | |
---- TRACE 3 stop -> return | |
---- TRACE 3 exit 4 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 4 | |
---- TRACE 3 exit 4 | |
---- TRACE 3 exit 5 | |
---- TRACE 3 exit 5 | |
---- TRACE 4 start ssa.lua:52 | |
0001 TDUP 2 1 | |
0002 TGETS 3 1 2 ; "label" | |
0003 TSETB 3 2 2 | |
0004 TSETS 2 0 0 ; "control" | |
0005 RET0 0 1 | |
---- TRACE 4 IR | |
.... SNAP #0 [ ---- ---- ---- ] | |
0001 rax > [31mtab[m TDUP [31m{0x41a2b268}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 [35mint[m FLOAD 0002 tab.hmask | |
0004 > [35mint[m EQ 0003 [35m+3 [m | |
0005 rbp p32 FLOAD 0002 tab.node | |
0006 > p32 HREFK 0005 [32m"label"[m @3 | |
0007 rbp > [32mstr[m HLOAD 0006 | |
0008 rbx p32 FLOAD 0001 tab.array | |
0009 p32 AREF 0008 [35m+2 [m | |
0010 [32mstr[m ASTORE 0009 0007 | |
.... SNAP #1 [ ---- ---- ---- [31m0001[m ---- ] | |
0011 rbp > [31mtab[m SLOAD #1 T | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+3 [m | |
0014 rbx p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"control"[m @1 | |
0016 [31mtab[m FLOAD 0011 tab.meta | |
0017 > [31mtab[m EQ 0016 [31m[NULL][m | |
0018 [31mtab[m HSTORE 0015 0001 | |
0019 nil TBAR 0011 | |
.... SNAP #2 [ ---- ] | |
---- TRACE 4 mcode 256 | |
0bcbf721 mov dword [0x41307410], 0x4 | |
0bcbf72c mov edi, [0x413073d8] | |
0bcbf733 cmp edi, [0x413073dc] | |
0bcbf73a jb 0x0bcbf753 | |
0bcbf73c mov esi, 0x1 | |
0bcbf741 mov edi, 0x413073b8 | |
0bcbf746 call 0x00421730 ->lj_gc_step_jit | |
0bcbf74b test eax, eax | |
0bcbf74d jnz 0x0bcb0010 ->0 | |
0bcbf753 mov edi, [0x413074b0] | |
0bcbf75a mov esi, 0x41a2b268 | |
0bcbf75f call 0x004223c0 ->lj_tab_dup | |
0bcbf764 mov edx, [0x413074b4] | |
0bcbf76b cmp dword [rdx+0xc], -0x0c | |
0bcbf76f jnz 0x0bcb0010 ->0 | |
0bcbf775 mov ebp, [rdx+0x8] | |
0bcbf778 cmp dword [rbp+0x1c], +0x03 | |
0bcbf77c jnz 0x0bcb0010 ->0 | |
0bcbf782 mov ebp, [rbp+0x14] | |
0bcbf785 mov rdi, 0xfffffffb41a31258 | |
0bcbf78f cmp rdi, [rbp+0x50] | |
0bcbf793 jnz 0x0bcb0010 ->0 | |
0bcbf799 cmp dword [rbp+0x4c], -0x05 | |
0bcbf79d jnz 0x0bcb0010 ->0 | |
0bcbf7a3 mov ebp, [rbp+0x48] | |
0bcbf7a6 mov ebx, [rax+0x8] | |
0bcbf7a9 mov dword [rbx+0x14], 0xfffffffb | |
0bcbf7b0 mov [rbx+0x10], ebp | |
0bcbf7b3 cmp dword [rdx+0x4], -0x0c | |
0bcbf7b7 jnz 0x0bcb0014 ->1 | |
0bcbf7bd mov ebp, [rdx] | |
0bcbf7bf cmp dword [rbp+0x1c], +0x03 | |
0bcbf7c3 jnz 0x0bcb0014 ->1 | |
0bcbf7c9 mov ebx, [rbp+0x14] | |
0bcbf7cc mov rdi, 0xfffffffb41a319c0 | |
0bcbf7d6 cmp rdi, [rbx+0x20] | |
0bcbf7da jnz 0x0bcb0014 ->1 | |
0bcbf7e0 cmp dword [rbp+0x10], +0x00 | |
0bcbf7e4 jnz 0x0bcb0014 ->1 | |
0bcbf7ea mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbf7f1 mov [rbx+0x18], eax | |
0bcbf7f4 test byte [rbp+0x4], 0x4 | |
0bcbf7f8 jz 0x0bcbf80f | |
0bcbf7fa and byte [rbp+0x4], 0xfb | |
0bcbf7fe mov edi, [0x413073f4] | |
0bcbf805 mov [0x413073f4], ebp | |
0bcbf80c mov [rbp+0xc], edi | |
0bcbf80f xor eax, eax | |
0bcbf811 mov ebx, 0x41324304 | |
0bcbf816 mov r14d, 0x41308008 | |
0bcbf81c jmp 0x00420177 | |
---- TRACE 4 stop -> return | |
---- TRACE 3 exit 5 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 4 | |
---- TRACE 5 start ssa.lua:49 | |
0001 TDUP 4 1 | |
0002 TSETB 1 4 2 | |
0003 TGETS 5 2 2 ; "label" | |
0004 TSETB 5 4 3 | |
0005 TGETS 5 3 2 ; "label" | |
0006 TSETB 5 4 4 | |
0007 TSETS 4 0 0 ; "control" | |
0008 RET0 0 1 | |
---- TRACE 5 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rax > [31mtab[m TDUP [31m{0x41a257d8}[m | |
0002 rbx > [31mtab[m SLOAD #2 T | |
0003 rbp p32 FLOAD 0001 tab.array | |
0004 p32 AREF 0003 [35m+2 [m | |
0005 [31mtab[m ASTORE 0004 0002 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [31m0001[m ] | |
0006 rbx > [31mtab[m SLOAD #3 T | |
0007 [35mint[m FLOAD 0006 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+3 [m | |
0009 r15 p32 FLOAD 0006 tab.node | |
0010 > p32 HREFK 0009 [32m"label"[m @3 | |
0011 > nil HLOAD 0010 | |
0012 [31mtab[m FLOAD 0006 tab.meta | |
0013 > [31mtab[m EQ 0012 [31m[NULL][m | |
0014 p32 AREF 0003 [35m+3 [m | |
0015 nil ASTORE 0014 nil | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0016 rbx > [31mtab[m SLOAD #4 T | |
0017 [35mint[m FLOAD 0016 tab.hmask | |
0018 > [35mint[m EQ 0017 [35m+3 [m | |
0019 r15 p32 FLOAD 0016 tab.node | |
0020 > p32 HREFK 0019 [32m"label"[m @3 | |
0021 > nil HLOAD 0020 | |
0022 [31mtab[m FLOAD 0016 tab.meta | |
0023 > [31mtab[m EQ 0022 [31m[NULL][m | |
0024 p32 AREF 0003 [35m+4 [m | |
0025 nil ASTORE 0024 nil | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0026 rbp > [31mtab[m SLOAD #1 T | |
0027 [35mint[m FLOAD 0026 tab.hmask | |
0028 > [35mint[m EQ 0027 [35m+3 [m | |
0029 rbx p32 FLOAD 0026 tab.node | |
0030 > p32 HREFK 0029 [32m"control"[m @1 | |
0031 [31mtab[m FLOAD 0026 tab.meta | |
0032 > [31mtab[m EQ 0031 [31m[NULL][m | |
0033 [31mtab[m HSTORE 0030 0001 | |
0034 nil TBAR 0026 | |
.... SNAP #4 [ ---- ] | |
---- TRACE 5 mcode 360 | |
0bcbf5b2 mov dword [0x41307410], 0x5 | |
0bcbf5bd mov edi, [0x413073d8] | |
0bcbf5c4 cmp edi, [0x413073dc] | |
0bcbf5cb jb 0x0bcbf5e4 | |
0bcbf5cd mov esi, 0x1 | |
0bcbf5d2 mov edi, 0x413073b8 | |
0bcbf5d7 call 0x00421730 ->lj_gc_step_jit | |
0bcbf5dc test eax, eax | |
0bcbf5de jnz 0x0bcb0010 ->0 | |
0bcbf5e4 mov edi, [0x413074b0] | |
0bcbf5eb mov esi, 0x41a257d8 | |
0bcbf5f0 call 0x004223c0 ->lj_tab_dup | |
0bcbf5f5 mov edx, [0x413074b4] | |
0bcbf5fc cmp dword [rdx+0xc], -0x0c | |
0bcbf600 jnz 0x0bcb0010 ->0 | |
0bcbf606 mov ebx, [rdx+0x8] | |
0bcbf609 mov ebp, [rax+0x8] | |
0bcbf60c mov dword [rbp+0x14], 0xfffffff4 | |
0bcbf613 mov [rbp+0x10], ebx | |
0bcbf616 cmp dword [rdx+0x14], -0x0c | |
0bcbf61a jnz 0x0bcb0014 ->1 | |
0bcbf620 mov ebx, [rdx+0x10] | |
0bcbf623 cmp dword [rbx+0x1c], +0x03 | |
0bcbf627 jnz 0x0bcb0014 ->1 | |
0bcbf62d mov r15d, [rbx+0x14] | |
0bcbf631 mov rdi, 0xfffffffb41a31258 | |
0bcbf63b cmp rdi, [r15+0x50] | |
0bcbf63f jnz 0x0bcb0014 ->1 | |
0bcbf645 cmp dword [r15+0x4c], -0x01 | |
0bcbf64a jnz 0x0bcb0014 ->1 | |
0bcbf650 cmp dword [rbx+0x10], +0x00 | |
0bcbf654 jnz 0x0bcb0014 ->1 | |
0bcbf65a mov dword [rbp+0x1c], 0xffffffff | |
0bcbf661 cmp dword [rdx+0x1c], -0x0c | |
0bcbf665 jnz 0x0bcb0018 ->2 | |
0bcbf66b mov ebx, [rdx+0x18] | |
0bcbf66e cmp dword [rbx+0x1c], +0x03 | |
0bcbf672 jnz 0x0bcb0018 ->2 | |
0bcbf678 mov r15d, [rbx+0x14] | |
0bcbf67c mov rdi, 0xfffffffb41a31258 | |
0bcbf686 cmp rdi, [r15+0x50] | |
0bcbf68a jnz 0x0bcb0018 ->2 | |
0bcbf690 cmp dword [r15+0x4c], -0x01 | |
0bcbf695 jnz 0x0bcb0018 ->2 | |
0bcbf69b cmp dword [rbx+0x10], +0x00 | |
0bcbf69f jnz 0x0bcb0018 ->2 | |
0bcbf6a5 mov dword [rbp+0x24], 0xffffffff | |
0bcbf6ac cmp dword [rdx+0x4], -0x0c | |
0bcbf6b0 jnz 0x0bcb001c ->3 | |
0bcbf6b6 mov ebp, [rdx] | |
0bcbf6b8 cmp dword [rbp+0x1c], +0x03 | |
0bcbf6bc jnz 0x0bcb001c ->3 | |
0bcbf6c2 mov ebx, [rbp+0x14] | |
0bcbf6c5 mov rdi, 0xfffffffb41a319c0 | |
0bcbf6cf cmp rdi, [rbx+0x20] | |
0bcbf6d3 jnz 0x0bcb001c ->3 | |
0bcbf6d9 cmp dword [rbp+0x10], +0x00 | |
0bcbf6dd jnz 0x0bcb001c ->3 | |
0bcbf6e3 mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbf6ea mov [rbx+0x18], eax | |
0bcbf6ed test byte [rbp+0x4], 0x4 | |
0bcbf6f1 jz 0x0bcbf708 | |
0bcbf6f3 and byte [rbp+0x4], 0xfb | |
0bcbf6f7 mov edi, [0x413073f4] | |
0bcbf6fe mov [0x413073f4], ebp | |
0bcbf705 mov [rbp+0xc], edi | |
0bcbf708 xor eax, eax | |
0bcbf70a mov ebx, 0x41a323b0 | |
0bcbf70f mov r14d, 0x41308008 | |
0bcbf715 jmp 0x00420177 | |
---- TRACE 5 stop -> return | |
---- TRACE 3 exit 2 |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x41677414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x41687508}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x41677458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x41677410], 0x1 | |
0bcbfe53 mov edi, [0x416773d8] | |
0bcbfe5a cmp edi, [0x416773dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x416773b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x416774b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x41688a78] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x41677414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x416774b0] | |
0bcbfee0 mov esi, 0x41687508 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x416774b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x416774b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb403dc1b8 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x41677448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x416774b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x416773f4] | |
0bcbffcf mov [0x416773f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x403dce90 | |
0bcbffee mov r14d, 0x41678008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0058 . UGET 5 2 ; finish_goto | |
0059 . MOV 6 1 | |
0060 . MOV 7 2 | |
0061 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0062 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . FUNCF 13 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . FUNCF 13 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0014 . . UGET 5 0 ; add_block | |
0015 . . CALL 5 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0016 . . UGET 6 0 ; add_block | |
0017 . . CALL 6 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0018 . . UGET 7 1 ; compile_bool | |
0019 . . TGETB 8 0 2 | |
0020 . . MOV 9 1 | |
0021 . . MOV 10 5 | |
0022 . . MOV 11 6 | |
0023 . . CALL 7 1 5 | |
0000 . . . FUNCF 13 ; ssa.lua:55 | |
---- TRACE 2 abort ssa.lua:56 -- retry recording | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0070 ISNES 4 12 ; "match" | |
0071 JMP 5 => 0077 | |
0077 ISNES 4 14 ; "fail" | |
0078 JMP 5 => 0084 | |
0084 GGET 5 0 ; "assert" | |
0085 UGET 6 4 ; relops | |
0086 TGETV 6 6 4 | |
0087 CALL 5 1 2 | |
0000 . FUNCC ; assert | |
0088 UGET 5 5 ; finish_if | |
0089 MOV 6 1 | |
0090 MOV 7 0 | |
0091 MOV 8 2 | |
0092 MOV 9 3 | |
0093 CALL 5 1 5 | |
0000 . FUNCF 6 ; ssa.lua:49 | |
0001 . TDUP 4 1 | |
0002 . TSETB 1 4 2 | |
0003 . TGETS 5 2 2 ; "label" | |
0004 . TSETB 5 4 3 | |
0005 . TGETS 5 3 2 ; "label" | |
0006 . TSETB 5 4 4 | |
0007 . TSETS 4 0 0 ; "control" | |
0008 . RET0 0 1 | |
0094 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x41677458] | |
0005 r15 [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 r15 p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 r15 > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 r15 p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x41677458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 rbx > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 r15 p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 r15 > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m NE 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [32mstr[m NE 0028 [32m"match"[m | |
.... SNAP #6 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0034 > [32mstr[m NE 0028 [32m"fail"[m | |
.... SNAP #7 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0035 r14 > p32 UREFC 0001 #4 | |
0036 r13 > [31mtab[m ULOAD 0035 | |
0037 r14 p32 HREF 0036 0028 | |
0038 > tru HLOAD 0037 | |
0039 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0040 rbp > [31mtab[m SLOAD #2 T | |
0041 r12 > [31mtab[m SLOAD #3 T | |
0042 r13 > [31mtab[m SLOAD #4 T | |
0043 rax > [31mtab[m TDUP [31m{0x403d07d8}[m | |
0044 r14 p32 FLOAD 0043 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 [31mtab[m ASTORE 0045 0021 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- [31m0041[m [31m0042[m [31m0043[m ] | |
0047 [35mint[m FLOAD 0041 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+1 [m | |
0049 rbx p32 FLOAD 0041 tab.node | |
0050 > p32 HREFK 0049 [32m"label"[m @1 | |
0051 rbx > [32mstr[m HLOAD 0050 | |
0052 p32 AREF 0044 [35m+3 [m | |
0053 [32mstr[m ASTORE 0052 0051 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- [31m0042[m [31m0043[m ---- ] | |
0054 [35mint[m FLOAD 0042 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 rbx p32 FLOAD 0042 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 rbx > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0044 [35m+4 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- ---- [31m0043[m ---- ] | |
0061 [35mint[m FLOAD 0040 tab.hmask | |
0062 > [35mint[m EQ 0061 [35m+3 [m | |
0063 rbx p32 FLOAD 0040 tab.node | |
0064 > p32 HREFK 0063 [32m"control"[m @1 | |
0065 [31mtab[m FLOAD 0040 tab.meta | |
0066 > [31mtab[m EQ 0065 [31m[NULL][m | |
0067 [31mtab[m HSTORE 0064 0043 | |
0068 nil TBAR 0040 | |
.... SNAP #11 [ [1mssa.lua:55[m|] | |
---- TRACE 2 mcode 878 | |
0bcbfacf mov dword [0x41677410], 0x2 | |
0bcbfada mov edi, [0x416773d8] | |
0bcbfae1 cmp edi, [0x416773dc] | |
0bcbfae8 jb 0x0bcbfb01 | |
0bcbfaea mov esi, 0x1 | |
0bcbfaef mov edi, 0x416773b8 | |
0bcbfaf4 call 0x00421730 ->lj_gc_step_jit | |
0bcbfaf9 test eax, eax | |
0bcbfafb jnz 0x0bcb0010 ->0 | |
0bcbfb01 mov edi, [0x416774b0] | |
0bcbfb08 mov edx, [0x416774b4] | |
0bcbfb0f mov ebp, [rdx-0x8] | |
0bcbfb12 mov ebx, [rbp+0x8] | |
0bcbfb15 mov esi, [rbx+0x1c] | |
0bcbfb18 and esi, 0xce2b6183 | |
0bcbfb1e lea esi, [rsi+rsi*2] | |
0bcbfb21 shl esi, 0x03 | |
0bcbfb24 add esi, [rbx+0x14] | |
0bcbfb27 cmp dword [rsi+0xc], -0x05 | |
0bcbfb2b jnz 0x0bcbfb3a | |
0bcbfb2d cmp dword [rsi+0x8], 0x41679db0 | |
0bcbfb34 jz 0x0bcb0010 ->0 | |
0bcbfb3a mov esi, [rsi+0x10] | |
0bcbfb3d test esi, esi | |
0bcbfb3f jnz 0x0bcbfb27 | |
0bcbfb41 mov r15d, [rbx+0x10] | |
0bcbfb45 test r15d, r15d | |
0bcbfb48 jz 0x0bcb0010 ->0 | |
0bcbfb4e cmp dword [r15+0x1c], +0x01 | |
0bcbfb53 jnz 0x0bcb0010 ->0 | |
0bcbfb59 mov r15d, [r15+0x14] | |
0bcbfb5d mov rsi, 0xfffffffb416794c8 | |
0bcbfb67 cmp rsi, [r15+0x20] | |
0bcbfb6b jnz 0x0bcb0010 ->0 | |
0bcbfb71 cmp dword [r15+0x1c], -0x0c | |
0bcbfb76 jnz 0x0bcb0010 ->0 | |
0bcbfb7c mov r15d, [r15+0x18] | |
0bcbfb80 cmp dword [r15+0x1c], +0x3f | |
0bcbfb85 jnz 0x0bcb0010 ->0 | |
0bcbfb8b mov r15d, [r15+0x14] | |
0bcbfb8f mov rsi, 0xfffffffb41679db0 | |
0bcbfb99 cmp rsi, [r15+0x50] | |
0bcbfb9d jnz 0x0bcb0010 ->0 | |
0bcbfba3 cmp dword [r15+0x4c], -0x09 | |
0bcbfba8 jnz 0x0bcb0010 ->0 | |
0bcbfbae mov esi, [rbx+0x1c] | |
0bcbfbb1 and esi, 0x798a813c | |
0bcbfbb7 lea esi, [rsi+rsi*2] | |
0bcbfbba shl esi, 0x03 | |
0bcbfbbd add esi, [rbx+0x14] | |
0bcbfbc0 cmp dword [rsi+0xc], -0x05 | |
0bcbfbc4 jnz 0x0bcbfbd3 | |
0bcbfbc6 cmp dword [rsi+0x8], 0x41679fb0 | |
0bcbfbcd jz 0x0bcb0010 ->0 | |
0bcbfbd3 mov esi, [rsi+0x10] | |
0bcbfbd6 test esi, esi | |
0bcbfbd8 jnz 0x0bcbfbc0 | |
0bcbfbda mov rsi, 0xfffffffb41679fb0 | |
0bcbfbe4 cmp rsi, [r15+0x5a8] | |
0bcbfbeb jnz 0x0bcb0010 ->0 | |
0bcbfbf1 cmp dword [r15+0x5a4], -0x09 | |
0bcbfbf9 jnz 0x0bcb0010 ->0 | |
0bcbfbff cmp dword [rdx+0x4], -0x0c | |
0bcbfc03 jnz 0x0bcb0010 ->0 | |
0bcbfc09 mov ebx, [rdx] | |
0bcbfc0b cmp dword [r15+0x5a0], 0x41679f18 | |
0bcbfc16 jnz 0x0bcb0010 ->0 | |
0bcbfc1c cmp dword [r15+0x48], 0x41679d88 | |
0bcbfc24 jnz 0x0bcb0010 ->0 | |
0bcbfc2a cmp dword [rbx+0x18], +0x01 | |
0bcbfc2e jbe 0x0bcb0010 ->0 | |
0bcbfc34 mov r15d, [rbx+0x8] | |
0bcbfc38 cmp dword [r15+0xc], -0x05 | |
0bcbfc3d jnz 0x0bcb0010 ->0 | |
0bcbfc43 mov r15d, [r15+0x8] | |
0bcbfc47 cmp r15d, 0x416798f8 | |
0bcbfc4e jz 0x0bcb0014 ->1 | |
0bcbfc54 cmp r15d, 0x416884a8 | |
0bcbfc5b jz 0x0bcb0018 ->2 | |
0bcbfc61 cmp r15d, 0x41679a18 | |
0bcbfc68 jz 0x0bcb001c ->3 | |
0bcbfc6e cmp r15d, 0x41679870 | |
0bcbfc75 jz 0x0bcb0020 ->4 | |
0bcbfc7b cmp r15d, 0x4167ccb0 | |
0bcbfc82 jz 0x0bcb0024 ->5 | |
0bcbfc88 cmp r15d, 0x41694450 | |
0bcbfc8f jz 0x0bcb0028 ->6 | |
0bcbfc95 mov esi, [rbp+0x24] | |
0bcbfc98 cmp byte [rsi+0x6], 0x1 | |
0bcbfc9c jnz 0x0bcb002c ->7 | |
0bcbfca2 lea r14d, [rsi+0x8] | |
0bcbfca6 cmp dword [r14+0x4], -0x0c | |
0bcbfcab jnz 0x0bcb002c ->7 | |
0bcbfcb1 mov r13d, [r14] | |
0bcbfcb4 mov r14d, [r13+0x1c] | |
0bcbfcb8 and r14d, [r15+0x8] | |
0bcbfcbc lea r14d, [r14+r14*2] | |
0bcbfcc0 shl r14d, 0x03 | |
0bcbfcc4 add r14d, [r13+0x14] | |
0bcbfcc8 cmp dword [r14+0xc], -0x05 | |
0bcbfccd jnz 0x0bcbfcd5 | |
0bcbfccf cmp r15d, [r14+0x8] | |
0bcbfcd3 jz 0x0bcbfce4 | |
0bcbfcd5 mov r14d, [r14+0x10] | |
0bcbfcd9 test r14d, r14d | |
0bcbfcdc jnz 0x0bcbfcc8 | |
0bcbfcde mov r14d, 0x41677458 | |
0bcbfce4 cmp dword [r14+0x4], -0x03 | |
0bcbfce9 jnz 0x0bcb002c ->7 | |
0bcbfcef cmp ebp, 0x41688880 | |
0bcbfcf5 jnz 0x0bcb002c ->7 | |
0bcbfcfb cmp dword [rdx+0xc], -0x0c | |
0bcbfcff jnz 0x0bcb002c ->7 | |
0bcbfd05 mov ebp, [rdx+0x8] | |
0bcbfd08 cmp dword [rdx+0x14], -0x0c | |
0bcbfd0c jnz 0x0bcb002c ->7 | |
0bcbfd12 mov r12d, [rdx+0x10] | |
0bcbfd16 cmp dword [rdx+0x1c], -0x0c | |
0bcbfd1a jnz 0x0bcb002c ->7 | |
0bcbfd20 mov r13d, [rdx+0x18] | |
0bcbfd24 mov esi, 0x403d07d8 | |
0bcbfd29 call 0x004223c0 ->lj_tab_dup | |
0bcbfd2e mov edx, [0x416774b4] | |
0bcbfd35 mov r14d, [rax+0x8] | |
0bcbfd39 mov dword [r14+0x14], 0xfffffff4 | |
0bcbfd41 mov [r14+0x10], ebx | |
0bcbfd45 cmp dword [r12+0x1c], +0x01 | |
0bcbfd4b jnz 0x0bcb0030 ->8 | |
0bcbfd51 mov ebx, [r12+0x14] | |
0bcbfd56 mov rdi, 0xfffffffb403dc258 | |
0bcbfd60 cmp rdi, [rbx+0x20] | |
0bcbfd64 jnz 0x0bcb0030 ->8 | |
0bcbfd6a cmp dword [rbx+0x1c], -0x05 | |
0bcbfd6e jnz 0x0bcb0030 ->8 | |
0bcbfd74 mov ebx, [rbx+0x18] | |
0bcbfd77 mov dword [r14+0x1c], 0xfffffffb | |
0bcbfd7f mov [r14+0x18], ebx | |
0bcbfd83 cmp dword [r13+0x1c], +0x01 | |
0bcbfd88 jnz 0x0bcb0034 ->9 | |
0bcbfd8e mov ebx, [r13+0x14] | |
0bcbfd92 mov rdi, 0xfffffffb403dc258 | |
0bcbfd9c cmp rdi, [rbx+0x20] | |
0bcbfda0 jnz 0x0bcb0034 ->9 | |
0bcbfda6 cmp dword [rbx+0x1c], -0x05 | |
0bcbfdaa jnz 0x0bcb0034 ->9 | |
0bcbfdb0 mov ebx, [rbx+0x18] | |
0bcbfdb3 mov dword [r14+0x24], 0xfffffffb | |
0bcbfdbb mov [r14+0x20], ebx | |
0bcbfdbf cmp dword [rbp+0x1c], +0x03 | |
0bcbfdc3 jnz 0x0bcb0038 ->10 | |
0bcbfdc9 mov ebx, [rbp+0x14] | |
0bcbfdcc mov rdi, 0xfffffffb403dc9c0 | |
0bcbfdd6 cmp rdi, [rbx+0x20] | |
0bcbfdda jnz 0x0bcb0038 ->10 | |
0bcbfde0 cmp dword [rbp+0x10], +0x00 | |
0bcbfde4 jnz 0x0bcb0038 ->10 | |
0bcbfdea mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbfdf1 mov [rbx+0x18], eax | |
0bcbfdf4 test byte [rbp+0x4], 0x4 | |
0bcbfdf8 jz 0x0bcbfe0f | |
0bcbfdfa and byte [rbp+0x4], 0xfb | |
0bcbfdfe mov edi, [0x416773f4] | |
0bcbfe05 mov [0x416773f4], ebp | |
0bcbfe0c mov [rbp+0xc], edi | |
0bcbfe0f mov eax, [0x416774b0] | |
0bcbfe16 mov eax, [rax+0x20] | |
0bcbfe19 sub eax, edx | |
0bcbfe1b cmp eax, +0x68 | |
0bcbfe1e jb 0x0bcb003c ->11 | |
0bcbfe24 mov dword [rdx-0x8], 0x41688880 | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x403dda20 | |
0bcbfe32 mov r14d, 0x41678008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 6 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 3 start 2/4 ssa.lua:70 | |
0065 UGET 5 2 ; finish_goto | |
0066 MOV 6 1 | |
0067 MOV 7 3 | |
0068 CALL 5 1 3 | |
0000 . FUNCF 4 ; ssa.lua:52 | |
0001 . TDUP 2 1 | |
0002 . TGETS 3 1 2 ; "label" | |
0003 . TSETB 3 2 2 | |
0004 . TSETS 2 0 0 ; "control" | |
0005 . RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 abort ssa.lua:79 -- down-recursion, restarting | |
---- TRACE 3 start ssa.lua:79 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0072 . UGET 5 3 ; finish_return | |
0073 . MOV 6 1 | |
0074 . TDUP 7 13 | |
0075 . CALL 5 1 3 | |
0000 . . FUNCF 3 ; ssa.lua:46 | |
0001 . . TDUP 2 1 | |
0002 . . TSETB 1 2 2 | |
0003 . . TSETS 2 0 0 ; "control" | |
0004 . . RET0 0 1 | |
0076 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0014 . . UGET 5 0 ; add_block | |
0015 . . CALL 5 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0016 . . UGET 6 0 ; add_block | |
0017 . . CALL 6 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0018 . . UGET 7 1 ; compile_bool | |
0019 . . TGETB 8 0 2 | |
0020 . . MOV 9 1 | |
0021 . . MOV 10 5 | |
0022 . . MOV 11 6 | |
0023 . . CALL 7 1 5 | |
0000 . . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . . GGET 4 0 ; "assert" | |
0002 . . . GGET 5 1 ; "type" | |
0003 . . . MOV 6 0 | |
0004 . . . CALL 5 2 2 | |
0000 . . . . FUNCC ; type | |
0005 . . . ISEQS 5 2 ; "table" | |
0006 . . . JMP 5 => 0009 | |
0009 . . . KPRI 5 2 | |
0010 . . . CALL 4 1 2 | |
0000 . . . . FUNCC ; assert | |
0011 . . . TGETB 4 0 1 | |
0012 . . . ISNES 4 3 ; "if" | |
0013 . . . JMP 5 => 0037 | |
0014 . . . UGET 5 0 ; add_block | |
0015 . . . CALL 5 2 1 | |
0000 . . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . . UGET 0 0 ; label_counter | |
0002 . . . . ADDVN 0 0 0 ; 1 | |
0003 . . . . USETV 0 0 ; label_counter | |
0004 . . . . KSTR 0 0 ; "L" | |
0005 . . . . UGET 1 0 ; label_counter | |
0006 . . . . CAT 0 0 1 | |
0007 . . . . TDUP 1 1 | |
0008 . . . . TNEW 2 0 | |
0009 . . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . . TSETS 0 1 3 ; "label" | |
0011 . . . . UGET 2 1 ; ssa | |
0012 . . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . . TSETV 1 2 0 | |
0014 . . . . RET1 1 2 | |
0016 . . . UGET 6 0 ; add_block | |
0017 . . . CALL 6 2 1 | |
0000 . . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . . UGET 0 0 ; label_counter | |
0002 . . . . ADDVN 0 0 0 ; 1 | |
0003 . . . . USETV 0 0 ; label_counter | |
0004 . . . . KSTR 0 0 ; "L" | |
0005 . . . . UGET 1 0 ; label_counter | |
0006 . . . . CAT 0 0 1 | |
0007 . . . . TDUP 1 1 | |
0008 . . . . TNEW 2 0 | |
0009 . . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . . TSETS 0 1 3 ; "label" | |
0011 . . . . UGET 2 1 ; ssa | |
0012 . . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . . TSETV 1 2 0 | |
0014 . . . . RET1 1 2 | |
0018 . . . UGET 7 1 ; compile_bool | |
0019 . . . TGETB 8 0 2 | |
0020 . . . MOV 9 1 | |
0021 . . . MOV 10 5 | |
0022 . . . MOV 11 6 | |
0023 . . . CALL 7 1 5 | |
0000 . . . . JFUNCF 13 2 ; ssa.lua:55 | |
---- TRACE 3 abort ssa.lua:55 -- call unroll limit reached | |
---- TRACE 3 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0065 UGET 5 2 ; finish_goto | |
0066 MOV 6 1 | |
0067 MOV 7 3 | |
0068 CALL 5 1 3 | |
0000 . FUNCF 4 ; ssa.lua:52 | |
0001 . TDUP 2 1 | |
0002 . TGETS 3 1 2 ; "label" | |
0003 . TSETB 3 2 2 | |
0004 . TSETS 2 0 0 ; "control" | |
0005 . RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x41677458] | |
0005 r15 [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 r15 p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 r15 > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 r15 p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x41677458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 rbx > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 r15 > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m EQ 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0034 rbp > [31mtab[m SLOAD #2 T | |
0035 rbx > [31mtab[m SLOAD #4 T | |
0036 rax > [31mtab[m TDUP [31m{0x403d6268}[m | |
0037 [35mint[m FLOAD 0035 tab.hmask | |
0038 > [35mint[m EQ 0037 [35m+3 [m | |
0039 r14 p32 FLOAD 0035 tab.node | |
0040 > p32 HREFK 0039 [32m"label"[m @3 | |
0041 > nil HLOAD 0040 | |
0042 [31mtab[m FLOAD 0035 tab.meta | |
0043 > [31mtab[m EQ 0042 [31m[NULL][m | |
0044 rbx p32 FLOAD 0036 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 nil ASTORE 0045 nil | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:52[m|[31m0034[m ---- [31m0036[m ---- ] | |
0047 [35mint[m FLOAD 0034 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+3 [m | |
0049 rbx p32 FLOAD 0034 tab.node | |
0050 > p32 HREFK 0049 [32m"control"[m @1 | |
0051 [31mtab[m FLOAD 0034 tab.meta | |
0052 > [31mtab[m EQ 0051 [31m[NULL][m | |
0053 [31mtab[m HSTORE 0050 0036 | |
0054 nil TBAR 0034 | |
.... SNAP #7 [ [1mssa.lua:55[m|] | |
---- TRACE 3 mcode 672 | |
0bcbf828 mov dword [0x41677410], 0x3 | |
0bcbf833 mov edi, [0x416773d8] | |
0bcbf83a cmp edi, [0x416773dc] | |
0bcbf841 jb 0x0bcbf85a | |
0bcbf843 mov esi, 0x1 | |
0bcbf848 mov edi, 0x416773b8 | |
0bcbf84d call 0x00421730 ->lj_gc_step_jit | |
0bcbf852 test eax, eax | |
0bcbf854 jnz 0x0bcb0010 ->0 | |
0bcbf85a mov edi, [0x416774b0] | |
0bcbf861 mov edx, [0x416774b4] | |
0bcbf868 mov ebp, [rdx-0x8] | |
0bcbf86b mov ebx, [rbp+0x8] | |
0bcbf86e mov esi, [rbx+0x1c] | |
0bcbf871 and esi, 0xce2b6183 | |
0bcbf877 lea esi, [rsi+rsi*2] | |
0bcbf87a shl esi, 0x03 | |
0bcbf87d add esi, [rbx+0x14] | |
0bcbf880 cmp dword [rsi+0xc], -0x05 | |
0bcbf884 jnz 0x0bcbf893 | |
0bcbf886 cmp dword [rsi+0x8], 0x41679db0 | |
0bcbf88d jz 0x0bcb0010 ->0 | |
0bcbf893 mov esi, [rsi+0x10] | |
0bcbf896 test esi, esi | |
0bcbf898 jnz 0x0bcbf880 | |
0bcbf89a mov r15d, [rbx+0x10] | |
0bcbf89e test r15d, r15d | |
0bcbf8a1 jz 0x0bcb0010 ->0 | |
0bcbf8a7 cmp dword [r15+0x1c], +0x01 | |
0bcbf8ac jnz 0x0bcb0010 ->0 | |
0bcbf8b2 mov r15d, [r15+0x14] | |
0bcbf8b6 mov rsi, 0xfffffffb416794c8 | |
0bcbf8c0 cmp rsi, [r15+0x20] | |
0bcbf8c4 jnz 0x0bcb0010 ->0 | |
0bcbf8ca cmp dword [r15+0x1c], -0x0c | |
0bcbf8cf jnz 0x0bcb0010 ->0 | |
0bcbf8d5 mov r15d, [r15+0x18] | |
0bcbf8d9 cmp dword [r15+0x1c], +0x3f | |
0bcbf8de jnz 0x0bcb0010 ->0 | |
0bcbf8e4 mov r15d, [r15+0x14] | |
0bcbf8e8 mov rsi, 0xfffffffb41679db0 | |
0bcbf8f2 cmp rsi, [r15+0x50] | |
0bcbf8f6 jnz 0x0bcb0010 ->0 | |
0bcbf8fc cmp dword [r15+0x4c], -0x09 | |
0bcbf901 jnz 0x0bcb0010 ->0 | |
0bcbf907 mov esi, [rbx+0x1c] | |
0bcbf90a and esi, 0x798a813c | |
0bcbf910 lea esi, [rsi+rsi*2] | |
0bcbf913 shl esi, 0x03 | |
0bcbf916 add esi, [rbx+0x14] | |
0bcbf919 cmp dword [rsi+0xc], -0x05 | |
0bcbf91d jnz 0x0bcbf92c | |
0bcbf91f cmp dword [rsi+0x8], 0x41679fb0 | |
0bcbf926 jz 0x0bcb0010 ->0 | |
0bcbf92c mov esi, [rsi+0x10] | |
0bcbf92f test esi, esi | |
0bcbf931 jnz 0x0bcbf919 | |
0bcbf933 mov rsi, 0xfffffffb41679fb0 | |
0bcbf93d cmp rsi, [r15+0x5a8] | |
0bcbf944 jnz 0x0bcb0010 ->0 | |
0bcbf94a cmp dword [r15+0x5a4], -0x09 | |
0bcbf952 jnz 0x0bcb0010 ->0 | |
0bcbf958 cmp dword [rdx+0x4], -0x0c | |
0bcbf95c jnz 0x0bcb0010 ->0 | |
0bcbf962 mov ebx, [rdx] | |
0bcbf964 cmp dword [r15+0x5a0], 0x41679f18 | |
0bcbf96f jnz 0x0bcb0010 ->0 | |
0bcbf975 cmp dword [r15+0x48], 0x41679d88 | |
0bcbf97d jnz 0x0bcb0010 ->0 | |
0bcbf983 cmp dword [rbx+0x18], +0x01 | |
0bcbf987 jbe 0x0bcb0010 ->0 | |
0bcbf98d mov ebx, [rbx+0x8] | |
0bcbf990 cmp dword [rbx+0xc], -0x05 | |
0bcbf994 jnz 0x0bcb0010 ->0 | |
0bcbf99a mov r15d, [rbx+0x8] | |
0bcbf99e cmp r15d, 0x416798f8 | |
0bcbf9a5 jz 0x0bcb0014 ->1 | |
0bcbf9ab cmp r15d, 0x416884a8 | |
0bcbf9b2 jz 0x0bcb0018 ->2 | |
0bcbf9b8 cmp r15d, 0x41679a18 | |
0bcbf9bf jz 0x0bcb001c ->3 | |
0bcbf9c5 cmp r15d, 0x41679870 | |
0bcbf9cc jnz 0x0bcb0020 ->4 | |
0bcbf9d2 cmp ebp, 0x41688880 | |
0bcbf9d8 jnz 0x0bcb0024 ->5 | |
0bcbf9de cmp dword [rdx+0xc], -0x0c | |
0bcbf9e2 jnz 0x0bcb0024 ->5 | |
0bcbf9e8 mov ebp, [rdx+0x8] | |
0bcbf9eb cmp dword [rdx+0x1c], -0x0c | |
0bcbf9ef jnz 0x0bcb0024 ->5 | |
0bcbf9f5 mov ebx, [rdx+0x18] | |
0bcbf9f8 mov esi, 0x403d6268 | |
0bcbf9fd call 0x004223c0 ->lj_tab_dup | |
0bcbfa02 mov edx, [0x416774b4] | |
0bcbfa09 cmp dword [rbx+0x1c], +0x03 | |
0bcbfa0d jnz 0x0bcb0024 ->5 | |
0bcbfa13 mov r14d, [rbx+0x14] | |
0bcbfa17 mov rdi, 0xfffffffb403dc258 | |
0bcbfa21 cmp rdi, [r14+0x50] | |
0bcbfa25 jnz 0x0bcb0024 ->5 | |
0bcbfa2b cmp dword [r14+0x4c], -0x01 | |
0bcbfa30 jnz 0x0bcb0024 ->5 | |
0bcbfa36 cmp dword [rbx+0x10], +0x00 | |
0bcbfa3a jnz 0x0bcb0024 ->5 | |
0bcbfa40 mov ebx, [rax+0x8] | |
0bcbfa43 mov dword [rbx+0x14], 0xffffffff | |
0bcbfa4a cmp dword [rbp+0x1c], +0x03 | |
0bcbfa4e jnz 0x0bcb0028 ->6 | |
0bcbfa54 mov ebx, [rbp+0x14] | |
0bcbfa57 mov rdi, 0xfffffffb403dc9c0 | |
0bcbfa61 cmp rdi, [rbx+0x20] | |
0bcbfa65 jnz 0x0bcb0028 ->6 | |
0bcbfa6b cmp dword [rbp+0x10], +0x00 | |
0bcbfa6f jnz 0x0bcb0028 ->6 | |
0bcbfa75 mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbfa7c mov [rbx+0x18], eax | |
0bcbfa7f test byte [rbp+0x4], 0x4 | |
0bcbfa83 jz 0x0bcbfa9a | |
0bcbfa85 and byte [rbp+0x4], 0xfb | |
0bcbfa89 mov edi, [0x416773f4] | |
0bcbfa90 mov [0x416773f4], ebp | |
0bcbfa97 mov [rbp+0xc], edi | |
0bcbfa9a mov eax, [0x416774b0] | |
0bcbfaa1 mov eax, [rax+0x20] | |
0bcbfaa4 sub eax, edx | |
0bcbfaa6 cmp eax, +0x68 | |
0bcbfaa9 jb 0x0bcb002c ->7 | |
0bcbfaaf mov dword [rdx-0x8], 0x41688880 | |
0bcbfab6 xor eax, eax | |
0bcbfab8 mov ebx, 0x403dda20 | |
0bcbfabd mov r14d, 0x41678008 | |
0bcbfac3 jmp 0x00420177 | |
---- TRACE 3 stop -> return | |
---- TRACE 3 exit 4 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 4 | |
---- TRACE 3 exit 4 | |
---- TRACE 3 exit 5 | |
---- TRACE 3 exit 5 | |
---- TRACE 4 start ssa.lua:52 | |
0001 TDUP 2 1 | |
0002 TGETS 3 1 2 ; "label" | |
0003 TSETB 3 2 2 | |
0004 TSETS 2 0 0 ; "control" | |
0005 RET0 0 1 | |
---- TRACE 4 IR | |
.... SNAP #0 [ ---- ---- ---- ] | |
0001 rax > [31mtab[m TDUP [31m{0x403d6268}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 [35mint[m FLOAD 0002 tab.hmask | |
0004 > [35mint[m EQ 0003 [35m+3 [m | |
0005 rbp p32 FLOAD 0002 tab.node | |
0006 > p32 HREFK 0005 [32m"label"[m @3 | |
0007 rbp > [32mstr[m HLOAD 0006 | |
0008 rbx p32 FLOAD 0001 tab.array | |
0009 p32 AREF 0008 [35m+2 [m | |
0010 [32mstr[m ASTORE 0009 0007 | |
.... SNAP #1 [ ---- ---- ---- [31m0001[m ---- ] | |
0011 rbp > [31mtab[m SLOAD #1 T | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+3 [m | |
0014 rbx p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"control"[m @1 | |
0016 [31mtab[m FLOAD 0011 tab.meta | |
0017 > [31mtab[m EQ 0016 [31m[NULL][m | |
0018 [31mtab[m HSTORE 0015 0001 | |
0019 nil TBAR 0011 | |
.... SNAP #2 [ ---- ] | |
---- TRACE 4 mcode 256 | |
0bcbf721 mov dword [0x41677410], 0x4 | |
0bcbf72c mov edi, [0x416773d8] | |
0bcbf733 cmp edi, [0x416773dc] | |
0bcbf73a jb 0x0bcbf753 | |
0bcbf73c mov esi, 0x1 | |
0bcbf741 mov edi, 0x416773b8 | |
0bcbf746 call 0x00421730 ->lj_gc_step_jit | |
0bcbf74b test eax, eax | |
0bcbf74d jnz 0x0bcb0010 ->0 | |
0bcbf753 mov edi, [0x416774b0] | |
0bcbf75a mov esi, 0x403d6268 | |
0bcbf75f call 0x004223c0 ->lj_tab_dup | |
0bcbf764 mov edx, [0x416774b4] | |
0bcbf76b cmp dword [rdx+0xc], -0x0c | |
0bcbf76f jnz 0x0bcb0010 ->0 | |
0bcbf775 mov ebp, [rdx+0x8] | |
0bcbf778 cmp dword [rbp+0x1c], +0x03 | |
0bcbf77c jnz 0x0bcb0010 ->0 | |
0bcbf782 mov ebp, [rbp+0x14] | |
0bcbf785 mov rdi, 0xfffffffb403dc258 | |
0bcbf78f cmp rdi, [rbp+0x50] | |
0bcbf793 jnz 0x0bcb0010 ->0 | |
0bcbf799 cmp dword [rbp+0x4c], -0x05 | |
0bcbf79d jnz 0x0bcb0010 ->0 | |
0bcbf7a3 mov ebp, [rbp+0x48] | |
0bcbf7a6 mov ebx, [rax+0x8] | |
0bcbf7a9 mov dword [rbx+0x14], 0xfffffffb | |
0bcbf7b0 mov [rbx+0x10], ebp | |
0bcbf7b3 cmp dword [rdx+0x4], -0x0c | |
0bcbf7b7 jnz 0x0bcb0014 ->1 | |
0bcbf7bd mov ebp, [rdx] | |
0bcbf7bf cmp dword [rbp+0x1c], +0x03 | |
0bcbf7c3 jnz 0x0bcb0014 ->1 | |
0bcbf7c9 mov ebx, [rbp+0x14] | |
0bcbf7cc mov rdi, 0xfffffffb403dc9c0 | |
0bcbf7d6 cmp rdi, [rbx+0x20] | |
0bcbf7da jnz 0x0bcb0014 ->1 | |
0bcbf7e0 cmp dword [rbp+0x10], +0x00 | |
0bcbf7e4 jnz 0x0bcb0014 ->1 | |
0bcbf7ea mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbf7f1 mov [rbx+0x18], eax | |
0bcbf7f4 test byte [rbp+0x4], 0x4 | |
0bcbf7f8 jz 0x0bcbf80f | |
0bcbf7fa and byte [rbp+0x4], 0xfb | |
0bcbf7fe mov edi, [0x416773f4] | |
0bcbf805 mov [0x416773f4], ebp | |
0bcbf80c mov [rbp+0xc], edi | |
0bcbf80f xor eax, eax | |
0bcbf811 mov ebx, 0x41694304 | |
0bcbf816 mov r14d, 0x41678008 | |
0bcbf81c jmp 0x00420177 | |
---- TRACE 4 stop -> return | |
---- TRACE 3 exit 5 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 4 | |
---- TRACE 5 start ssa.lua:49 | |
0001 TDUP 4 1 | |
0002 TSETB 1 4 2 | |
0003 TGETS 5 2 2 ; "label" | |
0004 TSETB 5 4 3 | |
0005 TGETS 5 3 2 ; "label" | |
0006 TSETB 5 4 4 | |
0007 TSETS 4 0 0 ; "control" | |
0008 RET0 0 1 | |
---- TRACE 5 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rax > [31mtab[m TDUP [31m{0x403d07d8}[m | |
0002 rbx > [31mtab[m SLOAD #2 T | |
0003 rbp p32 FLOAD 0001 tab.array | |
0004 p32 AREF 0003 [35m+2 [m | |
0005 [31mtab[m ASTORE 0004 0002 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [31m0001[m ] | |
0006 rbx > [31mtab[m SLOAD #3 T | |
0007 [35mint[m FLOAD 0006 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+3 [m | |
0009 r15 p32 FLOAD 0006 tab.node | |
0010 > p32 HREFK 0009 [32m"label"[m @3 | |
0011 > nil HLOAD 0010 | |
0012 [31mtab[m FLOAD 0006 tab.meta | |
0013 > [31mtab[m EQ 0012 [31m[NULL][m | |
0014 p32 AREF 0003 [35m+3 [m | |
0015 nil ASTORE 0014 nil | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0016 rbx > [31mtab[m SLOAD #4 T | |
0017 [35mint[m FLOAD 0016 tab.hmask | |
0018 > [35mint[m EQ 0017 [35m+3 [m | |
0019 r15 p32 FLOAD 0016 tab.node | |
0020 > p32 HREFK 0019 [32m"label"[m @3 | |
0021 > nil HLOAD 0020 | |
0022 [31mtab[m FLOAD 0016 tab.meta | |
0023 > [31mtab[m EQ 0022 [31m[NULL][m | |
0024 p32 AREF 0003 [35m+4 [m | |
0025 nil ASTORE 0024 nil | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [31m0001[m ---- ] | |
0026 rbp > [31mtab[m SLOAD #1 T | |
0027 [35mint[m FLOAD 0026 tab.hmask | |
0028 > [35mint[m EQ 0027 [35m+3 [m | |
0029 rbx p32 FLOAD 0026 tab.node | |
0030 > p32 HREFK 0029 [32m"control"[m @1 | |
0031 [31mtab[m FLOAD 0026 tab.meta | |
0032 > [31mtab[m EQ 0031 [31m[NULL][m | |
0033 [31mtab[m HSTORE 0030 0001 | |
0034 nil TBAR 0026 | |
.... SNAP #4 [ ---- ] | |
---- TRACE 5 mcode 360 | |
0bcbf5b2 mov dword [0x41677410], 0x5 | |
0bcbf5bd mov edi, [0x416773d8] | |
0bcbf5c4 cmp edi, [0x416773dc] | |
0bcbf5cb jb 0x0bcbf5e4 | |
0bcbf5cd mov esi, 0x1 | |
0bcbf5d2 mov edi, 0x416773b8 | |
0bcbf5d7 call 0x00421730 ->lj_gc_step_jit | |
0bcbf5dc test eax, eax | |
0bcbf5de jnz 0x0bcb0010 ->0 | |
0bcbf5e4 mov edi, [0x416774b0] | |
0bcbf5eb mov esi, 0x403d07d8 | |
0bcbf5f0 call 0x004223c0 ->lj_tab_dup | |
0bcbf5f5 mov edx, [0x416774b4] | |
0bcbf5fc cmp dword [rdx+0xc], -0x0c | |
0bcbf600 jnz 0x0bcb0010 ->0 | |
0bcbf606 mov ebx, [rdx+0x8] | |
0bcbf609 mov ebp, [rax+0x8] | |
0bcbf60c mov dword [rbp+0x14], 0xfffffff4 | |
0bcbf613 mov [rbp+0x10], ebx | |
0bcbf616 cmp dword [rdx+0x14], -0x0c | |
0bcbf61a jnz 0x0bcb0014 ->1 | |
0bcbf620 mov ebx, [rdx+0x10] | |
0bcbf623 cmp dword [rbx+0x1c], +0x03 | |
0bcbf627 jnz 0x0bcb0014 ->1 | |
0bcbf62d mov r15d, [rbx+0x14] | |
0bcbf631 mov rdi, 0xfffffffb403dc258 | |
0bcbf63b cmp rdi, [r15+0x50] | |
0bcbf63f jnz 0x0bcb0014 ->1 | |
0bcbf645 cmp dword [r15+0x4c], -0x01 | |
0bcbf64a jnz 0x0bcb0014 ->1 | |
0bcbf650 cmp dword [rbx+0x10], +0x00 | |
0bcbf654 jnz 0x0bcb0014 ->1 | |
0bcbf65a mov dword [rbp+0x1c], 0xffffffff | |
0bcbf661 cmp dword [rdx+0x1c], -0x0c | |
0bcbf665 jnz 0x0bcb0018 ->2 | |
0bcbf66b mov ebx, [rdx+0x18] | |
0bcbf66e cmp dword [rbx+0x1c], +0x03 | |
0bcbf672 jnz 0x0bcb0018 ->2 | |
0bcbf678 mov r15d, [rbx+0x14] | |
0bcbf67c mov rdi, 0xfffffffb403dc258 | |
0bcbf686 cmp rdi, [r15+0x50] | |
0bcbf68a jnz 0x0bcb0018 ->2 | |
0bcbf690 cmp dword [r15+0x4c], -0x01 | |
0bcbf695 jnz 0x0bcb0018 ->2 | |
0bcbf69b cmp dword [rbx+0x10], +0x00 | |
0bcbf69f jnz 0x0bcb0018 ->2 | |
0bcbf6a5 mov dword [rbp+0x24], 0xffffffff | |
0bcbf6ac cmp dword [rdx+0x4], -0x0c | |
0bcbf6b0 jnz 0x0bcb001c ->3 | |
0bcbf6b6 mov ebp, [rdx] | |
0bcbf6b8 cmp dword [rbp+0x1c], +0x03 | |
0bcbf6bc jnz 0x0bcb001c ->3 | |
0bcbf6c2 mov ebx, [rbp+0x14] | |
0bcbf6c5 mov rdi, 0xfffffffb403dc9c0 | |
0bcbf6cf cmp rdi, [rbx+0x20] | |
0bcbf6d3 jnz 0x0bcb001c ->3 | |
0bcbf6d9 cmp dword [rbp+0x10], +0x00 | |
0bcbf6dd jnz 0x0bcb001c ->3 | |
0bcbf6e3 mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbf6ea mov [rbx+0x18], eax | |
0bcbf6ed test byte [rbp+0x4], 0x4 | |
0bcbf6f1 jz 0x0bcbf708 | |
0bcbf6f3 and byte [rbp+0x4], 0xfb | |
0bcbf6f7 mov edi, [0x416773f4] | |
0bcbf6fe mov [0x416773f4], ebp | |
0bcbf705 mov [rbp+0xc], edi | |
0bcbf708 xor eax, eax | |
0bcbf70a mov ebx, 0x403dd3b0 | |
0bcbf70f mov r14d, 0x41678008 | |
0bcbf715 jmp 0x00420177 | |
---- TRACE 5 stop -> return | |
---- TRACE 3 exit 2 |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x41ee4414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x41eeb660}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x41ee4458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x41ee4410], 0x1 | |
0bcbfe53 mov edi, [0x41ee43d8] | |
0bcbfe5a cmp edi, [0x41ee43dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x41ee43b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x41ee44b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x41efadf8] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x41ee4414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x41ee44b0] | |
0bcbfee0 mov esi, 0x41eeb660 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x41ee44b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x41ee44b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb415a3200 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x41ee4448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x41ee44b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x41ee43f4] | |
0bcbffcf mov [0x41ee43f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x415a3ed8 | |
0bcbffee mov r14d, 0x41ee5008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . FUNCF 13 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . FUNCF 13 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0030 . UGET 7 1 ; compile_bool | |
0031 . TGETB 8 0 4 | |
0032 . MOV 9 6 | |
0033 . MOV 10 2 | |
0034 . MOV 11 3 | |
0035 . CALL 7 1 5 | |
0000 . . FUNCF 13 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0079 . . UGET 5 3 ; finish_return | |
0080 . . MOV 6 1 | |
0081 . . TDUP 7 15 | |
0082 . . CALL 5 1 3 | |
0000 . . . FUNCF 3 ; ssa.lua:46 | |
0001 . . . TDUP 2 1 | |
0002 . . . TSETB 1 2 2 | |
0003 . . . TSETS 2 0 0 ; "control" | |
0004 . . . RET0 0 1 | |
0083 . . JMP 5 => 0094 | |
0094 . . RET0 0 1 | |
0036 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 2 abort ssa.lua:79 -- retry recording | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0070 ISNES 4 12 ; "match" | |
0071 JMP 5 => 0077 | |
0077 ISNES 4 14 ; "fail" | |
0078 JMP 5 => 0084 | |
0084 GGET 5 0 ; "assert" | |
0085 UGET 6 4 ; relops | |
0086 TGETV 6 6 4 | |
0087 CALL 5 1 2 | |
0000 . FUNCC ; assert | |
0088 UGET 5 5 ; finish_if | |
0089 MOV 6 1 | |
0090 MOV 7 0 | |
0091 MOV 8 2 | |
0092 MOV 9 3 | |
0093 CALL 5 1 5 | |
0000 . FUNCF 6 ; ssa.lua:49 | |
0001 . TDUP 4 1 | |
0002 . TSETB 1 4 2 | |
0003 . TGETS 5 2 2 ; "label" | |
0004 . TSETB 5 4 3 | |
0005 . TGETS 5 3 2 ; "label" | |
0006 . TSETB 5 4 4 | |
0007 . TSETS 4 0 0 ; "control" | |
0008 . RET0 0 1 | |
0094 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 r15 [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x41ee4458] | |
0005 rbx [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 rbx p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 rbx > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 rbx p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x41ee4458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 r13 > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 rbx > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m NE 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [32mstr[m NE 0028 [32m"match"[m | |
.... SNAP #6 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0034 > [32mstr[m NE 0028 [32m"fail"[m | |
.... SNAP #7 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0035 r15 > p32 UREFC 0001 #4 | |
0036 r14 > [31mtab[m ULOAD 0035 | |
0037 r15 p32 HREF 0036 0028 | |
0038 > tru HLOAD 0037 | |
0039 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0040 rbp > [31mtab[m SLOAD #2 T | |
0041 r14 > [31mtab[m SLOAD #3 T | |
0042 r15 > [31mtab[m SLOAD #4 T | |
0043 [8] > [31mtab[m TDUP [31m{0x41ef15a0}[m | |
0044 rax p32 FLOAD 0043 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 [31mtab[m ASTORE 0045 0021 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- [31m0041[m [31m0042[m [31m0043[m ] | |
0047 [35mint[m FLOAD 0041 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+3 [m | |
0049 r13 p32 FLOAD 0041 tab.node | |
0050 > p32 HREFK 0049 [32m"label"[m @3 | |
0051 > nil HLOAD 0050 | |
0052 [31mtab[m FLOAD 0041 tab.meta | |
0053 > [31mtab[m EQ 0052 [31m[NULL][m | |
0054 p32 AREF 0044 [35m+3 [m | |
0055 nil ASTORE 0054 nil | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- [31m0042[m [31m0043[m ---- ] | |
0056 [35mint[m FLOAD 0042 tab.hmask | |
0057 > [35mint[m EQ 0056 [35m+3 [m | |
0058 r14 p32 FLOAD 0042 tab.node | |
0059 > p32 HREFK 0058 [32m"label"[m @3 | |
0060 > nil HLOAD 0059 | |
0061 [31mtab[m FLOAD 0042 tab.meta | |
0062 > [31mtab[m EQ 0061 [31m[NULL][m | |
0063 p32 AREF 0044 [35m+4 [m | |
0064 nil ASTORE 0063 nil | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- ---- [31m0043[m ---- ] | |
0065 rsi p32 HREF 0040 [32m"control"[m | |
0066 > p32 EQ 0065 [0x41ee4458] | |
0067 [31mtab[m FLOAD 0040 tab.meta | |
0068 > [31mtab[m EQ 0067 [31m[NULL][m | |
0069 rbx p32 NEWREF 0040 [32m"control"[m | |
0070 [31mtab[m HSTORE 0069 0043 | |
0071 nil TBAR 0040 | |
.... SNAP #11 [ [1mssa.lua:55[m|] | |
---- TRACE 2 mcode 922 | |
0bcbfaa3 mov dword [0x41ee4410], 0x2 | |
0bcbfaae mov edi, [0x41ee43d8] | |
0bcbfab5 cmp edi, [0x41ee43dc] | |
0bcbfabc jb 0x0bcbfad5 | |
0bcbfabe mov esi, 0x1 | |
0bcbfac3 mov edi, 0x41ee43b8 | |
0bcbfac8 call 0x00421730 ->lj_gc_step_jit | |
0bcbfacd test eax, eax | |
0bcbfacf jnz 0x0bcb0010 ->0 | |
0bcbfad5 mov edi, [0x41ee44b0] | |
0bcbfadc mov edx, [0x41ee44b4] | |
0bcbfae3 mov ebp, [rdx-0x8] | |
0bcbfae6 mov r15d, [rbp+0x8] | |
0bcbfaea mov esi, [r15+0x1c] | |
0bcbfaee and esi, 0xce2b6183 | |
0bcbfaf4 lea esi, [rsi+rsi*2] | |
0bcbfaf7 shl esi, 0x03 | |
0bcbfafa add esi, [r15+0x14] | |
0bcbfafe cmp dword [rsi+0xc], -0x05 | |
0bcbfb02 jnz 0x0bcbfb11 | |
0bcbfb04 cmp dword [rsi+0x8], 0x41ee6db0 | |
0bcbfb0b jz 0x0bcb0010 ->0 | |
0bcbfb11 mov esi, [rsi+0x10] | |
0bcbfb14 test esi, esi | |
0bcbfb16 jnz 0x0bcbfafe | |
0bcbfb18 mov ebx, [r15+0x10] | |
0bcbfb1c test ebx, ebx | |
0bcbfb1e jz 0x0bcb0010 ->0 | |
0bcbfb24 cmp dword [rbx+0x1c], +0x01 | |
0bcbfb28 jnz 0x0bcb0010 ->0 | |
0bcbfb2e mov ebx, [rbx+0x14] | |
0bcbfb31 mov rsi, 0xfffffffb41ee64c8 | |
0bcbfb3b cmp rsi, [rbx+0x20] | |
0bcbfb3f jnz 0x0bcb0010 ->0 | |
0bcbfb45 cmp dword [rbx+0x1c], -0x0c | |
0bcbfb49 jnz 0x0bcb0010 ->0 | |
0bcbfb4f mov ebx, [rbx+0x18] | |
0bcbfb52 cmp dword [rbx+0x1c], +0x3f | |
0bcbfb56 jnz 0x0bcb0010 ->0 | |
0bcbfb5c mov ebx, [rbx+0x14] | |
0bcbfb5f mov rsi, 0xfffffffb41ee6db0 | |
0bcbfb69 cmp rsi, [rbx+0x50] | |
0bcbfb6d jnz 0x0bcb0010 ->0 | |
0bcbfb73 cmp dword [rbx+0x4c], -0x09 | |
0bcbfb77 jnz 0x0bcb0010 ->0 | |
0bcbfb7d mov esi, [r15+0x1c] | |
0bcbfb81 and esi, 0x798a813c | |
0bcbfb87 lea esi, [rsi+rsi*2] | |
0bcbfb8a shl esi, 0x03 | |
0bcbfb8d add esi, [r15+0x14] | |
0bcbfb91 cmp dword [rsi+0xc], -0x05 | |
0bcbfb95 jnz 0x0bcbfba4 | |
0bcbfb97 cmp dword [rsi+0x8], 0x41ee6fb0 | |
0bcbfb9e jz 0x0bcb0010 ->0 | |
0bcbfba4 mov esi, [rsi+0x10] | |
0bcbfba7 test esi, esi | |
0bcbfba9 jnz 0x0bcbfb91 | |
0bcbfbab mov rsi, 0xfffffffb41ee6fb0 | |
0bcbfbb5 cmp rsi, [rbx+0x5a8] | |
0bcbfbbc jnz 0x0bcb0010 ->0 | |
0bcbfbc2 cmp dword [rbx+0x5a4], -0x09 | |
0bcbfbc9 jnz 0x0bcb0010 ->0 | |
0bcbfbcf cmp dword [rdx+0x4], -0x0c | |
0bcbfbd3 jnz 0x0bcb0010 ->0 | |
0bcbfbd9 mov r13d, [rdx] | |
0bcbfbdc cmp dword [rbx+0x5a0], 0x41ee6f18 | |
0bcbfbe6 jnz 0x0bcb0010 ->0 | |
0bcbfbec cmp dword [rbx+0x48], 0x41ee6d88 | |
0bcbfbf3 jnz 0x0bcb0010 ->0 | |
0bcbfbf9 cmp dword [r13+0x18], +0x01 | |
0bcbfbfe jbe 0x0bcb0010 ->0 | |
0bcbfc04 mov ebx, [r13+0x8] | |
0bcbfc08 cmp dword [rbx+0xc], -0x05 | |
0bcbfc0c jnz 0x0bcb0010 ->0 | |
0bcbfc12 mov ebx, [rbx+0x8] | |
0bcbfc15 cmp ebx, 0x41ee68f8 | |
0bcbfc1b jz 0x0bcb0014 ->1 | |
0bcbfc21 cmp ebx, 0x41ef8bd8 | |
0bcbfc27 jz 0x0bcb0018 ->2 | |
0bcbfc2d cmp ebx, 0x41ee6a18 | |
0bcbfc33 jz 0x0bcb001c ->3 | |
0bcbfc39 cmp ebx, 0x41ee6870 | |
0bcbfc3f jz 0x0bcb0020 ->4 | |
0bcbfc45 cmp ebx, 0x41ee9cb0 | |
0bcbfc4b jz 0x0bcb0024 ->5 | |
0bcbfc51 cmp ebx, 0x41f01450 | |
0bcbfc57 jz 0x0bcb0028 ->6 | |
0bcbfc5d mov esi, [rbp+0x24] | |
0bcbfc60 cmp byte [rsi+0x6], 0x1 | |
0bcbfc64 jnz 0x0bcb002c ->7 | |
0bcbfc6a lea r15d, [rsi+0x8] | |
0bcbfc6e cmp dword [r15+0x4], -0x0c | |
0bcbfc73 jnz 0x0bcb002c ->7 | |
0bcbfc79 mov r14d, [r15] | |
0bcbfc7c mov r15d, [r14+0x1c] | |
0bcbfc80 and r15d, [rbx+0x8] | |
0bcbfc84 lea r15d, [r15+r15*2] | |
0bcbfc88 shl r15d, 0x03 | |
0bcbfc8c add r15d, [r14+0x14] | |
0bcbfc90 cmp dword [r15+0xc], -0x05 | |
0bcbfc95 jnz 0x0bcbfc9d | |
0bcbfc97 cmp ebx, [r15+0x8] | |
0bcbfc9b jz 0x0bcbfcac | |
0bcbfc9d mov r15d, [r15+0x10] | |
0bcbfca1 test r15d, r15d | |
0bcbfca4 jnz 0x0bcbfc90 | |
0bcbfca6 mov r15d, 0x41ee4458 | |
0bcbfcac cmp dword [r15+0x4], -0x03 | |
0bcbfcb1 jnz 0x0bcb002c ->7 | |
0bcbfcb7 cmp ebp, 0x41ef5620 | |
0bcbfcbd jnz 0x0bcb002c ->7 | |
0bcbfcc3 cmp dword [rdx+0xc], -0x0c | |
0bcbfcc7 jnz 0x0bcb002c ->7 | |
0bcbfccd mov ebp, [rdx+0x8] | |
0bcbfcd0 cmp dword [rdx+0x14], -0x0c | |
0bcbfcd4 jnz 0x0bcb002c ->7 | |
0bcbfcda mov r14d, [rdx+0x10] | |
0bcbfcde cmp dword [rdx+0x1c], -0x0c | |
0bcbfce2 jnz 0x0bcb002c ->7 | |
0bcbfce8 mov r15d, [rdx+0x18] | |
0bcbfcec mov esi, 0x41ef15a0 | |
0bcbfcf1 call 0x004223c0 ->lj_tab_dup | |
0bcbfcf6 mov [rsp+0x8], eax | |
0bcbfcfa mov edi, [0x41ee44b0] | |
0bcbfd01 mov eax, [rax+0x8] | |
0bcbfd04 mov dword [rax+0x14], 0xfffffff4 | |
0bcbfd0b mov [rax+0x10], r13d | |
0bcbfd0f cmp dword [r14+0x1c], +0x03 | |
0bcbfd14 jnz 0x0bcb0030 ->8 | |
0bcbfd1a mov r13d, [r14+0x14] | |
0bcbfd1e mov rsi, 0xfffffffb415a32a0 | |
0bcbfd28 cmp rsi, [r13+0x50] | |
0bcbfd2c jnz 0x0bcb0030 ->8 | |
0bcbfd32 cmp dword [r13+0x4c], -0x01 | |
0bcbfd37 jnz 0x0bcb0030 ->8 | |
0bcbfd3d cmp dword [r14+0x10], +0x00 | |
0bcbfd42 jnz 0x0bcb0030 ->8 | |
0bcbfd48 mov dword [rax+0x1c], 0xffffffff | |
0bcbfd4f cmp dword [r15+0x1c], +0x03 | |
0bcbfd54 jnz 0x0bcb0034 ->9 | |
0bcbfd5a mov r14d, [r15+0x14] | |
0bcbfd5e mov rsi, 0xfffffffb415a32a0 | |
0bcbfd68 cmp rsi, [r14+0x50] | |
0bcbfd6c jnz 0x0bcb0034 ->9 | |
0bcbfd72 cmp dword [r14+0x4c], -0x01 | |
0bcbfd77 jnz 0x0bcb0034 ->9 | |
0bcbfd7d cmp dword [r15+0x10], +0x00 | |
0bcbfd82 jnz 0x0bcb0034 ->9 | |
0bcbfd88 mov dword [rax+0x24], 0xffffffff | |
0bcbfd8f mov esi, [rbp+0x1c] | |
0bcbfd92 and esi, 0x2a54dc55 | |
0bcbfd98 lea esi, [rsi+rsi*2] | |
0bcbfd9b shl esi, 0x03 | |
0bcbfd9e add esi, [rbp+0x14] | |
0bcbfda1 cmp dword [rsi+0xc], -0x05 | |
0bcbfda5 jnz 0x0bcbfdb4 | |
0bcbfda7 cmp dword [rsi+0x8], 0x415a3a08 | |
0bcbfdae jz 0x0bcb0038 ->10 | |
0bcbfdb4 mov esi, [rsi+0x10] | |
0bcbfdb7 test esi, esi | |
0bcbfdb9 jnz 0x0bcbfda1 | |
0bcbfdbb cmp dword [rbp+0x10], +0x00 | |
0bcbfdbf jnz 0x0bcb0038 ->10 | |
0bcbfdc5 mov edx, 0x41ee4448 | |
0bcbfdca mov dword [rdx+0x4], 0xfffffffb | |
0bcbfdd1 mov dword [rdx], 0x415a3a08 | |
0bcbfdd7 mov esi, ebp | |
0bcbfdd9 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfdde mov ebx, eax | |
0bcbfde0 mov edx, [0x41ee44b4] | |
0bcbfde7 mov eax, [rsp+0x8] | |
0bcbfdeb mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfdf2 mov [rbx], eax | |
0bcbfdf4 test byte [rbp+0x4], 0x4 | |
0bcbfdf8 jz 0x0bcbfe0f | |
0bcbfdfa and byte [rbp+0x4], 0xfb | |
0bcbfdfe mov edi, [0x41ee43f4] | |
0bcbfe05 mov [0x41ee43f4], ebp | |
0bcbfe0c mov [rbp+0xc], edi | |
0bcbfe0f mov eax, [0x41ee44b0] | |
0bcbfe16 mov eax, [rax+0x20] | |
0bcbfe19 sub eax, edx | |
0bcbfe1b cmp eax, +0x68 | |
0bcbfe1e jb 0x0bcb003c ->11 | |
0bcbfe24 mov dword [rdx-0x8], 0x41ef5620 | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x415a4a68 | |
0bcbfe32 mov r14d, 0x41ee5008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 10 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 10 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 10 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 10 | |
---- TRACE 2 exit 8 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 5 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 2 |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x4126e414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x41282fc8}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x4126e458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x4126e410], 0x1 | |
0bcbfe53 mov edi, [0x4126e3d8] | |
0bcbfe5a cmp edi, [0x4126e3dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x4126e3b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x4126e4b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x414eee88] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x4126e414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x4126e4b0] | |
0bcbfee0 mov esi, 0x41282fc8 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x4126e4b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x4126e4b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb414f9428 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x4126e448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x4126e4b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x4126e3f4] | |
0bcbffcf mov [0x4126e3f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x414fa100 | |
0bcbffee mov r14d, 0x4126f008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0079 . UGET 5 3 ; finish_return | |
0080 . MOV 6 1 | |
0081 . TDUP 7 15 | |
0082 . CALL 5 1 3 | |
0000 . . FUNCF 3 ; ssa.lua:46 | |
0001 . . TDUP 2 1 | |
0002 . . TSETB 1 2 2 | |
0003 . . TSETS 2 0 0 ; "control" | |
0004 . . RET0 0 1 | |
0083 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 2 abort ssa.lua:79 -- retry recording | |
---- TRACE 2 start ssa.lua:52 | |
0001 TDUP 2 1 | |
0002 TGETS 3 1 2 ; "label" | |
0003 TSETB 3 2 2 | |
0004 TSETS 2 0 0 ; "control" | |
0005 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ] | |
0001 [8] > [31mtab[m TDUP [31m{0x412803e8}[m | |
0002 rbp > [31mtab[m SLOAD #2 T | |
0003 [35mint[m FLOAD 0002 tab.hmask | |
0004 > [35mint[m EQ 0003 [35m+1 [m | |
0005 rbp p32 FLOAD 0002 tab.node | |
0006 > p32 HREFK 0005 [32m"label"[m @1 | |
0007 rbp > [32mstr[m HLOAD 0006 | |
0008 rax p32 FLOAD 0001 tab.array | |
0009 p32 AREF 0008 [35m+2 [m | |
0010 [32mstr[m ASTORE 0009 0007 | |
.... SNAP #1 [ ---- ---- ---- [31m0001[m ---- ] | |
0011 rbp > [31mtab[m SLOAD #1 T | |
0012 rsi p32 HREF 0011 [32m"control"[m | |
0013 > p32 EQ 0012 [0x4126e458] | |
0014 [31mtab[m FLOAD 0011 tab.meta | |
0015 > [31mtab[m EQ 0014 [31m[NULL][m | |
0016 rbx p32 NEWREF 0011 [32m"control"[m | |
0017 [31mtab[m HSTORE 0016 0001 | |
0018 nil TBAR 0011 | |
.... SNAP #2 [ ---- ] | |
---- TRACE 2 mcode 315 | |
0bcbfd02 mov dword [0x4126e410], 0x2 | |
0bcbfd0d mov edi, [0x4126e3d8] | |
0bcbfd14 cmp edi, [0x4126e3dc] | |
0bcbfd1b jb 0x0bcbfd34 | |
0bcbfd1d mov esi, 0x1 | |
0bcbfd22 mov edi, 0x4126e3b8 | |
0bcbfd27 call 0x00421730 ->lj_gc_step_jit | |
0bcbfd2c test eax, eax | |
0bcbfd2e jnz 0x0bcb0010 ->0 | |
0bcbfd34 mov edi, [0x4126e4b0] | |
0bcbfd3b mov esi, 0x412803e8 | |
0bcbfd40 call 0x004223c0 ->lj_tab_dup | |
0bcbfd45 mov [rsp+0x8], eax | |
0bcbfd49 mov edi, [0x4126e4b0] | |
0bcbfd50 mov edx, [0x4126e4b4] | |
0bcbfd57 cmp dword [rdx+0xc], -0x0c | |
0bcbfd5b jnz 0x0bcb0010 ->0 | |
0bcbfd61 mov ebp, [rdx+0x8] | |
0bcbfd64 cmp dword [rbp+0x1c], +0x01 | |
0bcbfd68 jnz 0x0bcb0010 ->0 | |
0bcbfd6e mov ebp, [rbp+0x14] | |
0bcbfd71 mov rsi, 0xfffffffb414f94c8 | |
0bcbfd7b cmp rsi, [rbp+0x20] | |
0bcbfd7f jnz 0x0bcb0010 ->0 | |
0bcbfd85 cmp dword [rbp+0x1c], -0x05 | |
0bcbfd89 jnz 0x0bcb0010 ->0 | |
0bcbfd8f mov ebp, [rbp+0x18] | |
0bcbfd92 mov eax, [rax+0x8] | |
0bcbfd95 mov dword [rax+0x14], 0xfffffffb | |
0bcbfd9c mov [rax+0x10], ebp | |
0bcbfd9f cmp dword [rdx+0x4], -0x0c | |
0bcbfda3 jnz 0x0bcb0014 ->1 | |
0bcbfda9 mov ebp, [rdx] | |
0bcbfdab mov esi, [rbp+0x1c] | |
0bcbfdae and esi, 0x2a54dc55 | |
0bcbfdb4 lea esi, [rsi+rsi*2] | |
0bcbfdb7 shl esi, 0x03 | |
0bcbfdba add esi, [rbp+0x14] | |
0bcbfdbd cmp dword [rsi+0xc], -0x05 | |
0bcbfdc1 jnz 0x0bcbfdd0 | |
0bcbfdc3 cmp dword [rsi+0x8], 0x414f9c30 | |
0bcbfdca jz 0x0bcb0014 ->1 | |
0bcbfdd0 mov esi, [rsi+0x10] | |
0bcbfdd3 test esi, esi | |
0bcbfdd5 jnz 0x0bcbfdbd | |
0bcbfdd7 cmp dword [rbp+0x10], +0x00 | |
0bcbfddb jnz 0x0bcb0014 ->1 | |
0bcbfde1 mov edx, 0x4126e448 | |
0bcbfde6 mov dword [rdx+0x4], 0xfffffffb | |
0bcbfded mov dword [rdx], 0x414f9c30 | |
0bcbfdf3 mov esi, ebp | |
0bcbfdf5 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfdfa mov ebx, eax | |
0bcbfdfc mov edx, [0x4126e4b4] | |
0bcbfe03 mov eax, [rsp+0x8] | |
0bcbfe07 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfe0e mov [rbx], eax | |
0bcbfe10 test byte [rbp+0x4], 0x4 | |
0bcbfe14 jz 0x0bcbfe2b | |
0bcbfe16 and byte [rbp+0x4], 0xfb | |
0bcbfe1a mov edi, [0x4126e3f4] | |
0bcbfe21 mov [0x4126e3f4], ebp | |
0bcbfe28 mov [rbp+0xc], edi | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x4128b92c | |
0bcbfe32 mov r14d, 0x4126f008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 3 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0070 ISNES 4 12 ; "match" | |
0071 JMP 5 => 0077 | |
0077 ISNES 4 14 ; "fail" | |
0078 JMP 5 => 0084 | |
0084 GGET 5 0 ; "assert" | |
0085 UGET 6 4 ; relops | |
0086 TGETV 6 6 4 | |
0087 CALL 5 1 2 | |
0000 . FUNCC ; assert | |
0088 UGET 5 5 ; finish_if | |
0089 MOV 6 1 | |
0090 MOV 7 0 | |
0091 MOV 8 2 | |
0092 MOV 9 3 | |
0093 CALL 5 1 5 | |
0000 . FUNCF 6 ; ssa.lua:49 | |
0001 . TDUP 4 1 | |
0002 . TSETB 1 4 2 | |
0003 . TGETS 5 2 2 ; "label" | |
0004 . TSETB 5 4 3 | |
0005 . TGETS 5 3 2 ; "label" | |
0006 . TSETB 5 4 4 | |
0007 . TSETS 4 0 0 ; "control" | |
0008 . RET0 0 1 | |
0094 RET0 0 1 | |
---- TRACE 3 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 r15 [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x4126e458] | |
0005 rbx [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 rbx p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 rbx > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 rbx p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x4126e458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 r12 > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 r15 > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m NE 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [32mstr[m NE 0028 [32m"match"[m | |
.... SNAP #6 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0034 > [32mstr[m NE 0028 [32m"fail"[m | |
.... SNAP #7 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0035 rbx > p32 UREFC 0001 #4 | |
0036 r14 > [31mtab[m ULOAD 0035 | |
0037 rbx p32 HREF 0036 0028 | |
0038 > tru HLOAD 0037 | |
0039 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0040 rbp > [31mtab[m SLOAD #2 T | |
0041 r13 > [31mtab[m SLOAD #3 T | |
0042 r14 > [31mtab[m SLOAD #4 T | |
0043 rax > [31mtab[m TDUP [31m{0x414eda00}[m | |
0044 rbx p32 FLOAD 0043 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 [31mtab[m ASTORE 0045 0021 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- [31m0041[m [31m0042[m [31m0043[m ] | |
0047 [35mint[m FLOAD 0041 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+3 [m | |
0049 r12 p32 FLOAD 0041 tab.node | |
0050 > p32 HREFK 0049 [32m"label"[m @3 | |
0051 > nil HLOAD 0050 | |
0052 [31mtab[m FLOAD 0041 tab.meta | |
0053 > [31mtab[m EQ 0052 [31m[NULL][m | |
0054 p32 AREF 0044 [35m+3 [m | |
0055 nil ASTORE 0054 nil | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- [31m0042[m [31m0043[m ---- ] | |
0056 [35mint[m FLOAD 0042 tab.hmask | |
0057 > [35mint[m EQ 0056 [35m+3 [m | |
0058 r13 p32 FLOAD 0042 tab.node | |
0059 > p32 HREFK 0058 [32m"label"[m @3 | |
0060 > nil HLOAD 0059 | |
0061 [31mtab[m FLOAD 0042 tab.meta | |
0062 > [31mtab[m EQ 0061 [31m[NULL][m | |
0063 p32 AREF 0044 [35m+4 [m | |
0064 nil ASTORE 0063 nil | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- ---- [31m0043[m ---- ] | |
0065 [35mint[m FLOAD 0040 tab.hmask | |
0066 > [35mint[m EQ 0065 [35m+3 [m | |
0067 rbx p32 FLOAD 0040 tab.node | |
0068 > p32 HREFK 0067 [32m"control"[m @1 | |
0069 [31mtab[m FLOAD 0040 tab.meta | |
0070 > [31mtab[m EQ 0069 [31m[NULL][m | |
0071 [31mtab[m HSTORE 0068 0043 | |
0072 nil TBAR 0040 | |
.... SNAP #11 [ [1mssa.lua:55[m|] | |
---- TRACE 3 mcode 872 | |
0bcbf993 mov dword [0x4126e410], 0x3 | |
0bcbf99e mov edi, [0x4126e3d8] | |
0bcbf9a5 cmp edi, [0x4126e3dc] | |
0bcbf9ac jb 0x0bcbf9c5 | |
0bcbf9ae mov esi, 0x1 | |
0bcbf9b3 mov edi, 0x4126e3b8 | |
0bcbf9b8 call 0x00421730 ->lj_gc_step_jit | |
0bcbf9bd test eax, eax | |
0bcbf9bf jnz 0x0bcb0010 ->0 | |
0bcbf9c5 mov edi, [0x4126e4b0] | |
0bcbf9cc mov edx, [0x4126e4b4] | |
0bcbf9d3 mov ebp, [rdx-0x8] | |
0bcbf9d6 mov r15d, [rbp+0x8] | |
0bcbf9da mov esi, [r15+0x1c] | |
0bcbf9de and esi, 0xce2b6183 | |
0bcbf9e4 lea esi, [rsi+rsi*2] | |
0bcbf9e7 shl esi, 0x03 | |
0bcbf9ea add esi, [r15+0x14] | |
0bcbf9ee cmp dword [rsi+0xc], -0x05 | |
0bcbf9f2 jnz 0x0bcbfa01 | |
0bcbf9f4 cmp dword [rsi+0x8], 0x41270db0 | |
0bcbf9fb jz 0x0bcb0010 ->0 | |
0bcbfa01 mov esi, [rsi+0x10] | |
0bcbfa04 test esi, esi | |
0bcbfa06 jnz 0x0bcbf9ee | |
0bcbfa08 mov ebx, [r15+0x10] | |
0bcbfa0c test ebx, ebx | |
0bcbfa0e jz 0x0bcb0010 ->0 | |
0bcbfa14 cmp dword [rbx+0x1c], +0x01 | |
0bcbfa18 jnz 0x0bcb0010 ->0 | |
0bcbfa1e mov ebx, [rbx+0x14] | |
0bcbfa21 mov rsi, 0xfffffffb412704c8 | |
0bcbfa2b cmp rsi, [rbx+0x20] | |
0bcbfa2f jnz 0x0bcb0010 ->0 | |
0bcbfa35 cmp dword [rbx+0x1c], -0x0c | |
0bcbfa39 jnz 0x0bcb0010 ->0 | |
0bcbfa3f mov ebx, [rbx+0x18] | |
0bcbfa42 cmp dword [rbx+0x1c], +0x3f | |
0bcbfa46 jnz 0x0bcb0010 ->0 | |
0bcbfa4c mov ebx, [rbx+0x14] | |
0bcbfa4f mov rsi, 0xfffffffb41270db0 | |
0bcbfa59 cmp rsi, [rbx+0x50] | |
0bcbfa5d jnz 0x0bcb0010 ->0 | |
0bcbfa63 cmp dword [rbx+0x4c], -0x09 | |
0bcbfa67 jnz 0x0bcb0010 ->0 | |
0bcbfa6d mov esi, [r15+0x1c] | |
0bcbfa71 and esi, 0x798a813c | |
0bcbfa77 lea esi, [rsi+rsi*2] | |
0bcbfa7a shl esi, 0x03 | |
0bcbfa7d add esi, [r15+0x14] | |
0bcbfa81 cmp dword [rsi+0xc], -0x05 | |
0bcbfa85 jnz 0x0bcbfa94 | |
0bcbfa87 cmp dword [rsi+0x8], 0x41270fb0 | |
0bcbfa8e jz 0x0bcb0010 ->0 | |
0bcbfa94 mov esi, [rsi+0x10] | |
0bcbfa97 test esi, esi | |
0bcbfa99 jnz 0x0bcbfa81 | |
0bcbfa9b mov rsi, 0xfffffffb41270fb0 | |
0bcbfaa5 cmp rsi, [rbx+0x5a8] | |
0bcbfaac jnz 0x0bcb0010 ->0 | |
0bcbfab2 cmp dword [rbx+0x5a4], -0x09 | |
0bcbfab9 jnz 0x0bcb0010 ->0 | |
0bcbfabf cmp dword [rdx+0x4], -0x0c | |
0bcbfac3 jnz 0x0bcb0010 ->0 | |
0bcbfac9 mov r12d, [rdx] | |
0bcbfacc cmp dword [rbx+0x5a0], 0x41270f18 | |
0bcbfad6 jnz 0x0bcb0010 ->0 | |
0bcbfadc cmp dword [rbx+0x48], 0x41270d88 | |
0bcbfae3 jnz 0x0bcb0010 ->0 | |
0bcbfae9 cmp dword [r12+0x18], +0x01 | |
0bcbfaef jbe 0x0bcb0010 ->0 | |
0bcbfaf5 mov ebx, [r12+0x8] | |
0bcbfafa cmp dword [rbx+0xc], -0x05 | |
0bcbfafe jnz 0x0bcb0010 ->0 | |
0bcbfb04 mov r15d, [rbx+0x8] | |
0bcbfb08 cmp r15d, 0x412708f8 | |
0bcbfb0f jz 0x0bcb0014 ->1 | |
0bcbfb15 cmp r15d, 0x41287360 | |
0bcbfb1c jz 0x0bcb0018 ->2 | |
0bcbfb22 cmp r15d, 0x41270a18 | |
0bcbfb29 jz 0x0bcb001c ->3 | |
0bcbfb2f cmp r15d, 0x41270870 | |
0bcbfb36 jz 0x0bcb0020 ->4 | |
0bcbfb3c cmp r15d, 0x41273cb0 | |
0bcbfb43 jz 0x0bcb0024 ->5 | |
0bcbfb49 cmp r15d, 0x412892e8 | |
0bcbfb50 jz 0x0bcb0028 ->6 | |
0bcbfb56 mov esi, [rbp+0x24] | |
0bcbfb59 cmp byte [rsi+0x6], 0x1 | |
0bcbfb5d jnz 0x0bcb002c ->7 | |
0bcbfb63 lea ebx, [rsi+0x8] | |
0bcbfb66 cmp dword [rbx+0x4], -0x0c | |
0bcbfb6a jnz 0x0bcb002c ->7 | |
0bcbfb70 mov r14d, [rbx] | |
0bcbfb73 mov ebx, [r14+0x1c] | |
0bcbfb77 and ebx, [r15+0x8] | |
0bcbfb7b lea ebx, [rbx+rbx*2] | |
0bcbfb7e shl ebx, 0x03 | |
0bcbfb81 add ebx, [r14+0x14] | |
0bcbfb85 cmp dword [rbx+0xc], -0x05 | |
0bcbfb89 jnz 0x0bcbfb91 | |
0bcbfb8b cmp r15d, [rbx+0x8] | |
0bcbfb8f jz 0x0bcbfb9d | |
0bcbfb91 mov ebx, [rbx+0x10] | |
0bcbfb94 test ebx, ebx | |
0bcbfb96 jnz 0x0bcbfb85 | |
0bcbfb98 mov ebx, 0x4126e458 | |
0bcbfb9d cmp dword [rbx+0x4], -0x03 | |
0bcbfba1 jnz 0x0bcb002c ->7 | |
0bcbfba7 cmp ebp, 0x4127fc88 | |
0bcbfbad jnz 0x0bcb002c ->7 | |
0bcbfbb3 cmp dword [rdx+0xc], -0x0c | |
0bcbfbb7 jnz 0x0bcb002c ->7 | |
0bcbfbbd mov ebp, [rdx+0x8] | |
0bcbfbc0 cmp dword [rdx+0x14], -0x0c | |
0bcbfbc4 jnz 0x0bcb002c ->7 | |
0bcbfbca mov r13d, [rdx+0x10] | |
0bcbfbce cmp dword [rdx+0x1c], -0x0c | |
0bcbfbd2 jnz 0x0bcb002c ->7 | |
0bcbfbd8 mov r14d, [rdx+0x18] | |
0bcbfbdc mov esi, 0x414eda00 | |
0bcbfbe1 call 0x004223c0 ->lj_tab_dup | |
0bcbfbe6 mov edx, [0x4126e4b4] | |
0bcbfbed mov ebx, [rax+0x8] | |
0bcbfbf0 mov dword [rbx+0x14], 0xfffffff4 | |
0bcbfbf7 mov [rbx+0x10], r12d | |
0bcbfbfb cmp dword [r13+0x1c], +0x03 | |
0bcbfc00 jnz 0x0bcb0030 ->8 | |
0bcbfc06 mov r12d, [r13+0x14] | |
0bcbfc0a mov rdi, 0xfffffffb414f94c8 | |
0bcbfc14 cmp rdi, [r12+0x50] | |
0bcbfc19 jnz 0x0bcb0030 ->8 | |
0bcbfc1f cmp dword [r12+0x4c], -0x01 | |
0bcbfc25 jnz 0x0bcb0030 ->8 | |
0bcbfc2b cmp dword [r13+0x10], +0x00 | |
0bcbfc30 jnz 0x0bcb0030 ->8 | |
0bcbfc36 mov dword [rbx+0x1c], 0xffffffff | |
0bcbfc3d cmp dword [r14+0x1c], +0x03 | |
0bcbfc42 jnz 0x0bcb0034 ->9 | |
0bcbfc48 mov r13d, [r14+0x14] | |
0bcbfc4c mov rdi, 0xfffffffb414f94c8 | |
0bcbfc56 cmp rdi, [r13+0x50] | |
0bcbfc5a jnz 0x0bcb0034 ->9 | |
0bcbfc60 cmp dword [r13+0x4c], -0x01 | |
0bcbfc65 jnz 0x0bcb0034 ->9 | |
0bcbfc6b cmp dword [r14+0x10], +0x00 | |
0bcbfc70 jnz 0x0bcb0034 ->9 | |
0bcbfc76 mov dword [rbx+0x24], 0xffffffff | |
0bcbfc7d cmp dword [rbp+0x1c], +0x03 | |
0bcbfc81 jnz 0x0bcb0038 ->10 | |
0bcbfc87 mov ebx, [rbp+0x14] | |
0bcbfc8a mov rdi, 0xfffffffb414f9c30 | |
0bcbfc94 cmp rdi, [rbx+0x20] | |
0bcbfc98 jnz 0x0bcb0038 ->10 | |
0bcbfc9e cmp dword [rbp+0x10], +0x00 | |
0bcbfca2 jnz 0x0bcb0038 ->10 | |
0bcbfca8 mov dword [rbx+0x1c], 0xfffffff4 | |
0bcbfcaf mov [rbx+0x18], eax | |
0bcbfcb2 test byte [rbp+0x4], 0x4 | |
0bcbfcb6 jz 0x0bcbfccd | |
0bcbfcb8 and byte [rbp+0x4], 0xfb | |
0bcbfcbc mov edi, [0x4126e3f4] | |
0bcbfcc3 mov [0x4126e3f4], ebp | |
0bcbfcca mov [rbp+0xc], edi | |
0bcbfccd mov eax, [0x4126e4b0] | |
0bcbfcd4 mov eax, [rax+0x20] | |
0bcbfcd7 sub eax, edx | |
0bcbfcd9 cmp eax, +0x68 | |
0bcbfcdc jb 0x0bcb003c ->11 | |
0bcbfce2 mov dword [rdx-0x8], 0x4127fc88 | |
0bcbfce9 xor eax, eax | |
0bcbfceb mov ebx, 0x414fac90 | |
0bcbfcf0 mov r14d, 0x4126f008 | |
0bcbfcf6 jmp 0x00420177 | |
---- TRACE 3 stop -> return | |
---- TRACE 3 exit 8 | |
---- TRACE 3 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 3 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 3 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 3 exit 4 | |
---- TRACE 3 exit 4 | |
---- TRACE 3 exit 5 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 10 | |
---- TRACE 3 exit 2 |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x40a35414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x41107138}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x40a35458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x40a35410], 0x1 | |
0bcbfe53 mov edi, [0x40a353d8] | |
0bcbfe5a cmp edi, [0x40a353dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x40a353b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x40a354b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x410fa9e0] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x40a35414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x40a354b0] | |
0bcbfee0 mov esi, 0x41107138 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x40a354b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x40a354b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb411063b0 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x40a35448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x40a354b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x40a353f4] | |
0bcbffcf mov [0x40a353f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x41107dd8 | |
0bcbffee mov r14d, 0x40a36008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0065 UGET 5 2 ; finish_goto | |
0066 MOV 6 1 | |
0067 MOV 7 3 | |
0068 CALL 5 1 3 | |
0000 . FUNCF 4 ; ssa.lua:52 | |
0001 . TDUP 2 1 | |
0002 . TGETS 3 1 2 ; "label" | |
0003 . TSETB 3 2 2 | |
0004 . TSETS 2 0 0 ; "control" | |
0005 . RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x40a35458] | |
0005 r15 [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 r15 p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 r15 > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 r15 p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x40a35458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 rbx > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 rbx > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m EQ 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0034 rbp > [31mtab[m SLOAD #2 T | |
0035 r15 > [31mtab[m SLOAD #4 T | |
0036 [8] > [31mtab[m TDUP [31m{0x411085c8}[m | |
0037 [35mint[m FLOAD 0035 tab.hmask | |
0038 > [35mint[m EQ 0037 [35m+1 [m | |
0039 r15 p32 FLOAD 0035 tab.node | |
0040 > p32 HREFK 0039 [32m"label"[m @1 | |
0041 r15 > [32mstr[m HLOAD 0040 | |
0042 rax p32 FLOAD 0036 tab.array | |
0043 p32 AREF 0042 [35m+2 [m | |
0044 [32mstr[m ASTORE 0043 0041 | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:52[m|[31m0034[m ---- [31m0036[m ---- ] | |
0045 rsi p32 HREF 0034 [32m"control"[m | |
0046 > p32 EQ 0045 [0x40a35458] | |
0047 [31mtab[m FLOAD 0034 tab.meta | |
0048 > [31mtab[m EQ 0047 [31m[NULL][m | |
0049 rbx p32 NEWREF 0034 [32m"control"[m | |
0050 [31mtab[m HSTORE 0049 0036 | |
0051 nil TBAR 0034 | |
.... SNAP #7 [ [1mssa.lua:55[m|] | |
---- TRACE 2 mcode 719 | |
0bcbfb6e mov dword [0x40a35410], 0x2 | |
0bcbfb79 mov edi, [0x40a353d8] | |
0bcbfb80 cmp edi, [0x40a353dc] | |
0bcbfb87 jb 0x0bcbfba0 | |
0bcbfb89 mov esi, 0x1 | |
0bcbfb8e mov edi, 0x40a353b8 | |
0bcbfb93 call 0x00421730 ->lj_gc_step_jit | |
0bcbfb98 test eax, eax | |
0bcbfb9a jnz 0x0bcb0010 ->0 | |
0bcbfba0 mov edi, [0x40a354b0] | |
0bcbfba7 mov edx, [0x40a354b4] | |
0bcbfbae mov ebp, [rdx-0x8] | |
0bcbfbb1 mov ebx, [rbp+0x8] | |
0bcbfbb4 mov esi, [rbx+0x1c] | |
0bcbfbb7 and esi, 0xce2b6183 | |
0bcbfbbd lea esi, [rsi+rsi*2] | |
0bcbfbc0 shl esi, 0x03 | |
0bcbfbc3 add esi, [rbx+0x14] | |
0bcbfbc6 cmp dword [rsi+0xc], -0x05 | |
0bcbfbca jnz 0x0bcbfbd9 | |
0bcbfbcc cmp dword [rsi+0x8], 0x40a37db0 | |
0bcbfbd3 jz 0x0bcb0010 ->0 | |
0bcbfbd9 mov esi, [rsi+0x10] | |
0bcbfbdc test esi, esi | |
0bcbfbde jnz 0x0bcbfbc6 | |
0bcbfbe0 mov r15d, [rbx+0x10] | |
0bcbfbe4 test r15d, r15d | |
0bcbfbe7 jz 0x0bcb0010 ->0 | |
0bcbfbed cmp dword [r15+0x1c], +0x01 | |
0bcbfbf2 jnz 0x0bcb0010 ->0 | |
0bcbfbf8 mov r15d, [r15+0x14] | |
0bcbfbfc mov rsi, 0xfffffffb40a374c8 | |
0bcbfc06 cmp rsi, [r15+0x20] | |
0bcbfc0a jnz 0x0bcb0010 ->0 | |
0bcbfc10 cmp dword [r15+0x1c], -0x0c | |
0bcbfc15 jnz 0x0bcb0010 ->0 | |
0bcbfc1b mov r15d, [r15+0x18] | |
0bcbfc1f cmp dword [r15+0x1c], +0x3f | |
0bcbfc24 jnz 0x0bcb0010 ->0 | |
0bcbfc2a mov r15d, [r15+0x14] | |
0bcbfc2e mov rsi, 0xfffffffb40a37db0 | |
0bcbfc38 cmp rsi, [r15+0x50] | |
0bcbfc3c jnz 0x0bcb0010 ->0 | |
0bcbfc42 cmp dword [r15+0x4c], -0x09 | |
0bcbfc47 jnz 0x0bcb0010 ->0 | |
0bcbfc4d mov esi, [rbx+0x1c] | |
0bcbfc50 and esi, 0x798a813c | |
0bcbfc56 lea esi, [rsi+rsi*2] | |
0bcbfc59 shl esi, 0x03 | |
0bcbfc5c add esi, [rbx+0x14] | |
0bcbfc5f cmp dword [rsi+0xc], -0x05 | |
0bcbfc63 jnz 0x0bcbfc72 | |
0bcbfc65 cmp dword [rsi+0x8], 0x40a37fb0 | |
0bcbfc6c jz 0x0bcb0010 ->0 | |
0bcbfc72 mov esi, [rsi+0x10] | |
0bcbfc75 test esi, esi | |
0bcbfc77 jnz 0x0bcbfc5f | |
0bcbfc79 mov rsi, 0xfffffffb40a37fb0 | |
0bcbfc83 cmp rsi, [r15+0x5a8] | |
0bcbfc8a jnz 0x0bcb0010 ->0 | |
0bcbfc90 cmp dword [r15+0x5a4], -0x09 | |
0bcbfc98 jnz 0x0bcb0010 ->0 | |
0bcbfc9e cmp dword [rdx+0x4], -0x0c | |
0bcbfca2 jnz 0x0bcb0010 ->0 | |
0bcbfca8 mov ebx, [rdx] | |
0bcbfcaa cmp dword [r15+0x5a0], 0x40a37f18 | |
0bcbfcb5 jnz 0x0bcb0010 ->0 | |
0bcbfcbb cmp dword [r15+0x48], 0x40a37d88 | |
0bcbfcc3 jnz 0x0bcb0010 ->0 | |
0bcbfcc9 cmp dword [rbx+0x18], +0x01 | |
0bcbfccd jbe 0x0bcb0010 ->0 | |
0bcbfcd3 mov ebx, [rbx+0x8] | |
0bcbfcd6 cmp dword [rbx+0xc], -0x05 | |
0bcbfcda jnz 0x0bcb0010 ->0 | |
0bcbfce0 mov ebx, [rbx+0x8] | |
0bcbfce3 cmp ebx, 0x40a378f8 | |
0bcbfce9 jz 0x0bcb0014 ->1 | |
0bcbfcef cmp ebx, 0x410f6fc8 | |
0bcbfcf5 jz 0x0bcb0018 ->2 | |
0bcbfcfb cmp ebx, 0x40a37a18 | |
0bcbfd01 jz 0x0bcb001c ->3 | |
0bcbfd07 cmp ebx, 0x40a37870 | |
0bcbfd0d jnz 0x0bcb0020 ->4 | |
0bcbfd13 cmp ebp, 0x40a49b78 | |
0bcbfd19 jnz 0x0bcb0024 ->5 | |
0bcbfd1f cmp dword [rdx+0xc], -0x0c | |
0bcbfd23 jnz 0x0bcb0024 ->5 | |
0bcbfd29 mov ebp, [rdx+0x8] | |
0bcbfd2c cmp dword [rdx+0x1c], -0x0c | |
0bcbfd30 jnz 0x0bcb0024 ->5 | |
0bcbfd36 mov r15d, [rdx+0x18] | |
0bcbfd3a mov esi, 0x411085c8 | |
0bcbfd3f call 0x004223c0 ->lj_tab_dup | |
0bcbfd44 mov [rsp+0x8], eax | |
0bcbfd48 mov edi, [0x40a354b0] | |
0bcbfd4f cmp dword [r15+0x1c], +0x01 | |
0bcbfd54 jnz 0x0bcb0024 ->5 | |
0bcbfd5a mov r15d, [r15+0x14] | |
0bcbfd5e mov rsi, 0xfffffffb41106450 | |
0bcbfd68 cmp rsi, [r15+0x20] | |
0bcbfd6c jnz 0x0bcb0024 ->5 | |
0bcbfd72 cmp dword [r15+0x1c], -0x05 | |
0bcbfd77 jnz 0x0bcb0024 ->5 | |
0bcbfd7d mov r15d, [r15+0x18] | |
0bcbfd81 mov eax, [rax+0x8] | |
0bcbfd84 mov dword [rax+0x14], 0xfffffffb | |
0bcbfd8b mov [rax+0x10], r15d | |
0bcbfd8f mov esi, [rbp+0x1c] | |
0bcbfd92 and esi, 0x2a54dc55 | |
0bcbfd98 lea esi, [rsi+rsi*2] | |
0bcbfd9b shl esi, 0x03 | |
0bcbfd9e add esi, [rbp+0x14] | |
0bcbfda1 cmp dword [rsi+0xc], -0x05 | |
0bcbfda5 jnz 0x0bcbfdb4 | |
0bcbfda7 cmp dword [rsi+0x8], 0x41106bb8 | |
0bcbfdae jz 0x0bcb0028 ->6 | |
0bcbfdb4 mov esi, [rsi+0x10] | |
0bcbfdb7 test esi, esi | |
0bcbfdb9 jnz 0x0bcbfda1 | |
0bcbfdbb cmp dword [rbp+0x10], +0x00 | |
0bcbfdbf jnz 0x0bcb0028 ->6 | |
0bcbfdc5 mov edx, 0x40a35448 | |
0bcbfdca mov dword [rdx+0x4], 0xfffffffb | |
0bcbfdd1 mov dword [rdx], 0x41106bb8 | |
0bcbfdd7 mov esi, ebp | |
0bcbfdd9 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfdde mov ebx, eax | |
0bcbfde0 mov edx, [0x40a354b4] | |
0bcbfde7 mov eax, [rsp+0x8] | |
0bcbfdeb mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfdf2 mov [rbx], eax | |
0bcbfdf4 test byte [rbp+0x4], 0x4 | |
0bcbfdf8 jz 0x0bcbfe0f | |
0bcbfdfa and byte [rbp+0x4], 0xfb | |
0bcbfdfe mov edi, [0x40a353f4] | |
0bcbfe05 mov [0x40a353f4], ebp | |
0bcbfe0c mov [rbp+0xc], edi | |
0bcbfe0f mov eax, [0x40a354b0] | |
0bcbfe16 mov eax, [rax+0x20] | |
0bcbfe19 sub eax, edx | |
0bcbfe1b cmp eax, +0x68 | |
0bcbfe1e jb 0x0bcb002c ->7 | |
0bcbfe24 mov dword [rdx-0x8], 0x40a49b78 | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x41107c18 | |
0bcbfe32 mov r14d, 0x40a36008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 2 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 3 | |
---- TRACE 2 exit 1 | |
---- TRACE 3 start 2/1 ssa.lua:59 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0030 . UGET 7 1 ; compile_bool | |
0031 . TGETB 8 0 4 | |
0032 . MOV 9 6 | |
0033 . MOV 10 2 | |
0034 . MOV 11 3 | |
0035 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0079 . . UGET 5 3 ; finish_return | |
0080 . . MOV 6 1 | |
0081 . . TDUP 7 15 | |
0082 . . CALL 5 1 3 | |
0000 . . . FUNCF 3 ; ssa.lua:46 | |
0001 . . . TDUP 2 1 | |
0002 . . . TSETB 1 2 2 | |
0003 . . . TSETS 2 0 0 ; "control" | |
0004 . . . RET0 0 1 | |
0083 . . JMP 5 => 0094 | |
0094 . . RET0 0 1 | |
0036 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 abort ssa.lua:79 -- down-recursion, restarting | |
---- TRACE 3 start ssa.lua:79 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0030 . UGET 7 1 ; compile_bool | |
0031 . TGETB 8 0 4 | |
0032 . MOV 9 6 | |
0033 . MOV 10 2 | |
0034 . MOV 11 3 | |
0035 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0065 . . UGET 5 2 ; finish_goto | |
0066 . . MOV 6 1 | |
0067 . . MOV 7 3 | |
0068 . . CALL 5 1 3 | |
0000 . . . FUNCF 4 ; ssa.lua:52 | |
0001 . . . TDUP 2 1 | |
0002 . . . TGETS 3 1 2 ; "label" | |
0003 . . . TSETB 3 2 2 | |
0004 . . . TSETS 2 0 0 ; "control" | |
0005 . . . RET0 0 1 | |
0069 . . JMP 5 => 0094 | |
0094 . . RET0 0 1 | |
0036 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0055 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 IR | |
.... SNAP #0 [ ---- ] | |
.... SNAP #1 [ ---- ] | |
0002 > p32 RETF proto: 0x41107a60 [0x41107b00] | |
.... SNAP #2 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0003 [1mfun[m SLOAD #0 R | |
0004 > [1mfun[m EQ 0003 [1mssa.lua:55[m | |
0005 rbx > [31mtab[m SLOAD #1 T | |
0006 [35mint[m FLOAD 0005 tab.asize | |
0007 > [35mint[m ABC 0006 [35m+3 [m | |
0008 r15 p32 FLOAD 0005 tab.array | |
0009 p32 AREF 0008 [35m+3 [m | |
0010 [7c] > [31mtab[m ALOAD 0009 | |
0011 [78] > [31mtab[m SLOAD #6 T | |
0012 r14 > [31mtab[m SLOAD #3 T | |
0013 r13 > [31mtab[m SLOAD #4 T | |
0014 [48] [31mtab[m FLOAD [1mssa.lua:55[m func.env | |
0015 rsi p32 HREF 0014 [32m"assert"[m | |
0016 > p32 EQ 0015 [0x40a35458] | |
0017 [3c] [31mtab[m FLOAD 0014 tab.meta | |
0018 > [31mtab[m NE 0017 [31m[NULL][m | |
0019 [35mint[m FLOAD 0017 tab.hmask | |
0020 > [35mint[m EQ 0019 [35m+1 [m | |
0021 rsi p32 FLOAD 0017 tab.node | |
0022 > p32 HREFK 0021 [32m"__index"[m @1 | |
0023 rsi > [31mtab[m HLOAD 0022 | |
0024 [35mint[m FLOAD 0023 tab.hmask | |
0025 > [35mint[m EQ 0024 [35m+63 [m | |
0026 rsi p32 FLOAD 0023 tab.node | |
0027 > p32 HREFK 0026 [32m"assert"[m @3 | |
0028 > [1mfun[m HLOAD 0027 | |
0029 rdx p32 HREF 0014 [32m"type"[m | |
0030 > p32 EQ 0029 [0x40a35458] | |
0031 > p32 HREFK 0026 [32m"type"[m @60 | |
0032 > [1mfun[m HLOAD 0031 | |
0033 > [1mfun[m EQ 0032 [1mtype[m | |
0034 > [1mfun[m EQ 0028 [1massert[m | |
0035 [35mint[m FLOAD 0010 tab.asize | |
0036 > [35mint[m ABC 0035 [35m+1 [m | |
0037 rsi p32 FLOAD 0010 tab.array | |
0038 p32 AREF 0037 [35m+1 [m | |
0039 [74] > [32mstr[m ALOAD 0038 | |
.... SNAP #3 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0040 > [32mstr[m NE 0039 [32m"if"[m | |
.... SNAP #4 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0041 > [32mstr[m NE 0039 [32m"let"[m | |
.... SNAP #5 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0042 > [32mstr[m NE 0039 [32m"true"[m | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0043 > [32mstr[m NE 0039 [32m"false"[m | |
.... SNAP #7 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0044 > [32mstr[m NE 0039 [32m"match"[m | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0045 > [32mstr[m NE 0039 [32m"fail"[m | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0046 > p32 UREFC [1mssa.lua:55[m #4 | |
0047 [40] > [31mtab[m ULOAD 0046 | |
0048 rsi p32 HREF 0047 0039 | |
0049 > tru HLOAD 0048 | |
0050 [70] > [31mtab[m TDUP [31m{0x411082e8}[m | |
0051 rax p32 FLOAD 0050 tab.array | |
0052 p32 AREF 0051 [35m+2 [m | |
0053 [31mtab[m ASTORE 0052 0010 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|[31m0011[m ---- [31m0012[m [31m0013[m [31m0050[m ] | |
0054 [35mint[m FLOAD 0012 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 r15 p32 FLOAD 0012 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 r15 > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0051 [35m+3 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #11 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|[31m0011[m ---- ---- [31m0013[m [31m0050[m ---- ] | |
0061 [35mint[m FLOAD 0013 tab.hmask | |
0062 > [35mint[m EQ 0061 [35m+1 [m | |
0063 r15 p32 FLOAD 0013 tab.node | |
0064 > p32 HREFK 0063 [32m"label"[m @1 | |
0065 r15 > [32mstr[m HLOAD 0064 | |
0066 p32 AREF 0051 [35m+4 [m | |
0067 [32mstr[m ASTORE 0066 0065 | |
.... SNAP #12 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|[31m0011[m ---- ---- ---- [31m0050[m ---- ] | |
0068 rdx p32 HREF 0011 [32m"control"[m | |
0069 > p32 EQ 0068 [0x40a35458] | |
0070 [31mtab[m FLOAD 0011 tab.meta | |
0071 > [31mtab[m EQ 0070 [31m[NULL][m | |
0072 r15 p32 NEWREF 0011 [32m"control"[m | |
0073 [31mtab[m HSTORE 0072 0050 | |
0074 nil TBAR 0011 | |
.... SNAP #13 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|---- ---- ---- ---- ---- ---- ] | |
0075 [35mint[m FLOAD 0005 tab.asize | |
0076 > [35mint[m ABC 0075 [35m+4 [m | |
0077 rbx p32 FLOAD 0005 tab.array | |
0078 p32 AREF 0077 [35m+4 [m | |
0079 r15 > [31mtab[m ALOAD 0078 | |
0080 rbx > [31mtab[m SLOAD #7 T | |
0081 rax p32 HREF 0014 [32m"assert"[m | |
0082 > p32 EQ 0081 [0x40a35458] | |
0083 [35mint[m FLOAD 0017 tab.hmask | |
0084 > [35mint[m EQ 0083 [35m+1 [m | |
0085 r12 p32 FLOAD 0017 tab.node | |
0086 > p32 HREFK 0085 [32m"__index"[m @1 | |
0087 r12 > [31mtab[m HLOAD 0086 | |
0088 [35mint[m FLOAD 0087 tab.hmask | |
0089 > [35mint[m EQ 0088 [35m+63 [m | |
0090 r12 p32 FLOAD 0087 tab.node | |
0091 > p32 HREFK 0090 [32m"assert"[m @3 | |
0092 > [1mfun[m HLOAD 0091 | |
0093 rax p32 HREF 0014 [32m"type"[m | |
0094 > p32 EQ 0093 [0x40a35458] | |
0095 > p32 HREFK 0090 [32m"type"[m @60 | |
0096 > [1mfun[m HLOAD 0095 | |
0097 > [1mfun[m EQ 0096 [1mtype[m | |
0098 > [1mfun[m EQ 0092 [1massert[m | |
0099 [35mint[m FLOAD 0079 tab.asize | |
0100 > [35mint[m ABC 0099 [35m+1 [m | |
0101 r12 p32 FLOAD 0079 tab.array | |
0102 p32 AREF 0101 [35m+1 [m | |
0103 r12 > [32mstr[m ALOAD 0102 | |
.... SNAP #14 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0104 > [32mstr[m NE 0103 [32m"if"[m | |
.... SNAP #15 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0105 > [32mstr[m NE 0103 [32m"let"[m | |
.... SNAP #16 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0106 > [32mstr[m NE 0103 [32m"true"[m | |
.... SNAP #17 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0107 > [32mstr[m EQ 0103 [32m"false"[m | |
.... SNAP #18 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0108 [6c] > [31mtab[m TDUP [31m{0x411085c8}[m | |
0109 [35mint[m FLOAD 0013 tab.hmask | |
0110 > [35mint[m EQ 0109 [35m+1 [m | |
0111 rsi p32 FLOAD 0013 tab.node | |
0112 > p32 HREFK 0111 [32m"label"[m @1 | |
0113 rsi > [32mstr[m HLOAD 0112 | |
0114 rax p32 FLOAD 0108 tab.array | |
0115 p32 AREF 0114 [35m+2 [m | |
0116 [32mstr[m ASTORE 0115 0113 | |
.... SNAP #19 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m [1mssa.lua:52[m|[31m0080[m ---- [31m0108[m ---- ] | |
0117 rsi p32 HREF 0080 [32m"control"[m | |
0118 > p32 EQ 0117 [0x40a35458] | |
0119 [31mtab[m FLOAD 0080 tab.meta | |
0120 > [31mtab[m EQ 0119 [31m[NULL][m | |
0121 r15 p32 NEWREF 0080 [32m"control"[m | |
0122 [31mtab[m HSTORE 0121 0108 | |
0123 nil TBAR 0080 | |
.... SNAP #20 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ] | |
0124 > p32 RETF proto: 0x41107a60 [0x41107b00] | |
.... SNAP #21 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0125 [1mfun[m SLOAD #0 R | |
0126 > [1mfun[m EQ 0125 [1mssa.lua:55[m | |
0127 rbx > [31mtab[m SLOAD #1 T | |
0128 [35mint[m FLOAD 0127 tab.asize | |
0129 > [35mint[m ABC 0128 [35m+3 [m | |
0130 r15 p32 FLOAD 0127 tab.array | |
0131 p32 AREF 0130 [35m+3 [m | |
0132 [18] > [31mtab[m ALOAD 0131 | |
0133 [14] > [31mtab[m SLOAD #6 T | |
0134 r15 > [31mtab[m SLOAD #3 T | |
0135 r14 > [31mtab[m SLOAD #4 T | |
0136 rdi p32 HREF 0014 [32m"assert"[m | |
0137 > p32 EQ 0136 [0x40a35458] | |
0138 [35mint[m FLOAD 0017 tab.hmask | |
0139 > [35mint[m EQ 0138 [35m+1 [m | |
0140 r12 p32 FLOAD 0017 tab.node | |
0141 > p32 HREFK 0140 [32m"__index"[m @1 | |
0142 r12 > [31mtab[m HLOAD 0141 | |
0143 [35mint[m FLOAD 0142 tab.hmask | |
0144 > [35mint[m EQ 0143 [35m+63 [m | |
0145 r12 p32 FLOAD 0142 tab.node | |
0146 > p32 HREFK 0145 [32m"assert"[m @3 | |
0147 > [1mfun[m HLOAD 0146 | |
0148 rdi p32 HREF 0014 [32m"type"[m | |
0149 > p32 EQ 0148 [0x40a35458] | |
0150 > p32 HREFK 0145 [32m"type"[m @60 | |
0151 > [1mfun[m HLOAD 0150 | |
0152 > [1mfun[m EQ 0151 [1mtype[m | |
0153 > [1mfun[m EQ 0147 [1massert[m | |
0154 [35mint[m FLOAD 0132 tab.asize | |
0155 > [35mint[m ABC 0154 [35m+1 [m | |
0156 r12 p32 FLOAD 0132 tab.array | |
0157 p32 AREF 0156 [35m+1 [m | |
0158 [10] > [32mstr[m ALOAD 0157 | |
.... SNAP #22 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m ] | |
0159 > [32mstr[m EQ 0158 [32m"if"[m | |
.... SNAP #23 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m ] | |
0160 [64] > p32 UREFO [1mssa.lua:39[m #0 | |
0161 xmm7 > [34mnum[m ULOAD 0160 | |
0162 [58] [34mnum[m ADD 0161 [34m+1 [m | |
0163 [34mnum[m USTORE 0160 0162 | |
.... SNAP #24 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [1mssa.lua:39[m|---- ] | |
0164 [32mstr[m TOSTR 0162 NUM | |
0165 rdi p32 BUFHDR [0x40a35414] RESET | |
0166 rdi p32 BUFPUT 0165 [32m"L" [m | |
0167 rdi p32 BUFPUT 0166 0164 | |
0168 [68] [32mstr[m BUFSTR 0167 0165 | |
0169 [c] > [31mtab[m TDUP [31m{0x41107138}[m | |
0170 rsi > [31mtab[m TNEW #0 #0 | |
0171 r12 p32 FLOAD 0169 tab.node | |
0172 p32 HREFK 0171 [32m"bindings"[m @2 | |
0173 [31mtab[m HSTORE 0172 0170 | |
0174 p32 HREFK 0171 [32m"label"[m @3 | |
0175 [32mstr[m HSTORE 0174 0168 | |
.... SNAP #25 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [1mssa.lua:39[m|[32m0168[m [31m0169[m ---- ] | |
0176 r12 > p32 UREFO [1mssa.lua:39[m #1 | |
0177 r12 > [31mtab[m ULOAD 0176 | |
0178 [35mint[m FLOAD 0177 tab.hmask | |
0179 > [35mint[m EQ 0178 [35m+1 [m | |
0180 rsi p32 FLOAD 0177 tab.node | |
0181 > p32 HREFK 0180 [32m"blocks"[m @0 | |
0182 [60] > [31mtab[m HLOAD 0181 | |
0183 rdx p32 HREF 0182 0168 | |
0184 > p32 EQ 0183 [0x40a35458] | |
0185 [31mtab[m FLOAD 0182 tab.meta | |
0186 > [31mtab[m EQ 0185 [31m[NULL][m | |
0187 rax p32 NEWREF 0182 0168 | |
0188 [31mtab[m HSTORE 0187 0169 | |
0189 nil TBAR 0182 | |
0190 p32 FREF 0182 tab.nomm | |
0191 [35mu8 [m FSTORE 0190 [35m+0 [m | |
0192 [50] [34mnum[m ADD 0162 [34m+1 [m | |
0193 [34mnum[m USTORE 0160 0192 | |
.... SNAP #26 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [1mssa.lua:39[m|---- ] | |
0194 [32mstr[m TOSTR 0192 NUM | |
0195 rdi p32 BUFHDR [0x40a35414] RESET | |
0196 rdi p32 BUFPUT 0195 [32m"L" [m | |
0197 rdi p32 BUFPUT 0196 0194 | |
0198 [4c] [32mstr[m BUFSTR 0197 0195 | |
0199 [28] > [31mtab[m TDUP [31m{0x41107138}[m | |
0200 rsi > [31mtab[m TNEW #0 #0 | |
0201 [1c] p32 FLOAD 0199 tab.node | |
0202 p32 HREFK 0201 [32m"bindings"[m @2 | |
0203 [31mtab[m HSTORE 0202 0200 | |
0204 p32 HREFK 0201 [32m"label"[m @3 | |
0205 [32mstr[m HSTORE 0204 0198 | |
.... SNAP #27 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [1mssa.lua:39[m|[32m0198[m [31m0199[m ---- ] | |
0206 [35mint[m FLOAD 0177 tab.hmask | |
0207 > [35mint[m EQ 0206 [35m+1 [m | |
0208 r12 p32 FLOAD 0177 tab.node | |
0209 > p32 HREFK 0208 [32m"blocks"[m @0 | |
0210 r12 > [31mtab[m HLOAD 0209 | |
0211 rsi p32 HREF 0210 0198 | |
0212 > p32 EQ 0211 [0x40a35458] | |
0213 [31mtab[m FLOAD 0210 tab.meta | |
0214 > [31mtab[m EQ 0213 [31m[NULL][m | |
0215 rax p32 NEWREF 0210 0198 | |
0216 [31mtab[m HSTORE 0215 0199 | |
0217 nil TBAR 0210 | |
0218 p32 FREF 0210 tab.nomm | |
0219 [35mu8 [m FSTORE 0218 [35m+0 [m | |
.... SNAP #28 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [1mssa.lua:39[m|---- [31m0199[m ---- ] | |
0220 [35mint[m FLOAD 0132 tab.asize | |
0221 > [35mint[m ABC 0220 [35m+2 [m | |
0222 r12 p32 FLOAD 0132 tab.array | |
0223 p32 AREF 0222 [35m+2 [m | |
0224 r12 > [31mtab[m ALOAD 0223 | |
0225 rcx p32 HREF 0014 [32m"assert"[m | |
0226 > p32 EQ 0225 [0x40a35458] | |
0227 [35mint[m FLOAD 0017 tab.hmask | |
0228 > [35mint[m EQ 0227 [35m+1 [m | |
0229 rsi p32 FLOAD 0017 tab.node | |
0230 > p32 HREFK 0229 [32m"__index"[m @1 | |
0231 rsi > [31mtab[m HLOAD 0230 | |
0232 [35mint[m FLOAD 0231 tab.hmask | |
0233 > [35mint[m EQ 0232 [35m+63 [m | |
0234 rsi p32 FLOAD 0231 tab.node | |
0235 > p32 HREFK 0234 [32m"assert"[m @3 | |
0236 > [1mfun[m HLOAD 0235 | |
0237 rcx p32 HREF 0014 [32m"type"[m | |
0238 > p32 EQ 0237 [0x40a35458] | |
0239 > p32 HREFK 0234 [32m"type"[m @60 | |
0240 > [1mfun[m HLOAD 0239 | |
0241 > [1mfun[m EQ 0240 [1mtype[m | |
0242 > [1mfun[m EQ 0236 [1massert[m | |
0243 [35mint[m FLOAD 0224 tab.asize | |
0244 > [35mint[m ABC 0243 [35m+1 [m | |
0245 rsi p32 FLOAD 0224 tab.array | |
0246 p32 AREF 0245 [35m+1 [m | |
0247 [38] > [32mstr[m ALOAD 0246 | |
.... SNAP #29 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0248 > [32mstr[m NE 0247 [32m"if"[m | |
.... SNAP #30 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0249 > [32mstr[m NE 0247 [32m"let"[m | |
.... SNAP #31 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0250 > [32mstr[m NE 0247 [32m"true"[m | |
.... SNAP #32 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0251 > [32mstr[m NE 0247 [32m"false"[m | |
.... SNAP #33 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0252 > [32mstr[m NE 0247 [32m"match"[m | |
.... SNAP #34 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0253 > [32mstr[m NE 0247 [32m"fail"[m | |
.... SNAP #35 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0254 rsi p32 HREF 0047 0247 | |
0255 > tru HLOAD 0254 | |
0256 [44] > [31mtab[m TDUP [31m{0x411082e8}[m | |
0257 rdx p32 FLOAD 0256 tab.array | |
0258 p32 AREF 0257 [35m+2 [m | |
0259 [31mtab[m ASTORE 0258 0224 | |
.... SNAP #36 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m [1mssa.lua:49[m|[31m0133[m ---- [31m0169[m [31m0199[m [31m0256[m ] | |
0260 [35mint[m FLOAD 0169 tab.hmask | |
0261 > [35mint[m EQ 0260 [35m+3 [m | |
0262 [2c] p32 FLOAD 0169 tab.node | |
0263 > p32 HREFK 0262 [32m"label"[m @3 | |
0264 rcx > [32mstr[m HLOAD 0263 | |
0265 p32 AREF 0257 [35m+3 [m | |
0266 [32mstr[m ASTORE 0265 0264 | |
0267 p32 AREF 0257 [35m+4 [m | |
0268 [32mstr[m ASTORE 0267 0198 | |
.... SNAP #37 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m [1mssa.lua:49[m|[31m0133[m ---- ---- ---- [31m0256[m ---- ] | |
0269 rdx p32 HREF 0133 [32m"control"[m | |
0270 > p32 EQ 0269 [0x40a35458] | |
0271 [31mtab[m FLOAD 0133 tab.meta | |
0272 > [31mtab[m EQ 0271 [31m[NULL][m | |
0273 r9 p32 NEWREF 0133 [32m"control"[m | |
0274 [31mtab[m HSTORE 0273 0256 | |
0275 nil TBAR 0133 | |
.... SNAP #38 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m [1mssa.lua:49[m|---- ---- ---- ---- ---- ---- ] | |
0276 [35mint[m FLOAD 0132 tab.asize | |
0277 > [35mint[m ABC 0276 [35m+4 [m | |
0278 [30] p32 FLOAD 0132 tab.array | |
0279 p32 AREF 0278 [35m+3 [m | |
0280 r13 > [31mtab[m ALOAD 0279 | |
0281 rax p32 HREF 0014 [32m"assert"[m | |
0282 > p32 EQ 0281 [0x40a35458] | |
0283 [35mint[m FLOAD 0017 tab.hmask | |
0284 > [35mint[m EQ 0283 [35m+1 [m | |
0285 rdx p32 FLOAD 0017 tab.node | |
0286 > p32 HREFK 0285 [32m"__index"[m @1 | |
0287 rdx > [31mtab[m HLOAD 0286 | |
0288 [35mint[m FLOAD 0287 tab.hmask | |
0289 > [35mint[m EQ 0288 [35m+63 [m | |
0290 rdx p32 FLOAD 0287 tab.node | |
0291 > p32 HREFK 0290 [32m"assert"[m @3 | |
0292 > [1mfun[m HLOAD 0291 | |
0293 rax p32 HREF 0014 [32m"type"[m | |
0294 > p32 EQ 0293 [0x40a35458] | |
0295 > p32 HREFK 0290 [32m"type"[m @60 | |
0296 > [1mfun[m HLOAD 0295 | |
0297 > [1mfun[m EQ 0296 [1mtype[m | |
0298 > [1mfun[m EQ 0292 [1massert[m | |
0299 [35mint[m FLOAD 0280 tab.asize | |
0300 > [35mint[m ABC 0299 [35m+1 [m | |
0301 rdx p32 FLOAD 0280 tab.array | |
0302 p32 AREF 0301 [35m+1 [m | |
0303 [34] > [32mstr[m ALOAD 0302 | |
.... SNAP #39 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0304 > [32mstr[m NE 0303 [32m"if"[m | |
.... SNAP #40 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0305 > [32mstr[m NE 0303 [32m"let"[m | |
.... SNAP #41 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0306 > [32mstr[m NE 0303 [32m"true"[m | |
.... SNAP #42 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0307 > [32mstr[m NE 0303 [32m"false"[m | |
.... SNAP #43 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0308 > [32mstr[m NE 0303 [32m"match"[m | |
.... SNAP #44 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0309 > [32mstr[m NE 0303 [32m"fail"[m | |
.... SNAP #45 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0310 r12 p32 HREF 0047 0303 | |
0311 > tru HLOAD 0310 | |
0312 rax > [31mtab[m TDUP [31m{0x411082e8}[m | |
0313 r11 p32 FLOAD 0312 tab.array | |
0314 p32 AREF 0313 [35m+2 [m | |
0315 [31mtab[m ASTORE 0314 0280 | |
.... SNAP #46 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|[31m0169[m ---- [31m0134[m [31m0135[m [31m0312[m ] | |
0316 [35mint[m FLOAD 0134 tab.hmask | |
0317 > [35mint[m EQ 0316 [35m+1 [m | |
0318 r12 p32 FLOAD 0134 tab.node | |
0319 > p32 HREFK 0318 [32m"label"[m @1 | |
0320 r12 > [32mstr[m HLOAD 0319 | |
0321 p32 AREF 0313 [35m+3 [m | |
0322 [32mstr[m ASTORE 0321 0320 | |
.... SNAP #47 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|[31m0169[m ---- ---- [31m0135[m [31m0312[m ---- ] | |
0323 [35mint[m FLOAD 0135 tab.hmask | |
0324 > [35mint[m EQ 0323 [35m+1 [m | |
0325 r12 p32 FLOAD 0135 tab.node | |
0326 > p32 HREFK 0325 [32m"label"[m @1 | |
0327 r12 > [32mstr[m HLOAD 0326 | |
0328 p32 AREF 0313 [35m+4 [m | |
0329 [32mstr[m ASTORE 0328 0327 | |
.... SNAP #48 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|[31m0169[m ---- ---- ---- [31m0312[m ---- ] | |
0330 > p32 HREFK 0262 [32m"control"[m @1 | |
0331 [31mtab[m HSTORE 0330 0312 | |
.... SNAP #49 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|---- ---- ---- ---- ---- ---- ] | |
0332 p32 AREF 0278 [35m+4 [m | |
0333 [24] > [31mtab[m ALOAD 0332 | |
0334 [35mint[m FLOAD 0333 tab.asize | |
0335 > [35mint[m ABC 0334 [35m+1 [m | |
0336 rdx p32 FLOAD 0333 tab.array | |
0337 p32 AREF 0336 [35m+1 [m | |
0338 [20] > [32mstr[m ALOAD 0337 | |
.... SNAP #50 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0339 > [32mstr[m NE 0338 [32m"if"[m | |
.... SNAP #51 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0340 > [32mstr[m NE 0338 [32m"let"[m | |
.... SNAP #52 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0341 > [32mstr[m NE 0338 [32m"true"[m | |
.... SNAP #53 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0342 > [32mstr[m EQ 0338 [32m"false"[m | |
.... SNAP #54 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0343 r13 > [31mtab[m TDUP [31m{0x411085c8}[m | |
0344 rdi p32 FLOAD 0343 tab.array | |
0345 p32 AREF 0344 [35m+2 [m | |
0346 [32mstr[m ASTORE 0345 0327 | |
0347 p32 HREFK 0201 [32m"control"[m @1 | |
0348 [31mtab[m HSTORE 0347 0343 | |
.... SNAP #55 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m [1mssa.lua:52[m|---- ---- ---- ---- ] | |
0349 [35mint[m FLOAD 0127 tab.asize | |
0350 > [35mint[m ABC 0349 [35m+4 [m | |
0351 rbx p32 FLOAD 0127 tab.array | |
0352 p32 AREF 0351 [35m+4 [m | |
0353 rbx > [31mtab[m ALOAD 0352 | |
0354 rbp > [31mtab[m SLOAD #7 T | |
0355 [35mint[m FLOAD 0353 tab.asize | |
0356 > [35mint[m ABC 0355 [35m+1 [m | |
0357 r13 p32 FLOAD 0353 tab.array | |
0358 p32 AREF 0357 [35m+1 [m | |
0359 r13 > [32mstr[m ALOAD 0358 | |
.... SNAP #56 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0360 > [32mstr[m NE 0359 [32m"if"[m | |
.... SNAP #57 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0361 > [32mstr[m NE 0359 [32m"let"[m | |
.... SNAP #58 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0362 > [32mstr[m NE 0359 [32m"true"[m | |
.... SNAP #59 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0363 > [32mstr[m EQ 0359 [32m"false"[m | |
.... SNAP #60 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0364 [8] > [31mtab[m TDUP [31m{0x411085c8}[m | |
0365 rax p32 FLOAD 0364 tab.array | |
0366 p32 AREF 0365 [35m+2 [m | |
0367 [32mstr[m ASTORE 0366 0327 | |
.... SNAP #61 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m [1mssa.lua:52[m|[31m0354[m ---- [31m0364[m ---- ] | |
0368 rsi p32 HREF 0354 [32m"control"[m | |
0369 > p32 EQ 0368 [0x40a35458] | |
0370 [31mtab[m FLOAD 0354 tab.meta | |
0371 > [31mtab[m EQ 0370 [31m[NULL][m | |
0372 rbx p32 NEWREF 0354 [32m"control"[m | |
0373 [31mtab[m HSTORE 0372 0364 | |
0374 nil TBAR 0354 | |
.... SNAP #62 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ] | |
0375 > p32 RETF proto: 0x41107a60 [0x41107b7c] | |
.... SNAP #63 [ ---- ] | |
---- TRACE 3 mcode 4549 | |
0bcbe9a6 add rsp, -0x70 | |
0bcbe9aa mov dword [0x40a35410], 0x3 | |
0bcbe9b5 mov ebp, edx | |
0bcbe9b7 mov edi, [0x40a353d8] | |
0bcbe9be cmp edi, [0x40a353dc] | |
0bcbe9c5 jb 0x0bcbe9de | |
0bcbe9c7 mov esi, 0xc | |
0bcbe9cc mov edi, 0x40a353b8 | |
0bcbe9d1 call 0x00421730 ->lj_gc_step_jit | |
0bcbe9d6 test eax, eax | |
0bcbe9d8 jnz 0x0bcb0010 ->0 | |
0bcbe9de mov edi, [0x40a354b0] | |
0bcbe9e5 cmp dword [rbp-0x4], 0x41107b00 | |
0bcbe9ec jnz 0x0bcb0014 ->1 | |
0bcbe9f2 add ebp, -0x40 | |
0bcbe9f5 mov [0x40a354b4], ebp | |
0bcbe9fc cmp dword [rbp-0x8], 0x40a49b78 | |
0bcbea03 jnz 0x0bcb0018 ->2 | |
0bcbea09 cmp dword [rbp+0x4], -0x0c | |
0bcbea0d jnz 0x0bcb0018 ->2 | |
0bcbea13 mov ebx, [rbp+0x0] | |
0bcbea16 cmp dword [rbx+0x18], +0x03 | |
0bcbea1a jbe 0x0bcb0018 ->2 | |
0bcbea20 mov r15d, [rbx+0x8] | |
0bcbea24 cmp dword [r15+0x1c], -0x0c | |
0bcbea29 jnz 0x0bcb0018 ->2 | |
0bcbea2f mov r15d, [r15+0x18] | |
0bcbea33 mov [rsp+0x7c], r15d | |
0bcbea38 cmp dword [rbp+0x2c], -0x0c | |
0bcbea3c jnz 0x0bcb0018 ->2 | |
0bcbea42 mov esi, [rbp+0x28] | |
0bcbea45 mov [rsp+0x78], esi | |
0bcbea49 cmp dword [rbp+0x14], -0x0c | |
0bcbea4d jnz 0x0bcb0018 ->2 | |
0bcbea53 mov r14d, [rbp+0x10] | |
0bcbea57 cmp dword [rbp+0x1c], -0x0c | |
0bcbea5b jnz 0x0bcb0018 ->2 | |
0bcbea61 mov r13d, [rbp+0x18] | |
0bcbea65 mov r11d, [0x40a49b80] | |
0bcbea6d mov [rsp+0x48], r11d | |
0bcbea72 mov esi, [r11+0x1c] | |
0bcbea76 and esi, 0xce2b6183 | |
0bcbea7c lea esi, [rsi+rsi*2] | |
0bcbea7f shl esi, 0x03 | |
0bcbea82 add esi, [r11+0x14] | |
0bcbea86 cmp dword [rsi+0xc], -0x05 | |
0bcbea8a jnz 0x0bcbea99 | |
0bcbea8c cmp dword [rsi+0x8], 0x40a37db0 | |
0bcbea93 jz 0x0bcb0018 ->2 | |
0bcbea99 mov esi, [rsi+0x10] | |
0bcbea9c test esi, esi | |
0bcbea9e jnz 0x0bcbea86 | |
0bcbeaa0 mov r12d, [r11+0x10] | |
0bcbeaa4 mov [rsp+0x3c], r12d | |
0bcbeaa9 test r12d, r12d | |
0bcbeaac jz 0x0bcb0018 ->2 | |
0bcbeab2 cmp dword [r12+0x1c], +0x01 | |
0bcbeab8 jnz 0x0bcb0018 ->2 | |
0bcbeabe mov esi, [r12+0x14] | |
0bcbeac3 mov rdx, 0xfffffffb40a374c8 | |
0bcbeacd cmp rdx, [rsi+0x20] | |
0bcbead1 jnz 0x0bcb0018 ->2 | |
0bcbead7 cmp dword [rsi+0x1c], -0x0c | |
0bcbeadb jnz 0x0bcb0018 ->2 | |
0bcbeae1 mov esi, [rsi+0x18] | |
0bcbeae4 cmp dword [rsi+0x1c], +0x3f | |
0bcbeae8 jnz 0x0bcb0018 ->2 | |
0bcbeaee mov esi, [rsi+0x14] | |
0bcbeaf1 mov rdx, 0xfffffffb40a37db0 | |
0bcbeafb cmp rdx, [rsi+0x50] | |
0bcbeaff jnz 0x0bcb0018 ->2 | |
0bcbeb05 cmp dword [rsi+0x4c], -0x09 | |
0bcbeb09 jnz 0x0bcb0018 ->2 | |
0bcbeb0f mov edx, [r11+0x1c] | |
0bcbeb13 and edx, 0x798a813c | |
0bcbeb19 lea edx, [rdx+rdx*2] | |
0bcbeb1c shl edx, 0x03 | |
0bcbeb1f add edx, [r11+0x14] | |
0bcbeb23 cmp dword [rdx+0xc], -0x05 | |
0bcbeb27 jnz 0x0bcbeb36 | |
0bcbeb29 cmp dword [rdx+0x8], 0x40a37fb0 | |
0bcbeb30 jz 0x0bcb0018 ->2 | |
0bcbeb36 mov edx, [rdx+0x10] | |
0bcbeb39 test edx, edx | |
0bcbeb3b jnz 0x0bcbeb23 | |
0bcbeb3d mov rdx, 0xfffffffb40a37fb0 | |
0bcbeb47 cmp rdx, [rsi+0x5a8] | |
0bcbeb4e jnz 0x0bcb0018 ->2 | |
0bcbeb54 cmp dword [rsi+0x5a4], -0x09 | |
0bcbeb5b jnz 0x0bcb0018 ->2 | |
0bcbeb61 cmp dword [rsi+0x5a0], 0x40a37f18 | |
0bcbeb6b jnz 0x0bcb0018 ->2 | |
0bcbeb71 cmp dword [rsi+0x48], 0x40a37d88 | |
0bcbeb78 jnz 0x0bcb0018 ->2 | |
0bcbeb7e cmp dword [r15+0x18], +0x01 | |
0bcbeb83 jbe 0x0bcb0018 ->2 | |
0bcbeb89 mov esi, [r15+0x8] | |
0bcbeb8d cmp dword [rsi+0xc], -0x05 | |
0bcbeb91 jnz 0x0bcb0018 ->2 | |
0bcbeb97 mov ecx, [rsi+0x8] | |
0bcbeb9a mov [rsp+0x74], ecx | |
0bcbeb9e cmp ecx, 0x40a378f8 | |
0bcbeba4 jz 0x0bcb001c ->3 | |
0bcbebaa cmp ecx, 0x410f6fc8 | |
0bcbebb0 jz 0x0bcb0020 ->4 | |
0bcbebb6 cmp ecx, 0x40a37a18 | |
0bcbebbc jz 0x0bcb0024 ->5 | |
0bcbebc2 cmp ecx, 0x40a37870 | |
0bcbebc8 jz 0x0bcb0028 ->6 | |
0bcbebce cmp ecx, 0x40a3acb0 | |
0bcbebd4 jz 0x0bcb002c ->7 | |
0bcbebda cmp ecx, 0x40a527f8 | |
0bcbebe0 jz 0x0bcb0030 ->8 | |
0bcbebe6 cmp dword [0x410fb854], -0x0c | |
0bcbebee jnz 0x0bcb0034 ->9 | |
0bcbebf4 mov edx, [0x410fb850] | |
0bcbebfb mov [rsp+0x40], edx | |
0bcbebff mov esi, [rdx+0x1c] | |
0bcbec02 and esi, [rcx+0x8] | |
0bcbec05 lea esi, [rsi+rsi*2] | |
0bcbec08 shl esi, 0x03 | |
0bcbec0b add esi, [rdx+0x14] | |
0bcbec0e cmp dword [rsi+0xc], -0x05 | |
0bcbec12 jnz 0x0bcbec19 | |
0bcbec14 cmp ecx, [rsi+0x8] | |
0bcbec17 jz 0x0bcbec25 | |
0bcbec19 mov esi, [rsi+0x10] | |
0bcbec1c test esi, esi | |
0bcbec1e jnz 0x0bcbec0e | |
0bcbec20 mov esi, 0x40a35458 | |
0bcbec25 cmp dword [rsi+0x4], -0x03 | |
0bcbec29 jnz 0x0bcb0034 ->9 | |
0bcbec2f mov esi, 0x411082e8 | |
0bcbec34 call 0x004223c0 ->lj_tab_dup | |
0bcbec39 mov [rsp+0x70], eax | |
0bcbec3d mov edi, [0x40a354b0] | |
0bcbec44 mov esi, [rsp+0x78] | |
0bcbec48 mov eax, [rax+0x8] | |
0bcbec4b mov dword [rax+0x14], 0xfffffff4 | |
0bcbec52 mov [rax+0x10], r15d | |
0bcbec56 cmp dword [r14+0x1c], +0x01 | |
0bcbec5b jnz 0x0bcb0038 ->10 | |
0bcbec61 mov r15d, [r14+0x14] | |
0bcbec65 mov rdx, 0xfffffffb41106450 | |
0bcbec6f cmp rdx, [r15+0x20] | |
0bcbec73 jnz 0x0bcb0038 ->10 | |
0bcbec79 cmp dword [r15+0x1c], -0x05 | |
0bcbec7e jnz 0x0bcb0038 ->10 | |
0bcbec84 mov r15d, [r15+0x18] | |
0bcbec88 mov dword [rax+0x1c], 0xfffffffb | |
0bcbec8f mov [rax+0x18], r15d | |
0bcbec93 cmp dword [r13+0x1c], +0x01 | |
0bcbec98 jnz 0x0bcb003c ->11 | |
0bcbec9e mov r15d, [r13+0x14] | |
0bcbeca2 mov rdx, 0xfffffffb41106450 | |
0bcbecac cmp rdx, [r15+0x20] | |
0bcbecb0 jnz 0x0bcb003c ->11 | |
0bcbecb6 cmp dword [r15+0x1c], -0x05 | |
0bcbecbb jnz 0x0bcb003c ->11 | |
0bcbecc1 mov r15d, [r15+0x18] | |
0bcbecc5 mov dword [rax+0x24], 0xfffffffb | |
0bcbeccc mov [rax+0x20], r15d | |
0bcbecd0 mov edx, [rsi+0x1c] | |
0bcbecd3 and edx, 0x2a54dc55 | |
0bcbecd9 lea edx, [rdx+rdx*2] | |
0bcbecdc shl edx, 0x03 | |
0bcbecdf add edx, [rsi+0x14] | |
0bcbece2 cmp dword [rdx+0xc], -0x05 | |
0bcbece6 jnz 0x0bcbecf5 | |
0bcbece8 cmp dword [rdx+0x8], 0x41106bb8 | |
0bcbecef jz 0x0bcb0040 ->12 | |
0bcbecf5 mov edx, [rdx+0x10] | |
0bcbecf8 test edx, edx | |
0bcbecfa jnz 0x0bcbece2 | |
0bcbecfc cmp dword [rsi+0x10], +0x00 | |
0bcbed00 jnz 0x0bcb0040 ->12 | |
0bcbed06 mov edx, 0x40a35448 | |
0bcbed0b mov dword [rdx+0x4], 0xfffffffb | |
0bcbed12 mov dword [rdx], 0x41106bb8 | |
0bcbed18 call 0x00422cf0 ->lj_tab_newkey | |
0bcbed1d mov r15d, eax | |
0bcbed20 mov r11d, [rsp+0x48] | |
0bcbed25 mov edi, [0x40a354b0] | |
0bcbed2c mov edx, [rsp+0x78] | |
0bcbed30 mov eax, [rsp+0x70] | |
0bcbed34 mov dword [r15+0x4], 0xfffffff4 | |
0bcbed3c mov [r15], eax | |
0bcbed3f test byte [rdx+0x4], 0x4 | |
0bcbed43 jz 0x0bcbed5a | |
0bcbed45 and byte [rdx+0x4], 0xfb | |
0bcbed49 mov eax, [0x40a353f4] | |
0bcbed50 mov [0x40a353f4], edx | |
0bcbed57 mov [rdx+0xc], eax | |
0bcbed5a cmp dword [rbx+0x18], +0x04 | |
0bcbed5e jbe 0x0bcb0044 ->13 | |
0bcbed64 mov ebx, [rbx+0x8] | |
0bcbed67 cmp dword [rbx+0x24], -0x0c | |
0bcbed6b jnz 0x0bcb0044 ->13 | |
0bcbed71 mov r15d, [rbx+0x20] | |
0bcbed75 cmp dword [rbp+0x34], -0x0c | |
0bcbed79 jnz 0x0bcb0044 ->13 | |
0bcbed7f mov ebx, [rbp+0x30] | |
0bcbed82 mov eax, [r11+0x1c] | |
0bcbed86 and eax, 0xce2b6183 | |
0bcbed8c lea eax, [rax+rax*2] | |
0bcbed8f shl eax, 0x03 | |
0bcbed92 add eax, [r11+0x14] | |
0bcbed96 cmp dword [rax+0xc], -0x05 | |
0bcbed9a jnz 0x0bcbeda9 | |
0bcbed9c cmp dword [rax+0x8], 0x40a37db0 | |
0bcbeda3 jz 0x0bcb0044 ->13 | |
0bcbeda9 mov eax, [rax+0x10] | |
0bcbedac test eax, eax | |
0bcbedae jnz 0x0bcbed96 | |
0bcbedb0 cmp dword [r12+0x1c], +0x01 | |
0bcbedb6 jnz 0x0bcb0044 ->13 | |
0bcbedbc mov r12d, [r12+0x14] | |
0bcbedc1 mov rax, 0xfffffffb40a374c8 | |
0bcbedcb cmp rax, [r12+0x20] | |
0bcbedd0 jnz 0x0bcb0044 ->13 | |
0bcbedd6 cmp dword [r12+0x1c], -0x0c | |
0bcbeddc jnz 0x0bcb0044 ->13 | |
0bcbede2 mov r12d, [r12+0x18] | |
0bcbede7 cmp dword [r12+0x1c], +0x3f | |
0bcbeded jnz 0x0bcb0044 ->13 | |
0bcbedf3 mov r12d, [r12+0x14] | |
0bcbedf8 mov rax, 0xfffffffb40a37db0 | |
0bcbee02 cmp rax, [r12+0x50] | |
0bcbee07 jnz 0x0bcb0044 ->13 | |
0bcbee0d cmp dword [r12+0x4c], -0x09 | |
0bcbee13 jnz 0x0bcb0044 ->13 | |
0bcbee19 mov eax, [r11+0x1c] | |
0bcbee1d and eax, 0x798a813c | |
0bcbee23 lea eax, [rax+rax*2] | |
0bcbee26 shl eax, 0x03 | |
0bcbee29 add eax, [r11+0x14] | |
0bcbee2d cmp dword [rax+0xc], -0x05 | |
0bcbee31 jnz 0x0bcbee40 | |
0bcbee33 cmp dword [rax+0x8], 0x40a37fb0 | |
0bcbee3a jz 0x0bcb0044 ->13 | |
0bcbee40 mov eax, [rax+0x10] | |
0bcbee43 test eax, eax | |
0bcbee45 jnz 0x0bcbee2d | |
0bcbee47 mov rax, 0xfffffffb40a37fb0 | |
0bcbee51 cmp rax, [r12+0x5a8] | |
0bcbee59 jnz 0x0bcb0044 ->13 | |
0bcbee5f cmp dword [r12+0x5a4], -0x09 | |
0bcbee68 jnz 0x0bcb0044 ->13 | |
0bcbee6e cmp dword [r12+0x5a0], 0x40a37f18 | |
0bcbee7a jnz 0x0bcb0044 ->13 | |
0bcbee80 cmp dword [r12+0x48], 0x40a37d88 | |
0bcbee89 jnz 0x0bcb0044 ->13 | |
0bcbee8f cmp dword [r15+0x18], +0x01 | |
0bcbee94 jbe 0x0bcb0044 ->13 | |
0bcbee9a mov r12d, [r15+0x8] | |
0bcbee9e cmp dword [r12+0xc], -0x05 | |
0bcbeea4 jnz 0x0bcb0044 ->13 | |
0bcbeeaa mov r12d, [r12+0x8] | |
0bcbeeaf cmp r12d, 0x40a378f8 | |
0bcbeeb6 jz 0x0bcb0048 ->14 | |
0bcbeebc cmp r12d, 0x410f6fc8 | |
0bcbeec3 jz 0x0bcb004c ->15 | |
0bcbeec9 cmp r12d, 0x40a37a18 | |
0bcbeed0 jz 0x0bcb0050 ->16 | |
0bcbeed6 cmp r12d, 0x40a37870 | |
0bcbeedd jnz 0x0bcb0054 ->17 | |
0bcbeee3 mov esi, 0x411085c8 | |
0bcbeee8 call 0x004223c0 ->lj_tab_dup | |
0bcbeeed mov [rsp+0x6c], eax | |
0bcbeef1 mov edi, [0x40a354b0] | |
0bcbeef8 cmp dword [r13+0x1c], +0x01 | |
0bcbeefd jnz 0x0bcb0058 ->18 | |
0bcbef03 mov esi, [r13+0x14] | |
0bcbef07 mov rdx, 0xfffffffb41106450 | |
0bcbef11 cmp rdx, [rsi+0x20] | |
0bcbef15 jnz 0x0bcb0058 ->18 | |
0bcbef1b cmp dword [rsi+0x1c], -0x05 | |
0bcbef1f jnz 0x0bcb0058 ->18 | |
0bcbef25 mov esi, [rsi+0x18] | |
0bcbef28 mov eax, [rax+0x8] | |
0bcbef2b mov dword [rax+0x14], 0xfffffffb | |
0bcbef32 mov [rax+0x10], esi | |
0bcbef35 mov esi, [rbx+0x1c] | |
0bcbef38 and esi, 0x2a54dc55 | |
0bcbef3e lea esi, [rsi+rsi*2] | |
0bcbef41 shl esi, 0x03 | |
0bcbef44 add esi, [rbx+0x14] | |
0bcbef47 cmp dword [rsi+0xc], -0x05 | |
0bcbef4b jnz 0x0bcbef5a | |
0bcbef4d cmp dword [rsi+0x8], 0x41106bb8 | |
0bcbef54 jz 0x0bcb005c ->19 | |
0bcbef5a mov esi, [rsi+0x10] | |
0bcbef5d test esi, esi | |
0bcbef5f jnz 0x0bcbef47 | |
0bcbef61 cmp dword [rbx+0x10], +0x00 | |
0bcbef65 jnz 0x0bcb005c ->19 | |
0bcbef6b mov edx, 0x40a35448 | |
0bcbef70 mov dword [rdx+0x4], 0xfffffffb | |
0bcbef77 mov dword [rdx], 0x41106bb8 | |
0bcbef7d mov esi, ebx | |
0bcbef7f call 0x00422cf0 ->lj_tab_newkey | |
0bcbef84 mov r15d, eax | |
0bcbef87 mov r11d, [rsp+0x48] | |
0bcbef8c mov esi, [rsp+0x3c] | |
0bcbef90 mov eax, [rsp+0x6c] | |
0bcbef94 mov dword [r15+0x4], 0xfffffff4 | |
0bcbef9c mov [r15], eax | |
0bcbef9f test byte [rbx+0x4], 0x4 | |
0bcbefa3 jz 0x0bcbefba | |
0bcbefa5 and byte [rbx+0x4], 0xfb | |
0bcbefa9 mov edi, [0x40a353f4] | |
0bcbefb0 mov [0x40a353f4], ebx | |
0bcbefb7 mov [rbx+0xc], edi | |
0bcbefba cmp dword [rbp-0x4], 0x41107b00 | |
0bcbefc1 jnz 0x0bcb0060 ->20 | |
0bcbefc7 add ebp, -0x40 | |
0bcbefca mov [0x40a354b4], ebp | |
0bcbefd1 cmp dword [rbp-0x8], 0x40a49b78 | |
0bcbefd8 jnz 0x0bcb0064 ->21 | |
0bcbefde cmp dword [rbp+0x4], -0x0c | |
0bcbefe2 jnz 0x0bcb0064 ->21 | |
0bcbefe8 mov ebx, [rbp+0x0] | |
0bcbefeb cmp dword [rbx+0x18], +0x03 | |
0bcbefef jbe 0x0bcb0064 ->21 | |
0bcbeff5 mov r15d, [rbx+0x8] | |
0bcbeff9 cmp dword [r15+0x1c], -0x0c | |
0bcbeffe jnz 0x0bcb0064 ->21 | |
0bcbf004 mov r13d, [r15+0x18] | |
0bcbf008 mov [rsp+0x18], r13d | |
0bcbf00d cmp dword [rbp+0x2c], -0x0c | |
0bcbf011 jnz 0x0bcb0064 ->21 | |
0bcbf017 mov edi, [rbp+0x28] | |
0bcbf01a mov [rsp+0x14], edi | |
0bcbf01e cmp dword [rbp+0x14], -0x0c | |
0bcbf022 jnz 0x0bcb0064 ->21 | |
0bcbf028 mov r15d, [rbp+0x10] | |
0bcbf02c cmp dword [rbp+0x1c], -0x0c | |
0bcbf030 jnz 0x0bcb0064 ->21 | |
0bcbf036 mov r14d, [rbp+0x18] | |
0bcbf03a mov edi, [r11+0x1c] | |
0bcbf03e and edi, 0xce2b6183 | |
0bcbf044 lea edi, [rdi+rdi*2] | |
0bcbf047 shl edi, 0x03 | |
0bcbf04a add edi, [r11+0x14] | |
0bcbf04e cmp dword [rdi+0xc], -0x05 | |
0bcbf052 jnz 0x0bcbf061 | |
0bcbf054 cmp dword [rdi+0x8], 0x40a37db0 | |
0bcbf05b jz 0x0bcb0064 ->21 | |
0bcbf061 mov edi, [rdi+0x10] | |
0bcbf064 test edi, edi | |
0bcbf066 jnz 0x0bcbf04e | |
0bcbf068 cmp dword [rsi+0x1c], +0x01 | |
0bcbf06c jnz 0x0bcb0064 ->21 | |
0bcbf072 mov r12d, [rsi+0x14] | |
0bcbf076 mov rdi, 0xfffffffb40a374c8 | |
0bcbf080 cmp rdi, [r12+0x20] | |
0bcbf085 jnz 0x0bcb0064 ->21 | |
0bcbf08b cmp dword [r12+0x1c], -0x0c | |
0bcbf091 jnz 0x0bcb0064 ->21 | |
0bcbf097 mov r12d, [r12+0x18] | |
0bcbf09c cmp dword [r12+0x1c], +0x3f | |
0bcbf0a2 jnz 0x0bcb0064 ->21 | |
0bcbf0a8 mov r12d, [r12+0x14] | |
0bcbf0ad mov rdi, 0xfffffffb40a37db0 | |
0bcbf0b7 cmp rdi, [r12+0x50] | |
0bcbf0bc jnz 0x0bcb0064 ->21 | |
0bcbf0c2 cmp dword [r12+0x4c], -0x09 | |
0bcbf0c8 jnz 0x0bcb0064 ->21 | |
0bcbf0ce mov edi, [r11+0x1c] | |
0bcbf0d2 and edi, 0x798a813c | |
0bcbf0d8 lea edi, [rdi+rdi*2] | |
0bcbf0db shl edi, 0x03 | |
0bcbf0de add edi, [r11+0x14] | |
0bcbf0e2 cmp dword [rdi+0xc], -0x05 | |
0bcbf0e6 jnz 0x0bcbf0f5 | |
0bcbf0e8 cmp dword [rdi+0x8], 0x40a37fb0 | |
0bcbf0ef jz 0x0bcb0064 ->21 | |
0bcbf0f5 mov edi, [rdi+0x10] | |
0bcbf0f8 test edi, edi | |
0bcbf0fa jnz 0x0bcbf0e2 | |
0bcbf0fc mov rdi, 0xfffffffb40a37fb0 | |
0bcbf106 cmp rdi, [r12+0x5a8] | |
0bcbf10e jnz 0x0bcb0064 ->21 | |
0bcbf114 cmp dword [r12+0x5a4], -0x09 | |
0bcbf11d jnz 0x0bcb0064 ->21 | |
0bcbf123 cmp dword [r12+0x5a0], 0x40a37f18 | |
0bcbf12f jnz 0x0bcb0064 ->21 | |
0bcbf135 cmp dword [r12+0x48], 0x40a37d88 | |
0bcbf13e jnz 0x0bcb0064 ->21 | |
0bcbf144 cmp dword [r13+0x18], +0x01 | |
0bcbf149 jbe 0x0bcb0064 ->21 | |
0bcbf14f mov r12d, [r13+0x8] | |
0bcbf153 cmp dword [r12+0xc], -0x05 | |
0bcbf159 jnz 0x0bcb0064 ->21 | |
0bcbf15f mov ecx, [r12+0x8] | |
0bcbf164 mov [rsp+0x10], ecx | |
0bcbf168 cmp dword [r12+0x8], 0x40a378f8 | |
0bcbf171 jnz 0x0bcb0068 ->22 | |
0bcbf177 mov edi, [0x410f60b0] | |
0bcbf17e mov [rsp+0x64], edi | |
0bcbf182 cmp dword [rdi+0x4], 0xfffeffff | |
0bcbf189 jnb 0x0bcb006c ->23 | |
0bcbf18f movsd xmm7, [rdi] | |
0bcbf193 addsd xmm7, [0x410fa9e0] | |
0bcbf19c movsd [rsp+0x58], xmm7 | |
0bcbf1a2 movsd [rdi], xmm7 | |
0bcbf1a6 mov edi, 0x40a35414 | |
0bcbf1ab mov esi, [rdi+0x8] | |
0bcbf1ae mov [rdi], esi | |
0bcbf1b0 mov esi, 0x4c | |
0bcbf1b5 call 0x00421b60 ->lj_buf_putchar | |
0bcbf1ba mov edi, eax | |
0bcbf1bc lea rsi, [rsp+0x58] | |
0bcbf1c1 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbf1c6 mov edi, eax | |
0bcbf1c8 call 0x00421ff0 ->lj_buf_tostr | |
0bcbf1cd mov [rsp+0x68], eax | |
0bcbf1d1 mov edi, [0x40a354b0] | |
0bcbf1d8 mov esi, 0x41107138 | |
0bcbf1dd call 0x004223c0 ->lj_tab_dup | |
0bcbf1e2 mov [rsp+0xc], eax | |
0bcbf1e6 mov edi, [0x40a354b0] | |
0bcbf1ed xor esi, esi | |
0bcbf1ef call 0x00422350 ->lj_tab_new1 | |
0bcbf1f4 mov esi, eax | |
0bcbf1f6 mov edi, [0x40a354b0] | |
0bcbf1fd mov ecx, [rsp+0xc] | |
0bcbf201 mov eax, [rsp+0x68] | |
0bcbf205 mov r12d, [rcx+0x14] | |
0bcbf209 mov dword [r12+0x34], 0xfffffff4 | |
0bcbf212 mov [r12+0x30], esi | |
0bcbf217 mov dword [r12+0x4c], 0xfffffffb | |
0bcbf220 mov [r12+0x48], eax | |
0bcbf225 mov r12d, [0x410fb838] | |
0bcbf22d cmp dword [r12+0x4], -0x0c | |
0bcbf233 jnz 0x0bcb0074 ->25 | |
0bcbf239 mov r12d, [r12] | |
0bcbf23d cmp dword [r12+0x1c], +0x01 | |
0bcbf243 jnz 0x0bcb0074 ->25 | |
0bcbf249 mov esi, [r12+0x14] | |
0bcbf24e mov rdx, 0xfffffffb411063b0 | |
0bcbf258 cmp rdx, [rsi+0x8] | |
0bcbf25c jnz 0x0bcb0074 ->25 | |
0bcbf262 cmp dword [rsi+0x4], -0x0c | |
0bcbf266 jnz 0x0bcb0074 ->25 | |
0bcbf26c mov esi, [rsi] | |
0bcbf26e mov [rsp+0x60], esi | |
0bcbf272 mov edx, [rsi+0x1c] | |
0bcbf275 and edx, [rax+0x8] | |
0bcbf278 lea edx, [rdx+rdx*2] | |
0bcbf27b shl edx, 0x03 | |
0bcbf27e add edx, [rsi+0x14] | |
0bcbf281 cmp dword [rdx+0xc], -0x05 | |
0bcbf285 jnz 0x0bcbf290 | |
0bcbf287 cmp eax, [rdx+0x8] | |
0bcbf28a jz 0x0bcb0074 ->25 | |
0bcbf290 mov edx, [rdx+0x10] | |
0bcbf293 test edx, edx | |
0bcbf295 jnz 0x0bcbf281 | |
0bcbf297 cmp dword [rsi+0x10], +0x00 | |
0bcbf29b jnz 0x0bcb0074 ->25 | |
0bcbf2a1 mov edx, 0x40a35448 | |
0bcbf2a6 mov dword [rdx+0x4], 0xfffffffb | |
0bcbf2ad mov [rdx], eax | |
0bcbf2af call 0x00422cf0 ->lj_tab_newkey | |
0bcbf2b4 mov edi, [rsp+0x64] | |
0bcbf2b8 mov esi, [rsp+0x60] | |
0bcbf2bc mov ecx, [rsp+0xc] | |
0bcbf2c0 movsd xmm7, [rsp+0x58] | |
0bcbf2c6 mov dword [rax+0x4], 0xfffffff4 | |
0bcbf2cd mov [rax], ecx | |
0bcbf2cf test byte [rsi+0x4], 0x4 | |
0bcbf2d3 jz 0x0bcbf2ea | |
0bcbf2d5 and byte [rsi+0x4], 0xfb | |
0bcbf2d9 mov edx, [0x40a353f4] | |
0bcbf2e0 mov [0x40a353f4], esi | |
0bcbf2e7 mov [rsi+0xc], edx | |
0bcbf2ea mov byte [rsi+0x6], 0x0 | |
0bcbf2ee addsd xmm7, [0x410fa9e0] | |
0bcbf2f7 movsd [rsp+0x50], xmm7 | |
0bcbf2fd movsd [rdi], xmm7 | |
0bcbf301 mov edi, 0x40a35414 | |
0bcbf306 mov esi, [rdi+0x8] | |
0bcbf309 mov [rdi], esi | |
0bcbf30b mov esi, 0x4c | |
0bcbf310 call 0x00421b60 ->lj_buf_putchar | |
0bcbf315 mov edi, eax | |
0bcbf317 lea rsi, [rsp+0x50] | |
0bcbf31c call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbf321 mov edi, eax | |
0bcbf323 call 0x00421ff0 ->lj_buf_tostr | |
0bcbf328 mov [rsp+0x4c], eax | |
0bcbf32c mov edi, [0x40a354b0] | |
0bcbf333 mov esi, 0x41107138 | |
0bcbf338 call 0x004223c0 ->lj_tab_dup | |
0bcbf33d mov [rsp+0x28], eax | |
0bcbf341 mov edi, [0x40a354b0] | |
0bcbf348 xor esi, esi | |
0bcbf34a call 0x00422350 ->lj_tab_new1 | |
0bcbf34f mov esi, eax | |
0bcbf351 mov edi, [0x40a354b0] | |
0bcbf358 mov ecx, [rsp+0x28] | |
0bcbf35c mov eax, [rsp+0x4c] | |
0bcbf360 mov r8d, [rcx+0x14] | |
0bcbf364 mov [rsp+0x1c], r8d | |
0bcbf369 mov dword [r8+0x34], 0xfffffff4 | |
0bcbf371 mov [r8+0x30], esi | |
0bcbf375 mov dword [r8+0x4c], 0xfffffffb | |
0bcbf37d mov [r8+0x48], eax | |
0bcbf381 cmp dword [r12+0x1c], +0x01 | |
0bcbf387 jnz 0x0bcb007c ->27 | |
0bcbf38d mov r12d, [r12+0x14] | |
0bcbf392 mov rsi, 0xfffffffb411063b0 | |
0bcbf39c cmp rsi, [r12+0x8] | |
0bcbf3a1 jnz 0x0bcb007c ->27 | |
0bcbf3a7 cmp dword [r12+0x4], -0x0c | |
0bcbf3ad jnz 0x0bcb007c ->27 | |
0bcbf3b3 mov r12d, [r12] | |
0bcbf3b7 mov esi, [r12+0x1c] | |
0bcbf3bc and esi, [rax+0x8] | |
0bcbf3bf lea esi, [rsi+rsi*2] | |
0bcbf3c2 shl esi, 0x03 | |
0bcbf3c5 add esi, [r12+0x14] | |
0bcbf3ca cmp dword [rsi+0xc], -0x05 | |
0bcbf3ce jnz 0x0bcbf3d9 | |
0bcbf3d0 cmp eax, [rsi+0x8] | |
0bcbf3d3 jz 0x0bcb007c ->27 | |
0bcbf3d9 mov esi, [rsi+0x10] | |
0bcbf3dc test esi, esi | |
0bcbf3de jnz 0x0bcbf3ca | |
0bcbf3e0 cmp dword [r12+0x10], +0x00 | |
0bcbf3e6 jnz 0x0bcb007c ->27 | |
0bcbf3ec mov edx, 0x40a35448 | |
0bcbf3f1 mov dword [rdx+0x4], 0xfffffffb | |
0bcbf3f8 mov [rdx], eax | |
0bcbf3fa mov esi, r12d | |
0bcbf3fd call 0x00422cf0 ->lj_tab_newkey | |
0bcbf402 mov r11d, [rsp+0x48] | |
0bcbf407 mov edi, [0x40a354b0] | |
0bcbf40e mov esi, [rsp+0x3c] | |
0bcbf412 mov edx, [rsp+0x40] | |
0bcbf416 mov ecx, [rsp+0x28] | |
0bcbf41a mov dword [rax+0x4], 0xfffffff4 | |
0bcbf421 mov [rax], ecx | |
0bcbf423 test byte [r12+0x4], 0x4 | |
0bcbf429 jz 0x0bcbf445 | |
0bcbf42b and byte [r12+0x4], 0xfb | |
0bcbf431 mov ecx, [0x40a353f4] | |
0bcbf438 mov [0x40a353f4], r12d | |
0bcbf440 mov [r12+0xc], ecx | |
0bcbf445 mov byte [r12+0x6], 0x0 | |
0bcbf44b cmp dword [r13+0x18], +0x02 | |
0bcbf450 jbe 0x0bcb0080 ->28 | |
0bcbf456 mov r12d, [r13+0x8] | |
0bcbf45a cmp dword [r12+0x14], -0x0c | |
0bcbf460 jnz 0x0bcb0080 ->28 | |
0bcbf466 mov r12d, [r12+0x10] | |
0bcbf46b mov ecx, [r11+0x1c] | |
0bcbf46f and ecx, 0xce2b6183 | |
0bcbf475 lea ecx, [rcx+rcx*2] | |
0bcbf478 shl ecx, 0x03 | |
0bcbf47b add ecx, [r11+0x14] | |
0bcbf47f cmp dword [rcx+0xc], -0x05 | |
0bcbf483 jnz 0x0bcbf492 | |
0bcbf485 cmp dword [rcx+0x8], 0x40a37db0 | |
0bcbf48c jz 0x0bcb0080 ->28 | |
0bcbf492 mov ecx, [rcx+0x10] | |
0bcbf495 test ecx, ecx | |
0bcbf497 jnz 0x0bcbf47f | |
0bcbf499 cmp dword [rsi+0x1c], +0x01 | |
0bcbf49d jnz 0x0bcb0080 ->28 | |
0bcbf4a3 mov esi, [rsi+0x14] | |
0bcbf4a6 mov rcx, 0xfffffffb40a374c8 | |
0bcbf4b0 cmp rcx, [rsi+0x20] | |
0bcbf4b4 jnz 0x0bcb0080 ->28 | |
0bcbf4ba cmp dword [rsi+0x1c], -0x0c | |
0bcbf4be jnz 0x0bcb0080 ->28 | |
0bcbf4c4 mov esi, [rsi+0x18] | |
0bcbf4c7 cmp dword [rsi+0x1c], +0x3f | |
0bcbf4cb jnz 0x0bcb0080 ->28 | |
0bcbf4d1 mov esi, [rsi+0x14] | |
0bcbf4d4 mov rcx, 0xfffffffb40a37db0 | |
0bcbf4de cmp rcx, [rsi+0x50] | |
0bcbf4e2 jnz 0x0bcb0080 ->28 | |
0bcbf4e8 cmp dword [rsi+0x4c], -0x09 | |
0bcbf4ec jnz 0x0bcb0080 ->28 | |
0bcbf4f2 mov ecx, [r11+0x1c] | |
0bcbf4f6 and ecx, 0x798a813c | |
0bcbf4fc lea ecx, [rcx+rcx*2] | |
0bcbf4ff shl ecx, 0x03 | |
0bcbf502 add ecx, [r11+0x14] | |
0bcbf506 cmp dword [rcx+0xc], -0x05 | |
0bcbf50a jnz 0x0bcbf519 | |
0bcbf50c cmp dword [rcx+0x8], 0x40a37fb0 | |
0bcbf513 jz 0x0bcb0080 ->28 | |
0bcbf519 mov ecx, [rcx+0x10] | |
0bcbf51c test ecx, ecx | |
0bcbf51e jnz 0x0bcbf506 | |
0bcbf520 mov rcx, 0xfffffffb40a37fb0 | |
0bcbf52a cmp rcx, [rsi+0x5a8] | |
0bcbf531 jnz 0x0bcb0080 ->28 | |
0bcbf537 cmp dword [rsi+0x5a4], -0x09 | |
0bcbf53e jnz 0x0bcb0080 ->28 | |
0bcbf544 cmp dword [rsi+0x5a0], 0x40a37f18 | |
0bcbf54e jnz 0x0bcb0080 ->28 | |
0bcbf554 cmp dword [rsi+0x48], 0x40a37d88 | |
0bcbf55b jnz 0x0bcb0080 ->28 | |
0bcbf561 cmp dword [r12+0x18], +0x01 | |
0bcbf567 jbe 0x0bcb0080 ->28 | |
0bcbf56d mov esi, [r12+0x8] | |
0bcbf572 cmp dword [rsi+0xc], -0x05 | |
0bcbf576 jnz 0x0bcb0080 ->28 | |
0bcbf57c mov ecx, [rsi+0x8] | |
0bcbf57f mov [rsp+0x38], ecx | |
0bcbf583 cmp ecx, 0x40a378f8 | |
0bcbf589 jz 0x0bcb0084 ->29 | |
0bcbf58f cmp ecx, 0x410f6fc8 | |
0bcbf595 jz 0x0bcb0088 ->30 | |
0bcbf59b cmp ecx, 0x40a37a18 | |
0bcbf5a1 jz 0x0bcb008c ->31 | |
0bcbf5a7 cmp ecx, 0x40a37870 | |
0bcbf5ad jz 0x0bcb009d ->32 | |
0bcbf5b3 cmp ecx, 0x40a3acb0 | |
0bcbf5b9 jz 0x0bcb00a1 ->33 | |
0bcbf5bf cmp ecx, 0x40a527f8 | |
0bcbf5c5 jz 0x0bcb00a5 ->34 | |
0bcbf5cb mov esi, [rdx+0x1c] | |
0bcbf5ce and esi, [rcx+0x8] | |
0bcbf5d1 lea esi, [rsi+rsi*2] | |
0bcbf5d4 shl esi, 0x03 | |
0bcbf5d7 add esi, [rdx+0x14] | |
0bcbf5da cmp dword [rsi+0xc], -0x05 | |
0bcbf5de jnz 0x0bcbf5e5 | |
0bcbf5e0 cmp ecx, [rsi+0x8] | |
0bcbf5e3 jz 0x0bcbf5f1 | |
0bcbf5e5 mov esi, [rsi+0x10] | |
0bcbf5e8 test esi, esi | |
0bcbf5ea jnz 0x0bcbf5da | |
0bcbf5ec mov esi, 0x40a35458 | |
0bcbf5f1 cmp dword [rsi+0x4], -0x03 | |
0bcbf5f5 jnz 0x0bcb00a9 ->35 | |
0bcbf5fb mov esi, 0x411082e8 | |
0bcbf600 call 0x004223c0 ->lj_tab_dup | |
0bcbf605 mov r10d, eax | |
0bcbf608 mov [rsp+0x44], r10d | |
0bcbf60d mov edi, [0x40a354b0] | |
0bcbf614 mov esi, [rsp+0x14] | |
0bcbf618 mov ecx, [rsp+0xc] | |
0bcbf61c mov eax, [rsp+0x4c] | |
0bcbf620 mov edx, [r10+0x8] | |
0bcbf624 mov dword [rdx+0x14], 0xfffffff4 | |
0bcbf62b mov [rdx+0x10], r12d | |
0bcbf62f cmp dword [rcx+0x1c], +0x03 | |
0bcbf633 jnz 0x0bcb00ad ->36 | |
0bcbf639 mov ecx, [rcx+0x14] | |
0bcbf63c mov [rsp+0x2c], ecx | |
0bcbf640 mov r11, 0xfffffffb41106450 | |
0bcbf64a cmp r11, [rcx+0x50] | |
0bcbf64e jnz 0x0bcb00ad ->36 | |
0bcbf654 cmp dword [rcx+0x4c], -0x05 | |
0bcbf658 jnz 0x0bcb00ad ->36 | |
0bcbf65e mov ecx, [rcx+0x48] | |
0bcbf661 mov dword [rdx+0x1c], 0xfffffffb | |
0bcbf668 mov [rdx+0x18], ecx | |
0bcbf66b mov dword [rdx+0x24], 0xfffffffb | |
0bcbf672 mov [rdx+0x20], eax | |
0bcbf675 mov edx, [rsi+0x1c] | |
0bcbf678 and edx, 0x2a54dc55 | |
0bcbf67e lea edx, [rdx+rdx*2] | |
0bcbf681 shl edx, 0x03 | |
0bcbf684 add edx, [rsi+0x14] | |
0bcbf687 cmp dword [rdx+0xc], -0x05 | |
0bcbf68b jnz 0x0bcbf69a | |
0bcbf68d cmp dword [rdx+0x8], 0x41106bb8 | |
0bcbf694 jz 0x0bcb00b1 ->37 | |
0bcbf69a mov edx, [rdx+0x10] | |
0bcbf69d test edx, edx | |
0bcbf69f jnz 0x0bcbf687 | |
0bcbf6a1 cmp dword [rsi+0x10], +0x00 | |
0bcbf6a5 jnz 0x0bcb00b1 ->37 | |
0bcbf6ab mov edx, 0x40a35448 | |
0bcbf6b0 mov dword [rdx+0x4], 0xfffffffb | |
0bcbf6b7 mov dword [rdx], 0x41106bb8 | |
0bcbf6bd call 0x00422cf0 ->lj_tab_newkey | |
0bcbf6c2 mov r9d, eax | |
0bcbf6c5 mov r11d, [rsp+0x48] | |
0bcbf6ca mov r10d, [rsp+0x44] | |
0bcbf6cf mov edi, [0x40a354b0] | |
0bcbf6d6 mov esi, [rsp+0x40] | |
0bcbf6da mov edx, [rsp+0x3c] | |
0bcbf6de mov eax, [rsp+0x14] | |
0bcbf6e2 mov dword [r9+0x4], 0xfffffff4 | |
0bcbf6ea mov [r9], r10d | |
0bcbf6ed test byte [rax+0x4], 0x4 | |
0bcbf6f1 jz 0x0bcbf70a | |
0bcbf6f3 and byte [rax+0x4], 0xfb | |
0bcbf6f7 mov r10d, [0x40a353f4] | |
0bcbf6ff mov [0x40a353f4], eax | |
0bcbf706 mov [rax+0xc], r10d | |
0bcbf70a cmp dword [r13+0x18], +0x04 | |
0bcbf70f jbe 0x0bcb00b5 ->38 | |
0bcbf715 mov r13d, [r13+0x8] | |
0bcbf719 mov [rsp+0x30], r13d | |
0bcbf71e cmp dword [r13+0x1c], -0x0c | |
0bcbf723 jnz 0x0bcb00b5 ->38 | |
0bcbf729 mov r13d, [r13+0x18] | |
0bcbf72d mov eax, [r11+0x1c] | |
0bcbf731 and eax, 0xce2b6183 | |
0bcbf737 lea eax, [rax+rax*2] | |
0bcbf73a shl eax, 0x03 | |
0bcbf73d add eax, [r11+0x14] | |
0bcbf741 cmp dword [rax+0xc], -0x05 | |
0bcbf745 jnz 0x0bcbf754 | |
0bcbf747 cmp dword [rax+0x8], 0x40a37db0 | |
0bcbf74e jz 0x0bcb00b5 ->38 | |
0bcbf754 mov eax, [rax+0x10] | |
0bcbf757 test eax, eax | |
0bcbf759 jnz 0x0bcbf741 | |
0bcbf75b cmp dword [rdx+0x1c], +0x01 | |
0bcbf75f jnz 0x0bcb00b5 ->38 | |
0bcbf765 mov edx, [rdx+0x14] | |
0bcbf768 mov rax, 0xfffffffb40a374c8 | |
0bcbf772 cmp rax, [rdx+0x20] | |
0bcbf776 jnz 0x0bcb00b5 ->38 | |
0bcbf77c cmp dword [rdx+0x1c], -0x0c | |
0bcbf780 jnz 0x0bcb00b5 ->38 | |
0bcbf786 mov edx, [rdx+0x18] | |
0bcbf789 cmp dword [rdx+0x1c], +0x3f | |
0bcbf78d jnz 0x0bcb00b5 ->38 | |
0bcbf793 mov edx, [rdx+0x14] | |
0bcbf796 mov rax, 0xfffffffb40a37db0 | |
0bcbf7a0 cmp rax, [rdx+0x50] | |
0bcbf7a4 jnz 0x0bcb00b5 ->38 | |
0bcbf7aa cmp dword [rdx+0x4c], -0x09 | |
0bcbf7ae jnz 0x0bcb00b5 ->38 | |
0bcbf7b4 mov eax, [r11+0x1c] | |
0bcbf7b8 and eax, 0x798a813c | |
0bcbf7be lea eax, [rax+rax*2] | |
0bcbf7c1 shl eax, 0x03 | |
0bcbf7c4 add eax, [r11+0x14] | |
0bcbf7c8 cmp dword [rax+0xc], -0x05 | |
0bcbf7cc jnz 0x0bcbf7db | |
0bcbf7ce cmp dword [rax+0x8], 0x40a37fb0 | |
0bcbf7d5 jz 0x0bcb00b5 ->38 | |
0bcbf7db mov eax, [rax+0x10] | |
0bcbf7de test eax, eax | |
0bcbf7e0 jnz 0x0bcbf7c8 | |
0bcbf7e2 mov rax, 0xfffffffb40a37fb0 | |
0bcbf7ec cmp rax, [rdx+0x5a8] | |
0bcbf7f3 jnz 0x0bcb00b5 ->38 | |
0bcbf7f9 cmp dword [rdx+0x5a4], -0x09 | |
0bcbf800 jnz 0x0bcb00b5 ->38 | |
0bcbf806 cmp dword [rdx+0x5a0], 0x40a37f18 | |
0bcbf810 jnz 0x0bcb00b5 ->38 | |
0bcbf816 cmp dword [rdx+0x48], 0x40a37d88 | |
0bcbf81d jnz 0x0bcb00b5 ->38 | |
0bcbf823 cmp dword [r13+0x18], +0x01 | |
0bcbf828 jbe 0x0bcb00b5 ->38 | |
0bcbf82e mov edx, [r13+0x8] | |
0bcbf832 cmp dword [rdx+0xc], -0x05 | |
0bcbf836 jnz 0x0bcb00b5 ->38 | |
0bcbf83c mov edx, [rdx+0x8] | |
0bcbf83f mov [rsp+0x34], edx | |
0bcbf843 cmp edx, 0x40a378f8 | |
0bcbf849 jz 0x0bcb00b9 ->39 | |
0bcbf84f cmp edx, 0x410f6fc8 | |
0bcbf855 jz 0x0bcb00bd ->40 | |
0bcbf85b cmp edx, 0x40a37a18 | |
0bcbf861 jz 0x0bcb00c1 ->41 | |
0bcbf867 cmp edx, 0x40a37870 | |
0bcbf86d jz 0x0bcb00c5 ->42 | |
0bcbf873 cmp edx, 0x40a3acb0 | |
0bcbf879 jz 0x0bcb00c9 ->43 | |
0bcbf87f cmp edx, 0x40a527f8 | |
0bcbf885 jz 0x0bcb00cd ->44 | |
0bcbf88b mov r12d, [rsi+0x1c] | |
0bcbf88f and r12d, [rdx+0x8] | |
0bcbf893 lea r12d, [r12+r12*2] | |
0bcbf897 shl r12d, 0x03 | |
0bcbf89b add r12d, [rsi+0x14] | |
0bcbf89f cmp dword [r12+0xc], -0x05 | |
0bcbf8a5 jnz 0x0bcbf8ae | |
0bcbf8a7 cmp edx, [r12+0x8] | |
0bcbf8ac jz 0x0bcbf8be | |
0bcbf8ae mov r12d, [r12+0x10] | |
0bcbf8b3 test r12d, r12d | |
0bcbf8b6 jnz 0x0bcbf89f | |
0bcbf8b8 mov r12d, 0x40a35458 | |
0bcbf8be cmp dword [r12+0x4], -0x03 | |
0bcbf8c4 jnz 0x0bcb00d1 ->45 | |
0bcbf8ca mov esi, 0x411082e8 | |
0bcbf8cf call 0x004223c0 ->lj_tab_dup | |
0bcbf8d4 mov edi, [0x40a354b0] | |
0bcbf8db mov edx, [rsp+0x30] | |
0bcbf8df mov ecx, [rsp+0x2c] | |
0bcbf8e3 mov r11d, [rax+0x8] | |
0bcbf8e7 mov dword [r11+0x14], 0xfffffff4 | |
0bcbf8ef mov [r11+0x10], r13d | |
0bcbf8f3 cmp dword [r15+0x1c], +0x01 | |
0bcbf8f8 jnz 0x0bcb00d5 ->46 | |
0bcbf8fe mov r12d, [r15+0x14] | |
0bcbf902 mov r10, 0xfffffffb41106450 | |
0bcbf90c cmp r10, [r12+0x20] | |
0bcbf911 jnz 0x0bcb00d5 ->46 | |
0bcbf917 cmp dword [r12+0x1c], -0x05 | |
0bcbf91d jnz 0x0bcb00d5 ->46 | |
0bcbf923 mov r12d, [r12+0x18] | |
0bcbf928 mov dword [r11+0x1c], 0xfffffffb | |
0bcbf930 mov [r11+0x18], r12d | |
0bcbf934 cmp dword [r14+0x1c], +0x01 | |
0bcbf939 jnz 0x0bcb00d9 ->47 | |
0bcbf93f mov r12d, [r14+0x14] | |
0bcbf943 mov r10, 0xfffffffb41106450 | |
0bcbf94d cmp r10, [r12+0x20] | |
0bcbf952 jnz 0x0bcb00d9 ->47 | |
0bcbf958 cmp dword [r12+0x1c], -0x05 | |
0bcbf95e jnz 0x0bcb00d9 ->47 | |
0bcbf964 mov r12d, [r12+0x18] | |
0bcbf969 mov dword [r11+0x24], 0xfffffffb | |
0bcbf971 mov [r11+0x20], r12d | |
0bcbf975 mov r11, 0xfffffffb41106bb8 | |
0bcbf97f cmp r11, [rcx+0x20] | |
0bcbf983 jnz 0x0bcb00dd ->48 | |
0bcbf989 mov dword [rcx+0x1c], 0xfffffff4 | |
0bcbf990 mov [rcx+0x18], eax | |
0bcbf993 cmp dword [rdx+0x24], -0x0c | |
0bcbf997 jnz 0x0bcb00e1 ->49 | |
0bcbf99d mov r10d, [rdx+0x20] | |
0bcbf9a1 mov [rsp+0x24], r10d | |
0bcbf9a6 cmp dword [r10+0x18], +0x01 | |
0bcbf9ab jbe 0x0bcb00e1 ->49 | |
0bcbf9b1 mov edx, [r10+0x8] | |
0bcbf9b5 cmp dword [rdx+0xc], -0x05 | |
0bcbf9b9 jnz 0x0bcb00e1 ->49 | |
0bcbf9bf mov r9d, [rdx+0x8] | |
0bcbf9c3 mov [rsp+0x20], r9d | |
0bcbf9c8 cmp r9d, 0x40a378f8 | |
0bcbf9cf jz 0x0bcb00e5 ->50 | |
0bcbf9d5 cmp r9d, 0x410f6fc8 | |
0bcbf9dc jz 0x0bcb00e9 ->51 | |
0bcbf9e2 cmp r9d, 0x40a37a18 | |
0bcbf9e9 jz 0x0bcb00ed ->52 | |
0bcbf9ef cmp r9d, 0x40a37870 | |
0bcbf9f6 jnz 0x0bcb00f1 ->53 | |
0bcbf9fc mov esi, 0x411085c8 | |
0bcbfa01 call 0x004223c0 ->lj_tab_dup | |
0bcbfa06 mov r13d, eax | |
0bcbfa09 mov r8d, [rsp+0x1c] | |
0bcbfa0e mov edi, [r13+0x8] | |
0bcbfa12 mov dword [rdi+0x14], 0xfffffffb | |
0bcbfa19 mov [rdi+0x10], r12d | |
0bcbfa1d mov edi, [0x40a354b0] | |
0bcbfa24 mov dword [r8+0x1c], 0xfffffff4 | |
0bcbfa2c mov [r8+0x18], r13d | |
0bcbfa30 cmp dword [rbx+0x18], +0x04 | |
0bcbfa34 jbe 0x0bcb00f9 ->55 | |
0bcbfa3a mov ebx, [rbx+0x8] | |
0bcbfa3d cmp dword [rbx+0x24], -0x0c | |
0bcbfa41 jnz 0x0bcb00f9 ->55 | |
0bcbfa47 mov ebx, [rbx+0x20] | |
0bcbfa4a cmp dword [rbp+0x34], -0x0c | |
0bcbfa4e jnz 0x0bcb00f9 ->55 | |
0bcbfa54 mov ebp, [rbp+0x30] | |
0bcbfa57 cmp dword [rbx+0x18], +0x01 | |
0bcbfa5b jbe 0x0bcb00f9 ->55 | |
0bcbfa61 mov r13d, [rbx+0x8] | |
0bcbfa65 cmp dword [r13+0xc], -0x05 | |
0bcbfa6a jnz 0x0bcb00f9 ->55 | |
0bcbfa70 mov r13d, [r13+0x8] | |
0bcbfa74 cmp r13d, 0x40a378f8 | |
0bcbfa7b jz 0x0bcb00fd ->56 | |
0bcbfa81 cmp r13d, 0x410f6fc8 | |
0bcbfa88 jz 0x0bcb0101 ->57 | |
0bcbfa8e cmp r13d, 0x40a37a18 | |
0bcbfa95 jz 0x0bcb0105 ->58 | |
0bcbfa9b cmp r13d, 0x40a37870 | |
0bcbfaa2 jnz 0x0bcb0109 ->59 | |
0bcbfaa8 mov esi, 0x411085c8 | |
0bcbfaad call 0x004223c0 ->lj_tab_dup | |
0bcbfab2 mov [rsp+0x8], eax | |
0bcbfab6 mov edi, [0x40a354b0] | |
0bcbfabd mov eax, [rax+0x8] | |
0bcbfac0 mov dword [rax+0x14], 0xfffffffb | |
0bcbfac7 mov [rax+0x10], r12d | |
0bcbfacb mov esi, [rbp+0x1c] | |
0bcbface and esi, 0x2a54dc55 | |
0bcbfad4 lea esi, [rsi+rsi*2] | |
0bcbfad7 shl esi, 0x03 | |
0bcbfada add esi, [rbp+0x14] | |
0bcbfadd cmp dword [rsi+0xc], -0x05 | |
0bcbfae1 jnz 0x0bcbfaf0 | |
0bcbfae3 cmp dword [rsi+0x8], 0x41106bb8 | |
0bcbfaea jz 0x0bcb0111 ->61 | |
0bcbfaf0 mov esi, [rsi+0x10] | |
0bcbfaf3 test esi, esi | |
0bcbfaf5 jnz 0x0bcbfadd | |
0bcbfaf7 cmp dword [rbp+0x10], +0x00 | |
0bcbfafb jnz 0x0bcb0111 ->61 | |
0bcbfb01 mov edx, 0x40a35448 | |
0bcbfb06 mov dword [rdx+0x4], 0xfffffffb | |
0bcbfb0d mov dword [rdx], 0x41106bb8 | |
0bcbfb13 mov esi, ebp | |
0bcbfb15 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfb1a mov ebx, eax | |
0bcbfb1c mov edx, [0x40a354b4] | |
0bcbfb23 mov eax, [rsp+0x8] | |
0bcbfb27 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfb2e mov [rbx], eax | |
0bcbfb30 test byte [rbp+0x4], 0x4 | |
0bcbfb34 jz 0x0bcbfb4b | |
0bcbfb36 and byte [rbp+0x4], 0xfb | |
0bcbfb3a mov edi, [0x40a353f4] | |
0bcbfb41 mov [0x40a353f4], ebp | |
0bcbfb48 mov [rbp+0xc], edi | |
0bcbfb4b cmp dword [rdx-0x4], 0x41107b7c | |
0bcbfb52 jnz 0x0bcb0115 ->62 | |
0bcbfb58 add edx, -0x48 | |
0bcbfb5b mov [0x40a354b4], edx | |
0bcbfb62 add rsp, +0x70 | |
0bcbfb66 jmp 0x0bcbe9a6 | |
---- TRACE 3 stop -> down-recursion | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 3 | |
---- TRACE 2 exit 4 | |
---- TRACE 3 exit 4 |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x4105e414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x419b0f30}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x4105e458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x4105e410], 0x1 | |
0bcbfe53 mov edi, [0x4105e3d8] | |
0bcbfe5a cmp edi, [0x4105e3dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x4105e3b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x4105e4b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x4107b120] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x4105e414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x4105e4b0] | |
0bcbfee0 mov esi, 0x419b0f30 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x4105e4b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x4105e4b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb419b01a8 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x4105e448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x4105e4b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x4105e3f4] | |
0bcbffcf mov [0x4105e3f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x419b1bd0 | |
0bcbffee mov r14d, 0x4105f008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0070 ISNES 4 12 ; "match" | |
0071 JMP 5 => 0077 | |
0077 ISNES 4 14 ; "fail" | |
0078 JMP 5 => 0084 | |
0084 GGET 5 0 ; "assert" | |
0085 UGET 6 4 ; relops | |
0086 TGETV 6 6 4 | |
0087 CALL 5 1 2 | |
0000 . FUNCC ; assert | |
0088 UGET 5 5 ; finish_if | |
0089 MOV 6 1 | |
0090 MOV 7 0 | |
0091 MOV 8 2 | |
0092 MOV 9 3 | |
0093 CALL 5 1 5 | |
0000 . FUNCF 6 ; ssa.lua:49 | |
0001 . TDUP 4 1 | |
0002 . TSETB 1 4 2 | |
0003 . TGETS 5 2 2 ; "label" | |
0004 . TSETB 5 4 3 | |
0005 . TGETS 5 3 2 ; "label" | |
0006 . TSETB 5 4 4 | |
0007 . TSETS 4 0 0 ; "control" | |
0008 . RET0 0 1 | |
0094 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 r15 [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x4105e458] | |
0005 rbx [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 rbx p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 rbx > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 rbx p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x4105e458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 r15 > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 rbx > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m NE 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [32mstr[m NE 0028 [32m"match"[m | |
.... SNAP #6 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0034 > [32mstr[m NE 0028 [32m"fail"[m | |
.... SNAP #7 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0035 r14 > p32 UREFC 0001 #4 | |
0036 r13 > [31mtab[m ULOAD 0035 | |
0037 r14 p32 HREF 0036 0028 | |
0038 > tru HLOAD 0037 | |
0039 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0040 rbp > [31mtab[m SLOAD #2 T | |
0041 r13 > [31mtab[m SLOAD #3 T | |
0042 r14 > [31mtab[m SLOAD #4 T | |
0043 [8] > [31mtab[m TDUP [31m{0x419b20e0}[m | |
0044 rax p32 FLOAD 0043 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 [31mtab[m ASTORE 0045 0021 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- [31m0041[m [31m0042[m [31m0043[m ] | |
0047 [35mint[m FLOAD 0041 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+1 [m | |
0049 r15 p32 FLOAD 0041 tab.node | |
0050 > p32 HREFK 0049 [32m"label"[m @1 | |
0051 r15 > [32mstr[m HLOAD 0050 | |
0052 p32 AREF 0044 [35m+3 [m | |
0053 [32mstr[m ASTORE 0052 0051 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- [31m0042[m [31m0043[m ---- ] | |
0054 [35mint[m FLOAD 0042 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 r15 p32 FLOAD 0042 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 r15 > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0044 [35m+4 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- ---- [31m0043[m ---- ] | |
0061 rsi p32 HREF 0040 [32m"control"[m | |
0062 > p32 EQ 0061 [0x4105e458] | |
0063 [31mtab[m FLOAD 0040 tab.meta | |
0064 > [31mtab[m EQ 0063 [31m[NULL][m | |
0065 rbx p32 NEWREF 0040 [32m"control"[m | |
0066 [31mtab[m HSTORE 0065 0043 | |
0067 nil TBAR 0040 | |
.... SNAP #11 [ [1mssa.lua:55[m|] | |
---- TRACE 2 mcode 916 | |
0bcbfaa9 mov dword [0x4105e410], 0x2 | |
0bcbfab4 mov edi, [0x4105e3d8] | |
0bcbfabb cmp edi, [0x4105e3dc] | |
0bcbfac2 jb 0x0bcbfadb | |
0bcbfac4 mov esi, 0x1 | |
0bcbfac9 mov edi, 0x4105e3b8 | |
0bcbface call 0x00421730 ->lj_gc_step_jit | |
0bcbfad3 test eax, eax | |
0bcbfad5 jnz 0x0bcb0010 ->0 | |
0bcbfadb mov edi, [0x4105e4b0] | |
0bcbfae2 mov edx, [0x4105e4b4] | |
0bcbfae9 mov ebp, [rdx-0x8] | |
0bcbfaec mov r15d, [rbp+0x8] | |
0bcbfaf0 mov esi, [r15+0x1c] | |
0bcbfaf4 and esi, 0xce2b6183 | |
0bcbfafa lea esi, [rsi+rsi*2] | |
0bcbfafd shl esi, 0x03 | |
0bcbfb00 add esi, [r15+0x14] | |
0bcbfb04 cmp dword [rsi+0xc], -0x05 | |
0bcbfb08 jnz 0x0bcbfb17 | |
0bcbfb0a cmp dword [rsi+0x8], 0x41060db0 | |
0bcbfb11 jz 0x0bcb0010 ->0 | |
0bcbfb17 mov esi, [rsi+0x10] | |
0bcbfb1a test esi, esi | |
0bcbfb1c jnz 0x0bcbfb04 | |
0bcbfb1e mov ebx, [r15+0x10] | |
0bcbfb22 test ebx, ebx | |
0bcbfb24 jz 0x0bcb0010 ->0 | |
0bcbfb2a cmp dword [rbx+0x1c], +0x01 | |
0bcbfb2e jnz 0x0bcb0010 ->0 | |
0bcbfb34 mov ebx, [rbx+0x14] | |
0bcbfb37 mov rsi, 0xfffffffb410604c8 | |
0bcbfb41 cmp rsi, [rbx+0x20] | |
0bcbfb45 jnz 0x0bcb0010 ->0 | |
0bcbfb4b cmp dword [rbx+0x1c], -0x0c | |
0bcbfb4f jnz 0x0bcb0010 ->0 | |
0bcbfb55 mov ebx, [rbx+0x18] | |
0bcbfb58 cmp dword [rbx+0x1c], +0x3f | |
0bcbfb5c jnz 0x0bcb0010 ->0 | |
0bcbfb62 mov ebx, [rbx+0x14] | |
0bcbfb65 mov rsi, 0xfffffffb41060db0 | |
0bcbfb6f cmp rsi, [rbx+0x50] | |
0bcbfb73 jnz 0x0bcb0010 ->0 | |
0bcbfb79 cmp dword [rbx+0x4c], -0x09 | |
0bcbfb7d jnz 0x0bcb0010 ->0 | |
0bcbfb83 mov esi, [r15+0x1c] | |
0bcbfb87 and esi, 0x798a813c | |
0bcbfb8d lea esi, [rsi+rsi*2] | |
0bcbfb90 shl esi, 0x03 | |
0bcbfb93 add esi, [r15+0x14] | |
0bcbfb97 cmp dword [rsi+0xc], -0x05 | |
0bcbfb9b jnz 0x0bcbfbaa | |
0bcbfb9d cmp dword [rsi+0x8], 0x41060fb0 | |
0bcbfba4 jz 0x0bcb0010 ->0 | |
0bcbfbaa mov esi, [rsi+0x10] | |
0bcbfbad test esi, esi | |
0bcbfbaf jnz 0x0bcbfb97 | |
0bcbfbb1 mov rsi, 0xfffffffb41060fb0 | |
0bcbfbbb cmp rsi, [rbx+0x5a8] | |
0bcbfbc2 jnz 0x0bcb0010 ->0 | |
0bcbfbc8 cmp dword [rbx+0x5a4], -0x09 | |
0bcbfbcf jnz 0x0bcb0010 ->0 | |
0bcbfbd5 cmp dword [rdx+0x4], -0x0c | |
0bcbfbd9 jnz 0x0bcb0010 ->0 | |
0bcbfbdf mov r15d, [rdx] | |
0bcbfbe2 cmp dword [rbx+0x5a0], 0x41060f18 | |
0bcbfbec jnz 0x0bcb0010 ->0 | |
0bcbfbf2 cmp dword [rbx+0x48], 0x41060d88 | |
0bcbfbf9 jnz 0x0bcb0010 ->0 | |
0bcbfbff cmp dword [r15+0x18], +0x01 | |
0bcbfc04 jbe 0x0bcb0010 ->0 | |
0bcbfc0a mov ebx, [r15+0x8] | |
0bcbfc0e cmp dword [rbx+0xc], -0x05 | |
0bcbfc12 jnz 0x0bcb0010 ->0 | |
0bcbfc18 mov ebx, [rbx+0x8] | |
0bcbfc1b cmp ebx, 0x410608f8 | |
0bcbfc21 jz 0x0bcb0014 ->1 | |
0bcbfc27 cmp ebx, 0x410741f0 | |
0bcbfc2d jz 0x0bcb0018 ->2 | |
0bcbfc33 cmp ebx, 0x41060a18 | |
0bcbfc39 jz 0x0bcb001c ->3 | |
0bcbfc3f cmp ebx, 0x41060870 | |
0bcbfc45 jz 0x0bcb0020 ->4 | |
0bcbfc4b cmp ebx, 0x41063cb0 | |
0bcbfc51 jz 0x0bcb0024 ->5 | |
0bcbfc57 cmp ebx, 0x4106e448 | |
0bcbfc5d jz 0x0bcb0028 ->6 | |
0bcbfc63 mov esi, [rbp+0x24] | |
0bcbfc66 cmp byte [rsi+0x6], 0x1 | |
0bcbfc6a jnz 0x0bcb002c ->7 | |
0bcbfc70 lea r14d, [rsi+0x8] | |
0bcbfc74 cmp dword [r14+0x4], -0x0c | |
0bcbfc79 jnz 0x0bcb002c ->7 | |
0bcbfc7f mov r13d, [r14] | |
0bcbfc82 mov r14d, [r13+0x1c] | |
0bcbfc86 and r14d, [rbx+0x8] | |
0bcbfc8a lea r14d, [r14+r14*2] | |
0bcbfc8e shl r14d, 0x03 | |
0bcbfc92 add r14d, [r13+0x14] | |
0bcbfc96 cmp dword [r14+0xc], -0x05 | |
0bcbfc9b jnz 0x0bcbfca3 | |
0bcbfc9d cmp ebx, [r14+0x8] | |
0bcbfca1 jz 0x0bcbfcb2 | |
0bcbfca3 mov r14d, [r14+0x10] | |
0bcbfca7 test r14d, r14d | |
0bcbfcaa jnz 0x0bcbfc96 | |
0bcbfcac mov r14d, 0x4105e458 | |
0bcbfcb2 cmp dword [r14+0x4], -0x03 | |
0bcbfcb7 jnz 0x0bcb002c ->7 | |
0bcbfcbd cmp ebp, 0x419b31b0 | |
0bcbfcc3 jnz 0x0bcb002c ->7 | |
0bcbfcc9 cmp dword [rdx+0xc], -0x0c | |
0bcbfccd jnz 0x0bcb002c ->7 | |
0bcbfcd3 mov ebp, [rdx+0x8] | |
0bcbfcd6 cmp dword [rdx+0x14], -0x0c | |
0bcbfcda jnz 0x0bcb002c ->7 | |
0bcbfce0 mov r13d, [rdx+0x10] | |
0bcbfce4 cmp dword [rdx+0x1c], -0x0c | |
0bcbfce8 jnz 0x0bcb002c ->7 | |
0bcbfcee mov r14d, [rdx+0x18] | |
0bcbfcf2 mov esi, 0x419b20e0 | |
0bcbfcf7 call 0x004223c0 ->lj_tab_dup | |
0bcbfcfc mov [rsp+0x8], eax | |
0bcbfd00 mov edi, [0x4105e4b0] | |
0bcbfd07 mov eax, [rax+0x8] | |
0bcbfd0a mov dword [rax+0x14], 0xfffffff4 | |
0bcbfd11 mov [rax+0x10], r15d | |
0bcbfd15 cmp dword [r13+0x1c], +0x01 | |
0bcbfd1a jnz 0x0bcb0030 ->8 | |
0bcbfd20 mov r15d, [r13+0x14] | |
0bcbfd24 mov rsi, 0xfffffffb419b0248 | |
0bcbfd2e cmp rsi, [r15+0x20] | |
0bcbfd32 jnz 0x0bcb0030 ->8 | |
0bcbfd38 cmp dword [r15+0x1c], -0x05 | |
0bcbfd3d jnz 0x0bcb0030 ->8 | |
0bcbfd43 mov r15d, [r15+0x18] | |
0bcbfd47 mov dword [rax+0x1c], 0xfffffffb | |
0bcbfd4e mov [rax+0x18], r15d | |
0bcbfd52 cmp dword [r14+0x1c], +0x01 | |
0bcbfd57 jnz 0x0bcb0034 ->9 | |
0bcbfd5d mov r15d, [r14+0x14] | |
0bcbfd61 mov rsi, 0xfffffffb419b0248 | |
0bcbfd6b cmp rsi, [r15+0x20] | |
0bcbfd6f jnz 0x0bcb0034 ->9 | |
0bcbfd75 cmp dword [r15+0x1c], -0x05 | |
0bcbfd7a jnz 0x0bcb0034 ->9 | |
0bcbfd80 mov r15d, [r15+0x18] | |
0bcbfd84 mov dword [rax+0x24], 0xfffffffb | |
0bcbfd8b mov [rax+0x20], r15d | |
0bcbfd8f mov esi, [rbp+0x1c] | |
0bcbfd92 and esi, 0x2a54dc55 | |
0bcbfd98 lea esi, [rsi+rsi*2] | |
0bcbfd9b shl esi, 0x03 | |
0bcbfd9e add esi, [rbp+0x14] | |
0bcbfda1 cmp dword [rsi+0xc], -0x05 | |
0bcbfda5 jnz 0x0bcbfdb4 | |
0bcbfda7 cmp dword [rsi+0x8], 0x419b09b0 | |
0bcbfdae jz 0x0bcb0038 ->10 | |
0bcbfdb4 mov esi, [rsi+0x10] | |
0bcbfdb7 test esi, esi | |
0bcbfdb9 jnz 0x0bcbfda1 | |
0bcbfdbb cmp dword [rbp+0x10], +0x00 | |
0bcbfdbf jnz 0x0bcb0038 ->10 | |
0bcbfdc5 mov edx, 0x4105e448 | |
0bcbfdca mov dword [rdx+0x4], 0xfffffffb | |
0bcbfdd1 mov dword [rdx], 0x419b09b0 | |
0bcbfdd7 mov esi, ebp | |
0bcbfdd9 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfdde mov ebx, eax | |
0bcbfde0 mov edx, [0x4105e4b4] | |
0bcbfde7 mov eax, [rsp+0x8] | |
0bcbfdeb mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfdf2 mov [rbx], eax | |
0bcbfdf4 test byte [rbp+0x4], 0x4 | |
0bcbfdf8 jz 0x0bcbfe0f | |
0bcbfdfa and byte [rbp+0x4], 0xfb | |
0bcbfdfe mov edi, [0x4105e3f4] | |
0bcbfe05 mov [0x4105e3f4], ebp | |
0bcbfe0c mov [rbp+0xc], edi | |
0bcbfe0f mov eax, [0x4105e4b0] | |
0bcbfe16 mov eax, [rax+0x20] | |
0bcbfe19 sub eax, edx | |
0bcbfe1b cmp eax, +0x68 | |
0bcbfe1e jb 0x0bcb003c ->11 | |
0bcbfe24 mov dword [rdx-0x8], 0x419b31b0 | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x419b1a10 | |
0bcbfe32 mov r14d, 0x4105f008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 5 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 2 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 3 | |
---- TRACE 2 exit 1 | |
---- TRACE 3 start 2/1 ssa.lua:59 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0030 . UGET 7 1 ; compile_bool | |
0031 . TGETB 8 0 4 | |
0032 . MOV 9 6 | |
0033 . MOV 10 2 | |
0034 . MOV 11 3 | |
0035 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0079 . . UGET 5 3 ; finish_return | |
0080 . . MOV 6 1 | |
0081 . . TDUP 7 15 | |
0082 . . CALL 5 1 3 | |
0000 . . . FUNCF 3 ; ssa.lua:46 | |
0001 . . . TDUP 2 1 | |
0002 . . . TSETB 1 2 2 | |
0003 . . . TSETS 2 0 0 ; "control" | |
0004 . . . RET0 0 1 | |
0083 . . JMP 5 => 0094 | |
0094 . . RET0 0 1 | |
0036 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 abort ssa.lua:79 -- down-recursion, restarting | |
---- TRACE 3 start ssa.lua:79 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0030 . UGET 7 1 ; compile_bool | |
0031 . TGETB 8 0 4 | |
0032 . MOV 9 6 | |
0033 . MOV 10 2 | |
0034 . MOV 11 3 | |
0035 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0065 . . UGET 5 2 ; finish_goto | |
0066 . . MOV 6 1 | |
0067 . . MOV 7 3 | |
0068 . . CALL 5 1 3 | |
0000 . . . FUNCF 4 ; ssa.lua:52 | |
0001 . . . TDUP 2 1 | |
0002 . . . TGETS 3 1 2 ; "label" | |
0003 . . . TSETB 3 2 2 | |
0004 . . . TSETS 2 0 0 ; "control" | |
0005 . . . RET0 0 1 | |
0069 . . JMP 5 => 0094 | |
0094 . . RET0 0 1 | |
0036 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0055 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 IR | |
.... SNAP #0 [ ---- ] | |
.... SNAP #1 [ ---- ] | |
0002 > p32 RETF proto: 0x419b1858 [0x419b18f8] | |
.... SNAP #2 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0003 [1mfun[m SLOAD #0 R | |
0004 > [1mfun[m EQ 0003 [1mssa.lua:55[m | |
0005 rbx > [31mtab[m SLOAD #1 T | |
0006 [35mint[m FLOAD 0005 tab.asize | |
0007 > [35mint[m ABC 0006 [35m+3 [m | |
0008 r15 p32 FLOAD 0005 tab.array | |
0009 p32 AREF 0008 [35m+3 [m | |
0010 [7c] > [31mtab[m ALOAD 0009 | |
0011 [78] > [31mtab[m SLOAD #6 T | |
0012 r14 > [31mtab[m SLOAD #3 T | |
0013 r13 > [31mtab[m SLOAD #4 T | |
0014 [48] [31mtab[m FLOAD [1mssa.lua:55[m func.env | |
0015 rsi p32 HREF 0014 [32m"assert"[m | |
0016 > p32 EQ 0015 [0x4105e458] | |
0017 [3c] [31mtab[m FLOAD 0014 tab.meta | |
0018 > [31mtab[m NE 0017 [31m[NULL][m | |
0019 [35mint[m FLOAD 0017 tab.hmask | |
0020 > [35mint[m EQ 0019 [35m+1 [m | |
0021 rsi p32 FLOAD 0017 tab.node | |
0022 > p32 HREFK 0021 [32m"__index"[m @1 | |
0023 rsi > [31mtab[m HLOAD 0022 | |
0024 [35mint[m FLOAD 0023 tab.hmask | |
0025 > [35mint[m EQ 0024 [35m+63 [m | |
0026 rsi p32 FLOAD 0023 tab.node | |
0027 > p32 HREFK 0026 [32m"assert"[m @3 | |
0028 > [1mfun[m HLOAD 0027 | |
0029 rdx p32 HREF 0014 [32m"type"[m | |
0030 > p32 EQ 0029 [0x4105e458] | |
0031 > p32 HREFK 0026 [32m"type"[m @60 | |
0032 > [1mfun[m HLOAD 0031 | |
0033 > [1mfun[m EQ 0032 [1mtype[m | |
0034 > [1mfun[m EQ 0028 [1massert[m | |
0035 [35mint[m FLOAD 0010 tab.asize | |
0036 > [35mint[m ABC 0035 [35m+1 [m | |
0037 rsi p32 FLOAD 0010 tab.array | |
0038 p32 AREF 0037 [35m+1 [m | |
0039 [74] > [32mstr[m ALOAD 0038 | |
.... SNAP #3 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0040 > [32mstr[m NE 0039 [32m"if"[m | |
.... SNAP #4 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0041 > [32mstr[m NE 0039 [32m"let"[m | |
.... SNAP #5 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0042 > [32mstr[m NE 0039 [32m"true"[m | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0043 > [32mstr[m NE 0039 [32m"false"[m | |
.... SNAP #7 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0044 > [32mstr[m NE 0039 [32m"match"[m | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0045 > [32mstr[m NE 0039 [32m"fail"[m | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0046 > p32 UREFC [1mssa.lua:55[m #4 | |
0047 [40] > [31mtab[m ULOAD 0046 | |
0048 rsi p32 HREF 0047 0039 | |
0049 > tru HLOAD 0048 | |
0050 [70] > [31mtab[m TDUP [31m{0x419b20e0}[m | |
0051 rax p32 FLOAD 0050 tab.array | |
0052 p32 AREF 0051 [35m+2 [m | |
0053 [31mtab[m ASTORE 0052 0010 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|[31m0011[m ---- [31m0012[m [31m0013[m [31m0050[m ] | |
0054 [35mint[m FLOAD 0012 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 r15 p32 FLOAD 0012 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 r15 > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0051 [35m+3 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #11 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|[31m0011[m ---- ---- [31m0013[m [31m0050[m ---- ] | |
0061 [35mint[m FLOAD 0013 tab.hmask | |
0062 > [35mint[m EQ 0061 [35m+1 [m | |
0063 r15 p32 FLOAD 0013 tab.node | |
0064 > p32 HREFK 0063 [32m"label"[m @1 | |
0065 r15 > [32mstr[m HLOAD 0064 | |
0066 p32 AREF 0051 [35m+4 [m | |
0067 [32mstr[m ASTORE 0066 0065 | |
.... SNAP #12 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|[31m0011[m ---- ---- ---- [31m0050[m ---- ] | |
0068 rdx p32 HREF 0011 [32m"control"[m | |
0069 > p32 EQ 0068 [0x4105e458] | |
0070 [31mtab[m FLOAD 0011 tab.meta | |
0071 > [31mtab[m EQ 0070 [31m[NULL][m | |
0072 r15 p32 NEWREF 0011 [32m"control"[m | |
0073 [31mtab[m HSTORE 0072 0050 | |
0074 nil TBAR 0011 | |
.... SNAP #13 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|---- ---- ---- ---- ---- ---- ] | |
0075 [35mint[m FLOAD 0005 tab.asize | |
0076 > [35mint[m ABC 0075 [35m+4 [m | |
0077 rbx p32 FLOAD 0005 tab.array | |
0078 p32 AREF 0077 [35m+4 [m | |
0079 r15 > [31mtab[m ALOAD 0078 | |
0080 rbx > [31mtab[m SLOAD #7 T | |
0081 rax p32 HREF 0014 [32m"assert"[m | |
0082 > p32 EQ 0081 [0x4105e458] | |
0083 [35mint[m FLOAD 0017 tab.hmask | |
0084 > [35mint[m EQ 0083 [35m+1 [m | |
0085 r12 p32 FLOAD 0017 tab.node | |
0086 > p32 HREFK 0085 [32m"__index"[m @1 | |
0087 r12 > [31mtab[m HLOAD 0086 | |
0088 [35mint[m FLOAD 0087 tab.hmask | |
0089 > [35mint[m EQ 0088 [35m+63 [m | |
0090 r12 p32 FLOAD 0087 tab.node | |
0091 > p32 HREFK 0090 [32m"assert"[m @3 | |
0092 > [1mfun[m HLOAD 0091 | |
0093 rax p32 HREF 0014 [32m"type"[m | |
0094 > p32 EQ 0093 [0x4105e458] | |
0095 > p32 HREFK 0090 [32m"type"[m @60 | |
0096 > [1mfun[m HLOAD 0095 | |
0097 > [1mfun[m EQ 0096 [1mtype[m | |
0098 > [1mfun[m EQ 0092 [1massert[m | |
0099 [35mint[m FLOAD 0079 tab.asize | |
0100 > [35mint[m ABC 0099 [35m+1 [m | |
0101 r12 p32 FLOAD 0079 tab.array | |
0102 p32 AREF 0101 [35m+1 [m | |
0103 r12 > [32mstr[m ALOAD 0102 | |
.... SNAP #14 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0104 > [32mstr[m NE 0103 [32m"if"[m | |
.... SNAP #15 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0105 > [32mstr[m NE 0103 [32m"let"[m | |
.... SNAP #16 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0106 > [32mstr[m NE 0103 [32m"true"[m | |
.... SNAP #17 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0107 > [32mstr[m EQ 0103 [32m"false"[m | |
.... SNAP #18 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0108 [6c] > [31mtab[m TDUP [31m{0x419b23c0}[m | |
0109 [35mint[m FLOAD 0013 tab.hmask | |
0110 > [35mint[m EQ 0109 [35m+1 [m | |
0111 rsi p32 FLOAD 0013 tab.node | |
0112 > p32 HREFK 0111 [32m"label"[m @1 | |
0113 rsi > [32mstr[m HLOAD 0112 | |
0114 rax p32 FLOAD 0108 tab.array | |
0115 p32 AREF 0114 [35m+2 [m | |
0116 [32mstr[m ASTORE 0115 0113 | |
.... SNAP #19 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m [1mssa.lua:52[m|[31m0080[m ---- [31m0108[m ---- ] | |
0117 rsi p32 HREF 0080 [32m"control"[m | |
0118 > p32 EQ 0117 [0x4105e458] | |
0119 [31mtab[m FLOAD 0080 tab.meta | |
0120 > [31mtab[m EQ 0119 [31m[NULL][m | |
0121 r15 p32 NEWREF 0080 [32m"control"[m | |
0122 [31mtab[m HSTORE 0121 0108 | |
0123 nil TBAR 0080 | |
.... SNAP #20 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ] | |
0124 > p32 RETF proto: 0x419b1858 [0x419b18f8] | |
.... SNAP #21 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0125 [1mfun[m SLOAD #0 R | |
0126 > [1mfun[m EQ 0125 [1mssa.lua:55[m | |
0127 rbx > [31mtab[m SLOAD #1 T | |
0128 [35mint[m FLOAD 0127 tab.asize | |
0129 > [35mint[m ABC 0128 [35m+3 [m | |
0130 r15 p32 FLOAD 0127 tab.array | |
0131 p32 AREF 0130 [35m+3 [m | |
0132 [18] > [31mtab[m ALOAD 0131 | |
0133 [14] > [31mtab[m SLOAD #6 T | |
0134 r15 > [31mtab[m SLOAD #3 T | |
0135 r14 > [31mtab[m SLOAD #4 T | |
0136 rdi p32 HREF 0014 [32m"assert"[m | |
0137 > p32 EQ 0136 [0x4105e458] | |
0138 [35mint[m FLOAD 0017 tab.hmask | |
0139 > [35mint[m EQ 0138 [35m+1 [m | |
0140 r12 p32 FLOAD 0017 tab.node | |
0141 > p32 HREFK 0140 [32m"__index"[m @1 | |
0142 r12 > [31mtab[m HLOAD 0141 | |
0143 [35mint[m FLOAD 0142 tab.hmask | |
0144 > [35mint[m EQ 0143 [35m+63 [m | |
0145 r12 p32 FLOAD 0142 tab.node | |
0146 > p32 HREFK 0145 [32m"assert"[m @3 | |
0147 > [1mfun[m HLOAD 0146 | |
0148 rdi p32 HREF 0014 [32m"type"[m | |
0149 > p32 EQ 0148 [0x4105e458] | |
0150 > p32 HREFK 0145 [32m"type"[m @60 | |
0151 > [1mfun[m HLOAD 0150 | |
0152 > [1mfun[m EQ 0151 [1mtype[m | |
0153 > [1mfun[m EQ 0147 [1massert[m | |
0154 [35mint[m FLOAD 0132 tab.asize | |
0155 > [35mint[m ABC 0154 [35m+1 [m | |
0156 r12 p32 FLOAD 0132 tab.array | |
0157 p32 AREF 0156 [35m+1 [m | |
0158 [10] > [32mstr[m ALOAD 0157 | |
.... SNAP #22 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m ] | |
0159 > [32mstr[m EQ 0158 [32m"if"[m | |
.... SNAP #23 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m ] | |
0160 [64] > p32 UREFO [1mssa.lua:39[m #0 | |
0161 xmm7 > [34mnum[m ULOAD 0160 | |
0162 [58] [34mnum[m ADD 0161 [34m+1 [m | |
0163 [34mnum[m USTORE 0160 0162 | |
.... SNAP #24 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [1mssa.lua:39[m|---- ] | |
0164 [32mstr[m TOSTR 0162 NUM | |
0165 rdi p32 BUFHDR [0x4105e414] RESET | |
0166 rdi p32 BUFPUT 0165 [32m"L" [m | |
0167 rdi p32 BUFPUT 0166 0164 | |
0168 [68] [32mstr[m BUFSTR 0167 0165 | |
0169 [c] > [31mtab[m TDUP [31m{0x419b0f30}[m | |
0170 rsi > [31mtab[m TNEW #0 #0 | |
0171 r12 p32 FLOAD 0169 tab.node | |
0172 p32 HREFK 0171 [32m"bindings"[m @2 | |
0173 [31mtab[m HSTORE 0172 0170 | |
0174 p32 HREFK 0171 [32m"label"[m @3 | |
0175 [32mstr[m HSTORE 0174 0168 | |
.... SNAP #25 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [1mssa.lua:39[m|[32m0168[m [31m0169[m ---- ] | |
0176 r12 > p32 UREFO [1mssa.lua:39[m #1 | |
0177 r12 > [31mtab[m ULOAD 0176 | |
0178 [35mint[m FLOAD 0177 tab.hmask | |
0179 > [35mint[m EQ 0178 [35m+1 [m | |
0180 rsi p32 FLOAD 0177 tab.node | |
0181 > p32 HREFK 0180 [32m"blocks"[m @0 | |
0182 [60] > [31mtab[m HLOAD 0181 | |
0183 rdx p32 HREF 0182 0168 | |
0184 > p32 EQ 0183 [0x4105e458] | |
0185 [31mtab[m FLOAD 0182 tab.meta | |
0186 > [31mtab[m EQ 0185 [31m[NULL][m | |
0187 rax p32 NEWREF 0182 0168 | |
0188 [31mtab[m HSTORE 0187 0169 | |
0189 nil TBAR 0182 | |
0190 p32 FREF 0182 tab.nomm | |
0191 [35mu8 [m FSTORE 0190 [35m+0 [m | |
0192 [50] [34mnum[m ADD 0162 [34m+1 [m | |
0193 [34mnum[m USTORE 0160 0192 | |
.... SNAP #26 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [1mssa.lua:39[m|---- ] | |
0194 [32mstr[m TOSTR 0192 NUM | |
0195 rdi p32 BUFHDR [0x4105e414] RESET | |
0196 rdi p32 BUFPUT 0195 [32m"L" [m | |
0197 rdi p32 BUFPUT 0196 0194 | |
0198 [4c] [32mstr[m BUFSTR 0197 0195 | |
0199 [28] > [31mtab[m TDUP [31m{0x419b0f30}[m | |
0200 rsi > [31mtab[m TNEW #0 #0 | |
0201 [1c] p32 FLOAD 0199 tab.node | |
0202 p32 HREFK 0201 [32m"bindings"[m @2 | |
0203 [31mtab[m HSTORE 0202 0200 | |
0204 p32 HREFK 0201 [32m"label"[m @3 | |
0205 [32mstr[m HSTORE 0204 0198 | |
.... SNAP #27 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [1mssa.lua:39[m|[32m0198[m [31m0199[m ---- ] | |
0206 [35mint[m FLOAD 0177 tab.hmask | |
0207 > [35mint[m EQ 0206 [35m+1 [m | |
0208 r12 p32 FLOAD 0177 tab.node | |
0209 > p32 HREFK 0208 [32m"blocks"[m @0 | |
0210 r12 > [31mtab[m HLOAD 0209 | |
0211 rsi p32 HREF 0210 0198 | |
0212 > p32 EQ 0211 [0x4105e458] | |
0213 [31mtab[m FLOAD 0210 tab.meta | |
0214 > [31mtab[m EQ 0213 [31m[NULL][m | |
0215 rax p32 NEWREF 0210 0198 | |
0216 [31mtab[m HSTORE 0215 0199 | |
0217 nil TBAR 0210 | |
0218 p32 FREF 0210 tab.nomm | |
0219 [35mu8 [m FSTORE 0218 [35m+0 [m | |
.... SNAP #28 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [1mssa.lua:39[m|---- [31m0199[m ---- ] | |
0220 [35mint[m FLOAD 0132 tab.asize | |
0221 > [35mint[m ABC 0220 [35m+2 [m | |
0222 r12 p32 FLOAD 0132 tab.array | |
0223 p32 AREF 0222 [35m+2 [m | |
0224 r12 > [31mtab[m ALOAD 0223 | |
0225 rcx p32 HREF 0014 [32m"assert"[m | |
0226 > p32 EQ 0225 [0x4105e458] | |
0227 [35mint[m FLOAD 0017 tab.hmask | |
0228 > [35mint[m EQ 0227 [35m+1 [m | |
0229 rsi p32 FLOAD 0017 tab.node | |
0230 > p32 HREFK 0229 [32m"__index"[m @1 | |
0231 rsi > [31mtab[m HLOAD 0230 | |
0232 [35mint[m FLOAD 0231 tab.hmask | |
0233 > [35mint[m EQ 0232 [35m+63 [m | |
0234 rsi p32 FLOAD 0231 tab.node | |
0235 > p32 HREFK 0234 [32m"assert"[m @3 | |
0236 > [1mfun[m HLOAD 0235 | |
0237 rcx p32 HREF 0014 [32m"type"[m | |
0238 > p32 EQ 0237 [0x4105e458] | |
0239 > p32 HREFK 0234 [32m"type"[m @60 | |
0240 > [1mfun[m HLOAD 0239 | |
0241 > [1mfun[m EQ 0240 [1mtype[m | |
0242 > [1mfun[m EQ 0236 [1massert[m | |
0243 [35mint[m FLOAD 0224 tab.asize | |
0244 > [35mint[m ABC 0243 [35m+1 [m | |
0245 rsi p32 FLOAD 0224 tab.array | |
0246 p32 AREF 0245 [35m+1 [m | |
0247 [38] > [32mstr[m ALOAD 0246 | |
.... SNAP #29 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0248 > [32mstr[m NE 0247 [32m"if"[m | |
.... SNAP #30 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0249 > [32mstr[m NE 0247 [32m"let"[m | |
.... SNAP #31 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0250 > [32mstr[m NE 0247 [32m"true"[m | |
.... SNAP #32 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0251 > [32mstr[m NE 0247 [32m"false"[m | |
.... SNAP #33 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0252 > [32mstr[m NE 0247 [32m"match"[m | |
.... SNAP #34 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0253 > [32mstr[m NE 0247 [32m"fail"[m | |
.... SNAP #35 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0254 rsi p32 HREF 0047 0247 | |
0255 > tru HLOAD 0254 | |
0256 [44] > [31mtab[m TDUP [31m{0x419b20e0}[m | |
0257 rdx p32 FLOAD 0256 tab.array | |
0258 p32 AREF 0257 [35m+2 [m | |
0259 [31mtab[m ASTORE 0258 0224 | |
.... SNAP #36 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m [1mssa.lua:49[m|[31m0133[m ---- [31m0169[m [31m0199[m [31m0256[m ] | |
0260 [35mint[m FLOAD 0169 tab.hmask | |
0261 > [35mint[m EQ 0260 [35m+3 [m | |
0262 [2c] p32 FLOAD 0169 tab.node | |
0263 > p32 HREFK 0262 [32m"label"[m @3 | |
0264 rcx > [32mstr[m HLOAD 0263 | |
0265 p32 AREF 0257 [35m+3 [m | |
0266 [32mstr[m ASTORE 0265 0264 | |
0267 p32 AREF 0257 [35m+4 [m | |
0268 [32mstr[m ASTORE 0267 0198 | |
.... SNAP #37 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m [1mssa.lua:49[m|[31m0133[m ---- ---- ---- [31m0256[m ---- ] | |
0269 rdx p32 HREF 0133 [32m"control"[m | |
0270 > p32 EQ 0269 [0x4105e458] | |
0271 [31mtab[m FLOAD 0133 tab.meta | |
0272 > [31mtab[m EQ 0271 [31m[NULL][m | |
0273 r9 p32 NEWREF 0133 [32m"control"[m | |
0274 [31mtab[m HSTORE 0273 0256 | |
0275 nil TBAR 0133 | |
.... SNAP #38 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m [1mssa.lua:49[m|---- ---- ---- ---- ---- ---- ] | |
0276 [35mint[m FLOAD 0132 tab.asize | |
0277 > [35mint[m ABC 0276 [35m+4 [m | |
0278 [30] p32 FLOAD 0132 tab.array | |
0279 p32 AREF 0278 [35m+3 [m | |
0280 r13 > [31mtab[m ALOAD 0279 | |
0281 rax p32 HREF 0014 [32m"assert"[m | |
0282 > p32 EQ 0281 [0x4105e458] | |
0283 [35mint[m FLOAD 0017 tab.hmask | |
0284 > [35mint[m EQ 0283 [35m+1 [m | |
0285 rdx p32 FLOAD 0017 tab.node | |
0286 > p32 HREFK 0285 [32m"__index"[m @1 | |
0287 rdx > [31mtab[m HLOAD 0286 | |
0288 [35mint[m FLOAD 0287 tab.hmask | |
0289 > [35mint[m EQ 0288 [35m+63 [m | |
0290 rdx p32 FLOAD 0287 tab.node | |
0291 > p32 HREFK 0290 [32m"assert"[m @3 | |
0292 > [1mfun[m HLOAD 0291 | |
0293 rax p32 HREF 0014 [32m"type"[m | |
0294 > p32 EQ 0293 [0x4105e458] | |
0295 > p32 HREFK 0290 [32m"type"[m @60 | |
0296 > [1mfun[m HLOAD 0295 | |
0297 > [1mfun[m EQ 0296 [1mtype[m | |
0298 > [1mfun[m EQ 0292 [1massert[m | |
0299 [35mint[m FLOAD 0280 tab.asize | |
0300 > [35mint[m ABC 0299 [35m+1 [m | |
0301 rdx p32 FLOAD 0280 tab.array | |
0302 p32 AREF 0301 [35m+1 [m | |
0303 [34] > [32mstr[m ALOAD 0302 | |
.... SNAP #39 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0304 > [32mstr[m NE 0303 [32m"if"[m | |
.... SNAP #40 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0305 > [32mstr[m NE 0303 [32m"let"[m | |
.... SNAP #41 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0306 > [32mstr[m NE 0303 [32m"true"[m | |
.... SNAP #42 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0307 > [32mstr[m NE 0303 [32m"false"[m | |
.... SNAP #43 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0308 > [32mstr[m NE 0303 [32m"match"[m | |
.... SNAP #44 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0309 > [32mstr[m NE 0303 [32m"fail"[m | |
.... SNAP #45 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0310 r12 p32 HREF 0047 0303 | |
0311 > tru HLOAD 0310 | |
0312 rax > [31mtab[m TDUP [31m{0x419b20e0}[m | |
0313 r11 p32 FLOAD 0312 tab.array | |
0314 p32 AREF 0313 [35m+2 [m | |
0315 [31mtab[m ASTORE 0314 0280 | |
.... SNAP #46 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|[31m0169[m ---- [31m0134[m [31m0135[m [31m0312[m ] | |
0316 [35mint[m FLOAD 0134 tab.hmask | |
0317 > [35mint[m EQ 0316 [35m+1 [m | |
0318 r12 p32 FLOAD 0134 tab.node | |
0319 > p32 HREFK 0318 [32m"label"[m @1 | |
0320 r12 > [32mstr[m HLOAD 0319 | |
0321 p32 AREF 0313 [35m+3 [m | |
0322 [32mstr[m ASTORE 0321 0320 | |
.... SNAP #47 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|[31m0169[m ---- ---- [31m0135[m [31m0312[m ---- ] | |
0323 [35mint[m FLOAD 0135 tab.hmask | |
0324 > [35mint[m EQ 0323 [35m+1 [m | |
0325 r12 p32 FLOAD 0135 tab.node | |
0326 > p32 HREFK 0325 [32m"label"[m @1 | |
0327 r12 > [32mstr[m HLOAD 0326 | |
0328 p32 AREF 0313 [35m+4 [m | |
0329 [32mstr[m ASTORE 0328 0327 | |
.... SNAP #48 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|[31m0169[m ---- ---- ---- [31m0312[m ---- ] | |
0330 > p32 HREFK 0262 [32m"control"[m @1 | |
0331 [31mtab[m HSTORE 0330 0312 | |
.... SNAP #49 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|---- ---- ---- ---- ---- ---- ] | |
0332 p32 AREF 0278 [35m+4 [m | |
0333 [24] > [31mtab[m ALOAD 0332 | |
0334 [35mint[m FLOAD 0333 tab.asize | |
0335 > [35mint[m ABC 0334 [35m+1 [m | |
0336 rdx p32 FLOAD 0333 tab.array | |
0337 p32 AREF 0336 [35m+1 [m | |
0338 [20] > [32mstr[m ALOAD 0337 | |
.... SNAP #50 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0339 > [32mstr[m NE 0338 [32m"if"[m | |
.... SNAP #51 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0340 > [32mstr[m NE 0338 [32m"let"[m | |
.... SNAP #52 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0341 > [32mstr[m NE 0338 [32m"true"[m | |
.... SNAP #53 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0342 > [32mstr[m EQ 0338 [32m"false"[m | |
.... SNAP #54 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0343 r13 > [31mtab[m TDUP [31m{0x419b23c0}[m | |
0344 rdi p32 FLOAD 0343 tab.array | |
0345 p32 AREF 0344 [35m+2 [m | |
0346 [32mstr[m ASTORE 0345 0327 | |
0347 p32 HREFK 0201 [32m"control"[m @1 | |
0348 [31mtab[m HSTORE 0347 0343 | |
.... SNAP #55 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m [1mssa.lua:52[m|---- ---- ---- ---- ] | |
0349 [35mint[m FLOAD 0127 tab.asize | |
0350 > [35mint[m ABC 0349 [35m+4 [m | |
0351 rbx p32 FLOAD 0127 tab.array | |
0352 p32 AREF 0351 [35m+4 [m | |
0353 rbx > [31mtab[m ALOAD 0352 | |
0354 rbp > [31mtab[m SLOAD #7 T | |
0355 [35mint[m FLOAD 0353 tab.asize | |
0356 > [35mint[m ABC 0355 [35m+1 [m | |
0357 r13 p32 FLOAD 0353 tab.array | |
0358 p32 AREF 0357 [35m+1 [m | |
0359 r13 > [32mstr[m ALOAD 0358 | |
.... SNAP #56 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0360 > [32mstr[m NE 0359 [32m"if"[m | |
.... SNAP #57 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0361 > [32mstr[m NE 0359 [32m"let"[m | |
.... SNAP #58 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0362 > [32mstr[m NE 0359 [32m"true"[m | |
.... SNAP #59 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0363 > [32mstr[m EQ 0359 [32m"false"[m | |
.... SNAP #60 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0364 [8] > [31mtab[m TDUP [31m{0x419b23c0}[m | |
0365 rax p32 FLOAD 0364 tab.array | |
0366 p32 AREF 0365 [35m+2 [m | |
0367 [32mstr[m ASTORE 0366 0327 | |
.... SNAP #61 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m [1mssa.lua:52[m|[31m0354[m ---- [31m0364[m ---- ] | |
0368 rsi p32 HREF 0354 [32m"control"[m | |
0369 > p32 EQ 0368 [0x4105e458] | |
0370 [31mtab[m FLOAD 0354 tab.meta | |
0371 > [31mtab[m EQ 0370 [31m[NULL][m | |
0372 rbx p32 NEWREF 0354 [32m"control"[m | |
0373 [31mtab[m HSTORE 0372 0364 | |
0374 nil TBAR 0354 | |
.... SNAP #62 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ] | |
0375 > p32 RETF proto: 0x419b1858 [0x419b1974] | |
.... SNAP #63 [ ---- ] | |
---- TRACE 3 mcode 4549 | |
0bcbe8e1 add rsp, -0x70 | |
0bcbe8e5 mov dword [0x4105e410], 0x3 | |
0bcbe8f0 mov ebp, edx | |
0bcbe8f2 mov edi, [0x4105e3d8] | |
0bcbe8f9 cmp edi, [0x4105e3dc] | |
0bcbe900 jb 0x0bcbe919 | |
0bcbe902 mov esi, 0xc | |
0bcbe907 mov edi, 0x4105e3b8 | |
0bcbe90c call 0x00421730 ->lj_gc_step_jit | |
0bcbe911 test eax, eax | |
0bcbe913 jnz 0x0bcb0010 ->0 | |
0bcbe919 mov edi, [0x4105e4b0] | |
0bcbe920 cmp dword [rbp-0x4], 0x419b18f8 | |
0bcbe927 jnz 0x0bcb0014 ->1 | |
0bcbe92d add ebp, -0x40 | |
0bcbe930 mov [0x4105e4b4], ebp | |
0bcbe937 cmp dword [rbp-0x8], 0x419b31b0 | |
0bcbe93e jnz 0x0bcb0018 ->2 | |
0bcbe944 cmp dword [rbp+0x4], -0x0c | |
0bcbe948 jnz 0x0bcb0018 ->2 | |
0bcbe94e mov ebx, [rbp+0x0] | |
0bcbe951 cmp dword [rbx+0x18], +0x03 | |
0bcbe955 jbe 0x0bcb0018 ->2 | |
0bcbe95b mov r15d, [rbx+0x8] | |
0bcbe95f cmp dword [r15+0x1c], -0x0c | |
0bcbe964 jnz 0x0bcb0018 ->2 | |
0bcbe96a mov r15d, [r15+0x18] | |
0bcbe96e mov [rsp+0x7c], r15d | |
0bcbe973 cmp dword [rbp+0x2c], -0x0c | |
0bcbe977 jnz 0x0bcb0018 ->2 | |
0bcbe97d mov esi, [rbp+0x28] | |
0bcbe980 mov [rsp+0x78], esi | |
0bcbe984 cmp dword [rbp+0x14], -0x0c | |
0bcbe988 jnz 0x0bcb0018 ->2 | |
0bcbe98e mov r14d, [rbp+0x10] | |
0bcbe992 cmp dword [rbp+0x1c], -0x0c | |
0bcbe996 jnz 0x0bcb0018 ->2 | |
0bcbe99c mov r13d, [rbp+0x18] | |
0bcbe9a0 mov r11d, [0x419b31b8] | |
0bcbe9a8 mov [rsp+0x48], r11d | |
0bcbe9ad mov esi, [r11+0x1c] | |
0bcbe9b1 and esi, 0xce2b6183 | |
0bcbe9b7 lea esi, [rsi+rsi*2] | |
0bcbe9ba shl esi, 0x03 | |
0bcbe9bd add esi, [r11+0x14] | |
0bcbe9c1 cmp dword [rsi+0xc], -0x05 | |
0bcbe9c5 jnz 0x0bcbe9d4 | |
0bcbe9c7 cmp dword [rsi+0x8], 0x41060db0 | |
0bcbe9ce jz 0x0bcb0018 ->2 | |
0bcbe9d4 mov esi, [rsi+0x10] | |
0bcbe9d7 test esi, esi | |
0bcbe9d9 jnz 0x0bcbe9c1 | |
0bcbe9db mov r12d, [r11+0x10] | |
0bcbe9df mov [rsp+0x3c], r12d | |
0bcbe9e4 test r12d, r12d | |
0bcbe9e7 jz 0x0bcb0018 ->2 | |
0bcbe9ed cmp dword [r12+0x1c], +0x01 | |
0bcbe9f3 jnz 0x0bcb0018 ->2 | |
0bcbe9f9 mov esi, [r12+0x14] | |
0bcbe9fe mov rdx, 0xfffffffb410604c8 | |
0bcbea08 cmp rdx, [rsi+0x20] | |
0bcbea0c jnz 0x0bcb0018 ->2 | |
0bcbea12 cmp dword [rsi+0x1c], -0x0c | |
0bcbea16 jnz 0x0bcb0018 ->2 | |
0bcbea1c mov esi, [rsi+0x18] | |
0bcbea1f cmp dword [rsi+0x1c], +0x3f | |
0bcbea23 jnz 0x0bcb0018 ->2 | |
0bcbea29 mov esi, [rsi+0x14] | |
0bcbea2c mov rdx, 0xfffffffb41060db0 | |
0bcbea36 cmp rdx, [rsi+0x50] | |
0bcbea3a jnz 0x0bcb0018 ->2 | |
0bcbea40 cmp dword [rsi+0x4c], -0x09 | |
0bcbea44 jnz 0x0bcb0018 ->2 | |
0bcbea4a mov edx, [r11+0x1c] | |
0bcbea4e and edx, 0x798a813c | |
0bcbea54 lea edx, [rdx+rdx*2] | |
0bcbea57 shl edx, 0x03 | |
0bcbea5a add edx, [r11+0x14] | |
0bcbea5e cmp dword [rdx+0xc], -0x05 | |
0bcbea62 jnz 0x0bcbea71 | |
0bcbea64 cmp dword [rdx+0x8], 0x41060fb0 | |
0bcbea6b jz 0x0bcb0018 ->2 | |
0bcbea71 mov edx, [rdx+0x10] | |
0bcbea74 test edx, edx | |
0bcbea76 jnz 0x0bcbea5e | |
0bcbea78 mov rdx, 0xfffffffb41060fb0 | |
0bcbea82 cmp rdx, [rsi+0x5a8] | |
0bcbea89 jnz 0x0bcb0018 ->2 | |
0bcbea8f cmp dword [rsi+0x5a4], -0x09 | |
0bcbea96 jnz 0x0bcb0018 ->2 | |
0bcbea9c cmp dword [rsi+0x5a0], 0x41060f18 | |
0bcbeaa6 jnz 0x0bcb0018 ->2 | |
0bcbeaac cmp dword [rsi+0x48], 0x41060d88 | |
0bcbeab3 jnz 0x0bcb0018 ->2 | |
0bcbeab9 cmp dword [r15+0x18], +0x01 | |
0bcbeabe jbe 0x0bcb0018 ->2 | |
0bcbeac4 mov esi, [r15+0x8] | |
0bcbeac8 cmp dword [rsi+0xc], -0x05 | |
0bcbeacc jnz 0x0bcb0018 ->2 | |
0bcbead2 mov ecx, [rsi+0x8] | |
0bcbead5 mov [rsp+0x74], ecx | |
0bcbead9 cmp ecx, 0x410608f8 | |
0bcbeadf jz 0x0bcb001c ->3 | |
0bcbeae5 cmp ecx, 0x410741f0 | |
0bcbeaeb jz 0x0bcb0020 ->4 | |
0bcbeaf1 cmp ecx, 0x41060a18 | |
0bcbeaf7 jz 0x0bcb0024 ->5 | |
0bcbeafd cmp ecx, 0x41060870 | |
0bcbeb03 jz 0x0bcb0028 ->6 | |
0bcbeb09 cmp ecx, 0x41063cb0 | |
0bcbeb0f jz 0x0bcb002c ->7 | |
0bcbeb15 cmp ecx, 0x4106e448 | |
0bcbeb1b jz 0x0bcb0030 ->8 | |
0bcbeb21 cmp dword [0x41072a74], -0x0c | |
0bcbeb29 jnz 0x0bcb0034 ->9 | |
0bcbeb2f mov edx, [0x41072a70] | |
0bcbeb36 mov [rsp+0x40], edx | |
0bcbeb3a mov esi, [rdx+0x1c] | |
0bcbeb3d and esi, [rcx+0x8] | |
0bcbeb40 lea esi, [rsi+rsi*2] | |
0bcbeb43 shl esi, 0x03 | |
0bcbeb46 add esi, [rdx+0x14] | |
0bcbeb49 cmp dword [rsi+0xc], -0x05 | |
0bcbeb4d jnz 0x0bcbeb54 | |
0bcbeb4f cmp ecx, [rsi+0x8] | |
0bcbeb52 jz 0x0bcbeb60 | |
0bcbeb54 mov esi, [rsi+0x10] | |
0bcbeb57 test esi, esi | |
0bcbeb59 jnz 0x0bcbeb49 | |
0bcbeb5b mov esi, 0x4105e458 | |
0bcbeb60 cmp dword [rsi+0x4], -0x03 | |
0bcbeb64 jnz 0x0bcb0034 ->9 | |
0bcbeb6a mov esi, 0x419b20e0 | |
0bcbeb6f call 0x004223c0 ->lj_tab_dup | |
0bcbeb74 mov [rsp+0x70], eax | |
0bcbeb78 mov edi, [0x4105e4b0] | |
0bcbeb7f mov esi, [rsp+0x78] | |
0bcbeb83 mov eax, [rax+0x8] | |
0bcbeb86 mov dword [rax+0x14], 0xfffffff4 | |
0bcbeb8d mov [rax+0x10], r15d | |
0bcbeb91 cmp dword [r14+0x1c], +0x01 | |
0bcbeb96 jnz 0x0bcb0038 ->10 | |
0bcbeb9c mov r15d, [r14+0x14] | |
0bcbeba0 mov rdx, 0xfffffffb419b0248 | |
0bcbebaa cmp rdx, [r15+0x20] | |
0bcbebae jnz 0x0bcb0038 ->10 | |
0bcbebb4 cmp dword [r15+0x1c], -0x05 | |
0bcbebb9 jnz 0x0bcb0038 ->10 | |
0bcbebbf mov r15d, [r15+0x18] | |
0bcbebc3 mov dword [rax+0x1c], 0xfffffffb | |
0bcbebca mov [rax+0x18], r15d | |
0bcbebce cmp dword [r13+0x1c], +0x01 | |
0bcbebd3 jnz 0x0bcb003c ->11 | |
0bcbebd9 mov r15d, [r13+0x14] | |
0bcbebdd mov rdx, 0xfffffffb419b0248 | |
0bcbebe7 cmp rdx, [r15+0x20] | |
0bcbebeb jnz 0x0bcb003c ->11 | |
0bcbebf1 cmp dword [r15+0x1c], -0x05 | |
0bcbebf6 jnz 0x0bcb003c ->11 | |
0bcbebfc mov r15d, [r15+0x18] | |
0bcbec00 mov dword [rax+0x24], 0xfffffffb | |
0bcbec07 mov [rax+0x20], r15d | |
0bcbec0b mov edx, [rsi+0x1c] | |
0bcbec0e and edx, 0x2a54dc55 | |
0bcbec14 lea edx, [rdx+rdx*2] | |
0bcbec17 shl edx, 0x03 | |
0bcbec1a add edx, [rsi+0x14] | |
0bcbec1d cmp dword [rdx+0xc], -0x05 | |
0bcbec21 jnz 0x0bcbec30 | |
0bcbec23 cmp dword [rdx+0x8], 0x419b09b0 | |
0bcbec2a jz 0x0bcb0040 ->12 | |
0bcbec30 mov edx, [rdx+0x10] | |
0bcbec33 test edx, edx | |
0bcbec35 jnz 0x0bcbec1d | |
0bcbec37 cmp dword [rsi+0x10], +0x00 | |
0bcbec3b jnz 0x0bcb0040 ->12 | |
0bcbec41 mov edx, 0x4105e448 | |
0bcbec46 mov dword [rdx+0x4], 0xfffffffb | |
0bcbec4d mov dword [rdx], 0x419b09b0 | |
0bcbec53 call 0x00422cf0 ->lj_tab_newkey | |
0bcbec58 mov r15d, eax | |
0bcbec5b mov r11d, [rsp+0x48] | |
0bcbec60 mov edi, [0x4105e4b0] | |
0bcbec67 mov edx, [rsp+0x78] | |
0bcbec6b mov eax, [rsp+0x70] | |
0bcbec6f mov dword [r15+0x4], 0xfffffff4 | |
0bcbec77 mov [r15], eax | |
0bcbec7a test byte [rdx+0x4], 0x4 | |
0bcbec7e jz 0x0bcbec95 | |
0bcbec80 and byte [rdx+0x4], 0xfb | |
0bcbec84 mov eax, [0x4105e3f4] | |
0bcbec8b mov [0x4105e3f4], edx | |
0bcbec92 mov [rdx+0xc], eax | |
0bcbec95 cmp dword [rbx+0x18], +0x04 | |
0bcbec99 jbe 0x0bcb0044 ->13 | |
0bcbec9f mov ebx, [rbx+0x8] | |
0bcbeca2 cmp dword [rbx+0x24], -0x0c | |
0bcbeca6 jnz 0x0bcb0044 ->13 | |
0bcbecac mov r15d, [rbx+0x20] | |
0bcbecb0 cmp dword [rbp+0x34], -0x0c | |
0bcbecb4 jnz 0x0bcb0044 ->13 | |
0bcbecba mov ebx, [rbp+0x30] | |
0bcbecbd mov eax, [r11+0x1c] | |
0bcbecc1 and eax, 0xce2b6183 | |
0bcbecc7 lea eax, [rax+rax*2] | |
0bcbecca shl eax, 0x03 | |
0bcbeccd add eax, [r11+0x14] | |
0bcbecd1 cmp dword [rax+0xc], -0x05 | |
0bcbecd5 jnz 0x0bcbece4 | |
0bcbecd7 cmp dword [rax+0x8], 0x41060db0 | |
0bcbecde jz 0x0bcb0044 ->13 | |
0bcbece4 mov eax, [rax+0x10] | |
0bcbece7 test eax, eax | |
0bcbece9 jnz 0x0bcbecd1 | |
0bcbeceb cmp dword [r12+0x1c], +0x01 | |
0bcbecf1 jnz 0x0bcb0044 ->13 | |
0bcbecf7 mov r12d, [r12+0x14] | |
0bcbecfc mov rax, 0xfffffffb410604c8 | |
0bcbed06 cmp rax, [r12+0x20] | |
0bcbed0b jnz 0x0bcb0044 ->13 | |
0bcbed11 cmp dword [r12+0x1c], -0x0c | |
0bcbed17 jnz 0x0bcb0044 ->13 | |
0bcbed1d mov r12d, [r12+0x18] | |
0bcbed22 cmp dword [r12+0x1c], +0x3f | |
0bcbed28 jnz 0x0bcb0044 ->13 | |
0bcbed2e mov r12d, [r12+0x14] | |
0bcbed33 mov rax, 0xfffffffb41060db0 | |
0bcbed3d cmp rax, [r12+0x50] | |
0bcbed42 jnz 0x0bcb0044 ->13 | |
0bcbed48 cmp dword [r12+0x4c], -0x09 | |
0bcbed4e jnz 0x0bcb0044 ->13 | |
0bcbed54 mov eax, [r11+0x1c] | |
0bcbed58 and eax, 0x798a813c | |
0bcbed5e lea eax, [rax+rax*2] | |
0bcbed61 shl eax, 0x03 | |
0bcbed64 add eax, [r11+0x14] | |
0bcbed68 cmp dword [rax+0xc], -0x05 | |
0bcbed6c jnz 0x0bcbed7b | |
0bcbed6e cmp dword [rax+0x8], 0x41060fb0 | |
0bcbed75 jz 0x0bcb0044 ->13 | |
0bcbed7b mov eax, [rax+0x10] | |
0bcbed7e test eax, eax | |
0bcbed80 jnz 0x0bcbed68 | |
0bcbed82 mov rax, 0xfffffffb41060fb0 | |
0bcbed8c cmp rax, [r12+0x5a8] | |
0bcbed94 jnz 0x0bcb0044 ->13 | |
0bcbed9a cmp dword [r12+0x5a4], -0x09 | |
0bcbeda3 jnz 0x0bcb0044 ->13 | |
0bcbeda9 cmp dword [r12+0x5a0], 0x41060f18 | |
0bcbedb5 jnz 0x0bcb0044 ->13 | |
0bcbedbb cmp dword [r12+0x48], 0x41060d88 | |
0bcbedc4 jnz 0x0bcb0044 ->13 | |
0bcbedca cmp dword [r15+0x18], +0x01 | |
0bcbedcf jbe 0x0bcb0044 ->13 | |
0bcbedd5 mov r12d, [r15+0x8] | |
0bcbedd9 cmp dword [r12+0xc], -0x05 | |
0bcbeddf jnz 0x0bcb0044 ->13 | |
0bcbede5 mov r12d, [r12+0x8] | |
0bcbedea cmp r12d, 0x410608f8 | |
0bcbedf1 jz 0x0bcb0048 ->14 | |
0bcbedf7 cmp r12d, 0x410741f0 | |
0bcbedfe jz 0x0bcb004c ->15 | |
0bcbee04 cmp r12d, 0x41060a18 | |
0bcbee0b jz 0x0bcb0050 ->16 | |
0bcbee11 cmp r12d, 0x41060870 | |
0bcbee18 jnz 0x0bcb0054 ->17 | |
0bcbee1e mov esi, 0x419b23c0 | |
0bcbee23 call 0x004223c0 ->lj_tab_dup | |
0bcbee28 mov [rsp+0x6c], eax | |
0bcbee2c mov edi, [0x4105e4b0] | |
0bcbee33 cmp dword [r13+0x1c], +0x01 | |
0bcbee38 jnz 0x0bcb0058 ->18 | |
0bcbee3e mov esi, [r13+0x14] | |
0bcbee42 mov rdx, 0xfffffffb419b0248 | |
0bcbee4c cmp rdx, [rsi+0x20] | |
0bcbee50 jnz 0x0bcb0058 ->18 | |
0bcbee56 cmp dword [rsi+0x1c], -0x05 | |
0bcbee5a jnz 0x0bcb0058 ->18 | |
0bcbee60 mov esi, [rsi+0x18] | |
0bcbee63 mov eax, [rax+0x8] | |
0bcbee66 mov dword [rax+0x14], 0xfffffffb | |
0bcbee6d mov [rax+0x10], esi | |
0bcbee70 mov esi, [rbx+0x1c] | |
0bcbee73 and esi, 0x2a54dc55 | |
0bcbee79 lea esi, [rsi+rsi*2] | |
0bcbee7c shl esi, 0x03 | |
0bcbee7f add esi, [rbx+0x14] | |
0bcbee82 cmp dword [rsi+0xc], -0x05 | |
0bcbee86 jnz 0x0bcbee95 | |
0bcbee88 cmp dword [rsi+0x8], 0x419b09b0 | |
0bcbee8f jz 0x0bcb005c ->19 | |
0bcbee95 mov esi, [rsi+0x10] | |
0bcbee98 test esi, esi | |
0bcbee9a jnz 0x0bcbee82 | |
0bcbee9c cmp dword [rbx+0x10], +0x00 | |
0bcbeea0 jnz 0x0bcb005c ->19 | |
0bcbeea6 mov edx, 0x4105e448 | |
0bcbeeab mov dword [rdx+0x4], 0xfffffffb | |
0bcbeeb2 mov dword [rdx], 0x419b09b0 | |
0bcbeeb8 mov esi, ebx | |
0bcbeeba call 0x00422cf0 ->lj_tab_newkey | |
0bcbeebf mov r15d, eax | |
0bcbeec2 mov r11d, [rsp+0x48] | |
0bcbeec7 mov esi, [rsp+0x3c] | |
0bcbeecb mov eax, [rsp+0x6c] | |
0bcbeecf mov dword [r15+0x4], 0xfffffff4 | |
0bcbeed7 mov [r15], eax | |
0bcbeeda test byte [rbx+0x4], 0x4 | |
0bcbeede jz 0x0bcbeef5 | |
0bcbeee0 and byte [rbx+0x4], 0xfb | |
0bcbeee4 mov edi, [0x4105e3f4] | |
0bcbeeeb mov [0x4105e3f4], ebx | |
0bcbeef2 mov [rbx+0xc], edi | |
0bcbeef5 cmp dword [rbp-0x4], 0x419b18f8 | |
0bcbeefc jnz 0x0bcb0060 ->20 | |
0bcbef02 add ebp, -0x40 | |
0bcbef05 mov [0x4105e4b4], ebp | |
0bcbef0c cmp dword [rbp-0x8], 0x419b31b0 | |
0bcbef13 jnz 0x0bcb0064 ->21 | |
0bcbef19 cmp dword [rbp+0x4], -0x0c | |
0bcbef1d jnz 0x0bcb0064 ->21 | |
0bcbef23 mov ebx, [rbp+0x0] | |
0bcbef26 cmp dword [rbx+0x18], +0x03 | |
0bcbef2a jbe 0x0bcb0064 ->21 | |
0bcbef30 mov r15d, [rbx+0x8] | |
0bcbef34 cmp dword [r15+0x1c], -0x0c | |
0bcbef39 jnz 0x0bcb0064 ->21 | |
0bcbef3f mov r13d, [r15+0x18] | |
0bcbef43 mov [rsp+0x18], r13d | |
0bcbef48 cmp dword [rbp+0x2c], -0x0c | |
0bcbef4c jnz 0x0bcb0064 ->21 | |
0bcbef52 mov edi, [rbp+0x28] | |
0bcbef55 mov [rsp+0x14], edi | |
0bcbef59 cmp dword [rbp+0x14], -0x0c | |
0bcbef5d jnz 0x0bcb0064 ->21 | |
0bcbef63 mov r15d, [rbp+0x10] | |
0bcbef67 cmp dword [rbp+0x1c], -0x0c | |
0bcbef6b jnz 0x0bcb0064 ->21 | |
0bcbef71 mov r14d, [rbp+0x18] | |
0bcbef75 mov edi, [r11+0x1c] | |
0bcbef79 and edi, 0xce2b6183 | |
0bcbef7f lea edi, [rdi+rdi*2] | |
0bcbef82 shl edi, 0x03 | |
0bcbef85 add edi, [r11+0x14] | |
0bcbef89 cmp dword [rdi+0xc], -0x05 | |
0bcbef8d jnz 0x0bcbef9c | |
0bcbef8f cmp dword [rdi+0x8], 0x41060db0 | |
0bcbef96 jz 0x0bcb0064 ->21 | |
0bcbef9c mov edi, [rdi+0x10] | |
0bcbef9f test edi, edi | |
0bcbefa1 jnz 0x0bcbef89 | |
0bcbefa3 cmp dword [rsi+0x1c], +0x01 | |
0bcbefa7 jnz 0x0bcb0064 ->21 | |
0bcbefad mov r12d, [rsi+0x14] | |
0bcbefb1 mov rdi, 0xfffffffb410604c8 | |
0bcbefbb cmp rdi, [r12+0x20] | |
0bcbefc0 jnz 0x0bcb0064 ->21 | |
0bcbefc6 cmp dword [r12+0x1c], -0x0c | |
0bcbefcc jnz 0x0bcb0064 ->21 | |
0bcbefd2 mov r12d, [r12+0x18] | |
0bcbefd7 cmp dword [r12+0x1c], +0x3f | |
0bcbefdd jnz 0x0bcb0064 ->21 | |
0bcbefe3 mov r12d, [r12+0x14] | |
0bcbefe8 mov rdi, 0xfffffffb41060db0 | |
0bcbeff2 cmp rdi, [r12+0x50] | |
0bcbeff7 jnz 0x0bcb0064 ->21 | |
0bcbeffd cmp dword [r12+0x4c], -0x09 | |
0bcbf003 jnz 0x0bcb0064 ->21 | |
0bcbf009 mov edi, [r11+0x1c] | |
0bcbf00d and edi, 0x798a813c | |
0bcbf013 lea edi, [rdi+rdi*2] | |
0bcbf016 shl edi, 0x03 | |
0bcbf019 add edi, [r11+0x14] | |
0bcbf01d cmp dword [rdi+0xc], -0x05 | |
0bcbf021 jnz 0x0bcbf030 | |
0bcbf023 cmp dword [rdi+0x8], 0x41060fb0 | |
0bcbf02a jz 0x0bcb0064 ->21 | |
0bcbf030 mov edi, [rdi+0x10] | |
0bcbf033 test edi, edi | |
0bcbf035 jnz 0x0bcbf01d | |
0bcbf037 mov rdi, 0xfffffffb41060fb0 | |
0bcbf041 cmp rdi, [r12+0x5a8] | |
0bcbf049 jnz 0x0bcb0064 ->21 | |
0bcbf04f cmp dword [r12+0x5a4], -0x09 | |
0bcbf058 jnz 0x0bcb0064 ->21 | |
0bcbf05e cmp dword [r12+0x5a0], 0x41060f18 | |
0bcbf06a jnz 0x0bcb0064 ->21 | |
0bcbf070 cmp dword [r12+0x48], 0x41060d88 | |
0bcbf079 jnz 0x0bcb0064 ->21 | |
0bcbf07f cmp dword [r13+0x18], +0x01 | |
0bcbf084 jbe 0x0bcb0064 ->21 | |
0bcbf08a mov r12d, [r13+0x8] | |
0bcbf08e cmp dword [r12+0xc], -0x05 | |
0bcbf094 jnz 0x0bcb0064 ->21 | |
0bcbf09a mov ecx, [r12+0x8] | |
0bcbf09f mov [rsp+0x10], ecx | |
0bcbf0a3 cmp dword [r12+0x8], 0x410608f8 | |
0bcbf0ac jnz 0x0bcb0068 ->22 | |
0bcbf0b2 mov edi, [0x419befc0] | |
0bcbf0b9 mov [rsp+0x64], edi | |
0bcbf0bd cmp dword [rdi+0x4], 0xfffeffff | |
0bcbf0c4 jnb 0x0bcb006c ->23 | |
0bcbf0ca movsd xmm7, [rdi] | |
0bcbf0ce addsd xmm7, [0x4107b120] | |
0bcbf0d7 movsd [rsp+0x58], xmm7 | |
0bcbf0dd movsd [rdi], xmm7 | |
0bcbf0e1 mov edi, 0x4105e414 | |
0bcbf0e6 mov esi, [rdi+0x8] | |
0bcbf0e9 mov [rdi], esi | |
0bcbf0eb mov esi, 0x4c | |
0bcbf0f0 call 0x00421b60 ->lj_buf_putchar | |
0bcbf0f5 mov edi, eax | |
0bcbf0f7 lea rsi, [rsp+0x58] | |
0bcbf0fc call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbf101 mov edi, eax | |
0bcbf103 call 0x00421ff0 ->lj_buf_tostr | |
0bcbf108 mov [rsp+0x68], eax | |
0bcbf10c mov edi, [0x4105e4b0] | |
0bcbf113 mov esi, 0x419b0f30 | |
0bcbf118 call 0x004223c0 ->lj_tab_dup | |
0bcbf11d mov [rsp+0xc], eax | |
0bcbf121 mov edi, [0x4105e4b0] | |
0bcbf128 xor esi, esi | |
0bcbf12a call 0x00422350 ->lj_tab_new1 | |
0bcbf12f mov esi, eax | |
0bcbf131 mov edi, [0x4105e4b0] | |
0bcbf138 mov ecx, [rsp+0xc] | |
0bcbf13c mov eax, [rsp+0x68] | |
0bcbf140 mov r12d, [rcx+0x14] | |
0bcbf144 mov dword [r12+0x34], 0xfffffff4 | |
0bcbf14d mov [r12+0x30], esi | |
0bcbf152 mov dword [r12+0x4c], 0xfffffffb | |
0bcbf15b mov [r12+0x48], eax | |
0bcbf160 mov r12d, [0x419ad340] | |
0bcbf168 cmp dword [r12+0x4], -0x0c | |
0bcbf16e jnz 0x0bcb0074 ->25 | |
0bcbf174 mov r12d, [r12] | |
0bcbf178 cmp dword [r12+0x1c], +0x01 | |
0bcbf17e jnz 0x0bcb0074 ->25 | |
0bcbf184 mov esi, [r12+0x14] | |
0bcbf189 mov rdx, 0xfffffffb419b01a8 | |
0bcbf193 cmp rdx, [rsi+0x8] | |
0bcbf197 jnz 0x0bcb0074 ->25 | |
0bcbf19d cmp dword [rsi+0x4], -0x0c | |
0bcbf1a1 jnz 0x0bcb0074 ->25 | |
0bcbf1a7 mov esi, [rsi] | |
0bcbf1a9 mov [rsp+0x60], esi | |
0bcbf1ad mov edx, [rsi+0x1c] | |
0bcbf1b0 and edx, [rax+0x8] | |
0bcbf1b3 lea edx, [rdx+rdx*2] | |
0bcbf1b6 shl edx, 0x03 | |
0bcbf1b9 add edx, [rsi+0x14] | |
0bcbf1bc cmp dword [rdx+0xc], -0x05 | |
0bcbf1c0 jnz 0x0bcbf1cb | |
0bcbf1c2 cmp eax, [rdx+0x8] | |
0bcbf1c5 jz 0x0bcb0074 ->25 | |
0bcbf1cb mov edx, [rdx+0x10] | |
0bcbf1ce test edx, edx | |
0bcbf1d0 jnz 0x0bcbf1bc | |
0bcbf1d2 cmp dword [rsi+0x10], +0x00 | |
0bcbf1d6 jnz 0x0bcb0074 ->25 | |
0bcbf1dc mov edx, 0x4105e448 | |
0bcbf1e1 mov dword [rdx+0x4], 0xfffffffb | |
0bcbf1e8 mov [rdx], eax | |
0bcbf1ea call 0x00422cf0 ->lj_tab_newkey | |
0bcbf1ef mov edi, [rsp+0x64] | |
0bcbf1f3 mov esi, [rsp+0x60] | |
0bcbf1f7 mov ecx, [rsp+0xc] | |
0bcbf1fb movsd xmm7, [rsp+0x58] | |
0bcbf201 mov dword [rax+0x4], 0xfffffff4 | |
0bcbf208 mov [rax], ecx | |
0bcbf20a test byte [rsi+0x4], 0x4 | |
0bcbf20e jz 0x0bcbf225 | |
0bcbf210 and byte [rsi+0x4], 0xfb | |
0bcbf214 mov edx, [0x4105e3f4] | |
0bcbf21b mov [0x4105e3f4], esi | |
0bcbf222 mov [rsi+0xc], edx | |
0bcbf225 mov byte [rsi+0x6], 0x0 | |
0bcbf229 addsd xmm7, [0x4107b120] | |
0bcbf232 movsd [rsp+0x50], xmm7 | |
0bcbf238 movsd [rdi], xmm7 | |
0bcbf23c mov edi, 0x4105e414 | |
0bcbf241 mov esi, [rdi+0x8] | |
0bcbf244 mov [rdi], esi | |
0bcbf246 mov esi, 0x4c | |
0bcbf24b call 0x00421b60 ->lj_buf_putchar | |
0bcbf250 mov edi, eax | |
0bcbf252 lea rsi, [rsp+0x50] | |
0bcbf257 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbf25c mov edi, eax | |
0bcbf25e call 0x00421ff0 ->lj_buf_tostr | |
0bcbf263 mov [rsp+0x4c], eax | |
0bcbf267 mov edi, [0x4105e4b0] | |
0bcbf26e mov esi, 0x419b0f30 | |
0bcbf273 call 0x004223c0 ->lj_tab_dup | |
0bcbf278 mov [rsp+0x28], eax | |
0bcbf27c mov edi, [0x4105e4b0] | |
0bcbf283 xor esi, esi | |
0bcbf285 call 0x00422350 ->lj_tab_new1 | |
0bcbf28a mov esi, eax | |
0bcbf28c mov edi, [0x4105e4b0] | |
0bcbf293 mov ecx, [rsp+0x28] | |
0bcbf297 mov eax, [rsp+0x4c] | |
0bcbf29b mov r8d, [rcx+0x14] | |
0bcbf29f mov [rsp+0x1c], r8d | |
0bcbf2a4 mov dword [r8+0x34], 0xfffffff4 | |
0bcbf2ac mov [r8+0x30], esi | |
0bcbf2b0 mov dword [r8+0x4c], 0xfffffffb | |
0bcbf2b8 mov [r8+0x48], eax | |
0bcbf2bc cmp dword [r12+0x1c], +0x01 | |
0bcbf2c2 jnz 0x0bcb007c ->27 | |
0bcbf2c8 mov r12d, [r12+0x14] | |
0bcbf2cd mov rsi, 0xfffffffb419b01a8 | |
0bcbf2d7 cmp rsi, [r12+0x8] | |
0bcbf2dc jnz 0x0bcb007c ->27 | |
0bcbf2e2 cmp dword [r12+0x4], -0x0c | |
0bcbf2e8 jnz 0x0bcb007c ->27 | |
0bcbf2ee mov r12d, [r12] | |
0bcbf2f2 mov esi, [r12+0x1c] | |
0bcbf2f7 and esi, [rax+0x8] | |
0bcbf2fa lea esi, [rsi+rsi*2] | |
0bcbf2fd shl esi, 0x03 | |
0bcbf300 add esi, [r12+0x14] | |
0bcbf305 cmp dword [rsi+0xc], -0x05 | |
0bcbf309 jnz 0x0bcbf314 | |
0bcbf30b cmp eax, [rsi+0x8] | |
0bcbf30e jz 0x0bcb007c ->27 | |
0bcbf314 mov esi, [rsi+0x10] | |
0bcbf317 test esi, esi | |
0bcbf319 jnz 0x0bcbf305 | |
0bcbf31b cmp dword [r12+0x10], +0x00 | |
0bcbf321 jnz 0x0bcb007c ->27 | |
0bcbf327 mov edx, 0x4105e448 | |
0bcbf32c mov dword [rdx+0x4], 0xfffffffb | |
0bcbf333 mov [rdx], eax | |
0bcbf335 mov esi, r12d | |
0bcbf338 call 0x00422cf0 ->lj_tab_newkey | |
0bcbf33d mov r11d, [rsp+0x48] | |
0bcbf342 mov edi, [0x4105e4b0] | |
0bcbf349 mov esi, [rsp+0x3c] | |
0bcbf34d mov edx, [rsp+0x40] | |
0bcbf351 mov ecx, [rsp+0x28] | |
0bcbf355 mov dword [rax+0x4], 0xfffffff4 | |
0bcbf35c mov [rax], ecx | |
0bcbf35e test byte [r12+0x4], 0x4 | |
0bcbf364 jz 0x0bcbf380 | |
0bcbf366 and byte [r12+0x4], 0xfb | |
0bcbf36c mov ecx, [0x4105e3f4] | |
0bcbf373 mov [0x4105e3f4], r12d | |
0bcbf37b mov [r12+0xc], ecx | |
0bcbf380 mov byte [r12+0x6], 0x0 | |
0bcbf386 cmp dword [r13+0x18], +0x02 | |
0bcbf38b jbe 0x0bcb0080 ->28 | |
0bcbf391 mov r12d, [r13+0x8] | |
0bcbf395 cmp dword [r12+0x14], -0x0c | |
0bcbf39b jnz 0x0bcb0080 ->28 | |
0bcbf3a1 mov r12d, [r12+0x10] | |
0bcbf3a6 mov ecx, [r11+0x1c] | |
0bcbf3aa and ecx, 0xce2b6183 | |
0bcbf3b0 lea ecx, [rcx+rcx*2] | |
0bcbf3b3 shl ecx, 0x03 | |
0bcbf3b6 add ecx, [r11+0x14] | |
0bcbf3ba cmp dword [rcx+0xc], -0x05 | |
0bcbf3be jnz 0x0bcbf3cd | |
0bcbf3c0 cmp dword [rcx+0x8], 0x41060db0 | |
0bcbf3c7 jz 0x0bcb0080 ->28 | |
0bcbf3cd mov ecx, [rcx+0x10] | |
0bcbf3d0 test ecx, ecx | |
0bcbf3d2 jnz 0x0bcbf3ba | |
0bcbf3d4 cmp dword [rsi+0x1c], +0x01 | |
0bcbf3d8 jnz 0x0bcb0080 ->28 | |
0bcbf3de mov esi, [rsi+0x14] | |
0bcbf3e1 mov rcx, 0xfffffffb410604c8 | |
0bcbf3eb cmp rcx, [rsi+0x20] | |
0bcbf3ef jnz 0x0bcb0080 ->28 | |
0bcbf3f5 cmp dword [rsi+0x1c], -0x0c | |
0bcbf3f9 jnz 0x0bcb0080 ->28 | |
0bcbf3ff mov esi, [rsi+0x18] | |
0bcbf402 cmp dword [rsi+0x1c], +0x3f | |
0bcbf406 jnz 0x0bcb0080 ->28 | |
0bcbf40c mov esi, [rsi+0x14] | |
0bcbf40f mov rcx, 0xfffffffb41060db0 | |
0bcbf419 cmp rcx, [rsi+0x50] | |
0bcbf41d jnz 0x0bcb0080 ->28 | |
0bcbf423 cmp dword [rsi+0x4c], -0x09 | |
0bcbf427 jnz 0x0bcb0080 ->28 | |
0bcbf42d mov ecx, [r11+0x1c] | |
0bcbf431 and ecx, 0x798a813c | |
0bcbf437 lea ecx, [rcx+rcx*2] | |
0bcbf43a shl ecx, 0x03 | |
0bcbf43d add ecx, [r11+0x14] | |
0bcbf441 cmp dword [rcx+0xc], -0x05 | |
0bcbf445 jnz 0x0bcbf454 | |
0bcbf447 cmp dword [rcx+0x8], 0x41060fb0 | |
0bcbf44e jz 0x0bcb0080 ->28 | |
0bcbf454 mov ecx, [rcx+0x10] | |
0bcbf457 test ecx, ecx | |
0bcbf459 jnz 0x0bcbf441 | |
0bcbf45b mov rcx, 0xfffffffb41060fb0 | |
0bcbf465 cmp rcx, [rsi+0x5a8] | |
0bcbf46c jnz 0x0bcb0080 ->28 | |
0bcbf472 cmp dword [rsi+0x5a4], -0x09 | |
0bcbf479 jnz 0x0bcb0080 ->28 | |
0bcbf47f cmp dword [rsi+0x5a0], 0x41060f18 | |
0bcbf489 jnz 0x0bcb0080 ->28 | |
0bcbf48f cmp dword [rsi+0x48], 0x41060d88 | |
0bcbf496 jnz 0x0bcb0080 ->28 | |
0bcbf49c cmp dword [r12+0x18], +0x01 | |
0bcbf4a2 jbe 0x0bcb0080 ->28 | |
0bcbf4a8 mov esi, [r12+0x8] | |
0bcbf4ad cmp dword [rsi+0xc], -0x05 | |
0bcbf4b1 jnz 0x0bcb0080 ->28 | |
0bcbf4b7 mov ecx, [rsi+0x8] | |
0bcbf4ba mov [rsp+0x38], ecx | |
0bcbf4be cmp ecx, 0x410608f8 | |
0bcbf4c4 jz 0x0bcb0084 ->29 | |
0bcbf4ca cmp ecx, 0x410741f0 | |
0bcbf4d0 jz 0x0bcb0088 ->30 | |
0bcbf4d6 cmp ecx, 0x41060a18 | |
0bcbf4dc jz 0x0bcb008c ->31 | |
0bcbf4e2 cmp ecx, 0x41060870 | |
0bcbf4e8 jz 0x0bcb009d ->32 | |
0bcbf4ee cmp ecx, 0x41063cb0 | |
0bcbf4f4 jz 0x0bcb00a1 ->33 | |
0bcbf4fa cmp ecx, 0x4106e448 | |
0bcbf500 jz 0x0bcb00a5 ->34 | |
0bcbf506 mov esi, [rdx+0x1c] | |
0bcbf509 and esi, [rcx+0x8] | |
0bcbf50c lea esi, [rsi+rsi*2] | |
0bcbf50f shl esi, 0x03 | |
0bcbf512 add esi, [rdx+0x14] | |
0bcbf515 cmp dword [rsi+0xc], -0x05 | |
0bcbf519 jnz 0x0bcbf520 | |
0bcbf51b cmp ecx, [rsi+0x8] | |
0bcbf51e jz 0x0bcbf52c | |
0bcbf520 mov esi, [rsi+0x10] | |
0bcbf523 test esi, esi | |
0bcbf525 jnz 0x0bcbf515 | |
0bcbf527 mov esi, 0x4105e458 | |
0bcbf52c cmp dword [rsi+0x4], -0x03 | |
0bcbf530 jnz 0x0bcb00a9 ->35 | |
0bcbf536 mov esi, 0x419b20e0 | |
0bcbf53b call 0x004223c0 ->lj_tab_dup | |
0bcbf540 mov r10d, eax | |
0bcbf543 mov [rsp+0x44], r10d | |
0bcbf548 mov edi, [0x4105e4b0] | |
0bcbf54f mov esi, [rsp+0x14] | |
0bcbf553 mov ecx, [rsp+0xc] | |
0bcbf557 mov eax, [rsp+0x4c] | |
0bcbf55b mov edx, [r10+0x8] | |
0bcbf55f mov dword [rdx+0x14], 0xfffffff4 | |
0bcbf566 mov [rdx+0x10], r12d | |
0bcbf56a cmp dword [rcx+0x1c], +0x03 | |
0bcbf56e jnz 0x0bcb00ad ->36 | |
0bcbf574 mov ecx, [rcx+0x14] | |
0bcbf577 mov [rsp+0x2c], ecx | |
0bcbf57b mov r11, 0xfffffffb419b0248 | |
0bcbf585 cmp r11, [rcx+0x50] | |
0bcbf589 jnz 0x0bcb00ad ->36 | |
0bcbf58f cmp dword [rcx+0x4c], -0x05 | |
0bcbf593 jnz 0x0bcb00ad ->36 | |
0bcbf599 mov ecx, [rcx+0x48] | |
0bcbf59c mov dword [rdx+0x1c], 0xfffffffb | |
0bcbf5a3 mov [rdx+0x18], ecx | |
0bcbf5a6 mov dword [rdx+0x24], 0xfffffffb | |
0bcbf5ad mov [rdx+0x20], eax | |
0bcbf5b0 mov edx, [rsi+0x1c] | |
0bcbf5b3 and edx, 0x2a54dc55 | |
0bcbf5b9 lea edx, [rdx+rdx*2] | |
0bcbf5bc shl edx, 0x03 | |
0bcbf5bf add edx, [rsi+0x14] | |
0bcbf5c2 cmp dword [rdx+0xc], -0x05 | |
0bcbf5c6 jnz 0x0bcbf5d5 | |
0bcbf5c8 cmp dword [rdx+0x8], 0x419b09b0 | |
0bcbf5cf jz 0x0bcb00b1 ->37 | |
0bcbf5d5 mov edx, [rdx+0x10] | |
0bcbf5d8 test edx, edx | |
0bcbf5da jnz 0x0bcbf5c2 | |
0bcbf5dc cmp dword [rsi+0x10], +0x00 | |
0bcbf5e0 jnz 0x0bcb00b1 ->37 | |
0bcbf5e6 mov edx, 0x4105e448 | |
0bcbf5eb mov dword [rdx+0x4], 0xfffffffb | |
0bcbf5f2 mov dword [rdx], 0x419b09b0 | |
0bcbf5f8 call 0x00422cf0 ->lj_tab_newkey | |
0bcbf5fd mov r9d, eax | |
0bcbf600 mov r11d, [rsp+0x48] | |
0bcbf605 mov r10d, [rsp+0x44] | |
0bcbf60a mov edi, [0x4105e4b0] | |
0bcbf611 mov esi, [rsp+0x40] | |
0bcbf615 mov edx, [rsp+0x3c] | |
0bcbf619 mov eax, [rsp+0x14] | |
0bcbf61d mov dword [r9+0x4], 0xfffffff4 | |
0bcbf625 mov [r9], r10d | |
0bcbf628 test byte [rax+0x4], 0x4 | |
0bcbf62c jz 0x0bcbf645 | |
0bcbf62e and byte [rax+0x4], 0xfb | |
0bcbf632 mov r10d, [0x4105e3f4] | |
0bcbf63a mov [0x4105e3f4], eax | |
0bcbf641 mov [rax+0xc], r10d | |
0bcbf645 cmp dword [r13+0x18], +0x04 | |
0bcbf64a jbe 0x0bcb00b5 ->38 | |
0bcbf650 mov r13d, [r13+0x8] | |
0bcbf654 mov [rsp+0x30], r13d | |
0bcbf659 cmp dword [r13+0x1c], -0x0c | |
0bcbf65e jnz 0x0bcb00b5 ->38 | |
0bcbf664 mov r13d, [r13+0x18] | |
0bcbf668 mov eax, [r11+0x1c] | |
0bcbf66c and eax, 0xce2b6183 | |
0bcbf672 lea eax, [rax+rax*2] | |
0bcbf675 shl eax, 0x03 | |
0bcbf678 add eax, [r11+0x14] | |
0bcbf67c cmp dword [rax+0xc], -0x05 | |
0bcbf680 jnz 0x0bcbf68f | |
0bcbf682 cmp dword [rax+0x8], 0x41060db0 | |
0bcbf689 jz 0x0bcb00b5 ->38 | |
0bcbf68f mov eax, [rax+0x10] | |
0bcbf692 test eax, eax | |
0bcbf694 jnz 0x0bcbf67c | |
0bcbf696 cmp dword [rdx+0x1c], +0x01 | |
0bcbf69a jnz 0x0bcb00b5 ->38 | |
0bcbf6a0 mov edx, [rdx+0x14] | |
0bcbf6a3 mov rax, 0xfffffffb410604c8 | |
0bcbf6ad cmp rax, [rdx+0x20] | |
0bcbf6b1 jnz 0x0bcb00b5 ->38 | |
0bcbf6b7 cmp dword [rdx+0x1c], -0x0c | |
0bcbf6bb jnz 0x0bcb00b5 ->38 | |
0bcbf6c1 mov edx, [rdx+0x18] | |
0bcbf6c4 cmp dword [rdx+0x1c], +0x3f | |
0bcbf6c8 jnz 0x0bcb00b5 ->38 | |
0bcbf6ce mov edx, [rdx+0x14] | |
0bcbf6d1 mov rax, 0xfffffffb41060db0 | |
0bcbf6db cmp rax, [rdx+0x50] | |
0bcbf6df jnz 0x0bcb00b5 ->38 | |
0bcbf6e5 cmp dword [rdx+0x4c], -0x09 | |
0bcbf6e9 jnz 0x0bcb00b5 ->38 | |
0bcbf6ef mov eax, [r11+0x1c] | |
0bcbf6f3 and eax, 0x798a813c | |
0bcbf6f9 lea eax, [rax+rax*2] | |
0bcbf6fc shl eax, 0x03 | |
0bcbf6ff add eax, [r11+0x14] | |
0bcbf703 cmp dword [rax+0xc], -0x05 | |
0bcbf707 jnz 0x0bcbf716 | |
0bcbf709 cmp dword [rax+0x8], 0x41060fb0 | |
0bcbf710 jz 0x0bcb00b5 ->38 | |
0bcbf716 mov eax, [rax+0x10] | |
0bcbf719 test eax, eax | |
0bcbf71b jnz 0x0bcbf703 | |
0bcbf71d mov rax, 0xfffffffb41060fb0 | |
0bcbf727 cmp rax, [rdx+0x5a8] | |
0bcbf72e jnz 0x0bcb00b5 ->38 | |
0bcbf734 cmp dword [rdx+0x5a4], -0x09 | |
0bcbf73b jnz 0x0bcb00b5 ->38 | |
0bcbf741 cmp dword [rdx+0x5a0], 0x41060f18 | |
0bcbf74b jnz 0x0bcb00b5 ->38 | |
0bcbf751 cmp dword [rdx+0x48], 0x41060d88 | |
0bcbf758 jnz 0x0bcb00b5 ->38 | |
0bcbf75e cmp dword [r13+0x18], +0x01 | |
0bcbf763 jbe 0x0bcb00b5 ->38 | |
0bcbf769 mov edx, [r13+0x8] | |
0bcbf76d cmp dword [rdx+0xc], -0x05 | |
0bcbf771 jnz 0x0bcb00b5 ->38 | |
0bcbf777 mov edx, [rdx+0x8] | |
0bcbf77a mov [rsp+0x34], edx | |
0bcbf77e cmp edx, 0x410608f8 | |
0bcbf784 jz 0x0bcb00b9 ->39 | |
0bcbf78a cmp edx, 0x410741f0 | |
0bcbf790 jz 0x0bcb00bd ->40 | |
0bcbf796 cmp edx, 0x41060a18 | |
0bcbf79c jz 0x0bcb00c1 ->41 | |
0bcbf7a2 cmp edx, 0x41060870 | |
0bcbf7a8 jz 0x0bcb00c5 ->42 | |
0bcbf7ae cmp edx, 0x41063cb0 | |
0bcbf7b4 jz 0x0bcb00c9 ->43 | |
0bcbf7ba cmp edx, 0x4106e448 | |
0bcbf7c0 jz 0x0bcb00cd ->44 | |
0bcbf7c6 mov r12d, [rsi+0x1c] | |
0bcbf7ca and r12d, [rdx+0x8] | |
0bcbf7ce lea r12d, [r12+r12*2] | |
0bcbf7d2 shl r12d, 0x03 | |
0bcbf7d6 add r12d, [rsi+0x14] | |
0bcbf7da cmp dword [r12+0xc], -0x05 | |
0bcbf7e0 jnz 0x0bcbf7e9 | |
0bcbf7e2 cmp edx, [r12+0x8] | |
0bcbf7e7 jz 0x0bcbf7f9 | |
0bcbf7e9 mov r12d, [r12+0x10] | |
0bcbf7ee test r12d, r12d | |
0bcbf7f1 jnz 0x0bcbf7da | |
0bcbf7f3 mov r12d, 0x4105e458 | |
0bcbf7f9 cmp dword [r12+0x4], -0x03 | |
0bcbf7ff jnz 0x0bcb00d1 ->45 | |
0bcbf805 mov esi, 0x419b20e0 | |
0bcbf80a call 0x004223c0 ->lj_tab_dup | |
0bcbf80f mov edi, [0x4105e4b0] | |
0bcbf816 mov edx, [rsp+0x30] | |
0bcbf81a mov ecx, [rsp+0x2c] | |
0bcbf81e mov r11d, [rax+0x8] | |
0bcbf822 mov dword [r11+0x14], 0xfffffff4 | |
0bcbf82a mov [r11+0x10], r13d | |
0bcbf82e cmp dword [r15+0x1c], +0x01 | |
0bcbf833 jnz 0x0bcb00d5 ->46 | |
0bcbf839 mov r12d, [r15+0x14] | |
0bcbf83d mov r10, 0xfffffffb419b0248 | |
0bcbf847 cmp r10, [r12+0x20] | |
0bcbf84c jnz 0x0bcb00d5 ->46 | |
0bcbf852 cmp dword [r12+0x1c], -0x05 | |
0bcbf858 jnz 0x0bcb00d5 ->46 | |
0bcbf85e mov r12d, [r12+0x18] | |
0bcbf863 mov dword [r11+0x1c], 0xfffffffb | |
0bcbf86b mov [r11+0x18], r12d | |
0bcbf86f cmp dword [r14+0x1c], +0x01 | |
0bcbf874 jnz 0x0bcb00d9 ->47 | |
0bcbf87a mov r12d, [r14+0x14] | |
0bcbf87e mov r10, 0xfffffffb419b0248 | |
0bcbf888 cmp r10, [r12+0x20] | |
0bcbf88d jnz 0x0bcb00d9 ->47 | |
0bcbf893 cmp dword [r12+0x1c], -0x05 | |
0bcbf899 jnz 0x0bcb00d9 ->47 | |
0bcbf89f mov r12d, [r12+0x18] | |
0bcbf8a4 mov dword [r11+0x24], 0xfffffffb | |
0bcbf8ac mov [r11+0x20], r12d | |
0bcbf8b0 mov r11, 0xfffffffb419b09b0 | |
0bcbf8ba cmp r11, [rcx+0x20] | |
0bcbf8be jnz 0x0bcb00dd ->48 | |
0bcbf8c4 mov dword [rcx+0x1c], 0xfffffff4 | |
0bcbf8cb mov [rcx+0x18], eax | |
0bcbf8ce cmp dword [rdx+0x24], -0x0c | |
0bcbf8d2 jnz 0x0bcb00e1 ->49 | |
0bcbf8d8 mov r10d, [rdx+0x20] | |
0bcbf8dc mov [rsp+0x24], r10d | |
0bcbf8e1 cmp dword [r10+0x18], +0x01 | |
0bcbf8e6 jbe 0x0bcb00e1 ->49 | |
0bcbf8ec mov edx, [r10+0x8] | |
0bcbf8f0 cmp dword [rdx+0xc], -0x05 | |
0bcbf8f4 jnz 0x0bcb00e1 ->49 | |
0bcbf8fa mov r9d, [rdx+0x8] | |
0bcbf8fe mov [rsp+0x20], r9d | |
0bcbf903 cmp r9d, 0x410608f8 | |
0bcbf90a jz 0x0bcb00e5 ->50 | |
0bcbf910 cmp r9d, 0x410741f0 | |
0bcbf917 jz 0x0bcb00e9 ->51 | |
0bcbf91d cmp r9d, 0x41060a18 | |
0bcbf924 jz 0x0bcb00ed ->52 | |
0bcbf92a cmp r9d, 0x41060870 | |
0bcbf931 jnz 0x0bcb00f1 ->53 | |
0bcbf937 mov esi, 0x419b23c0 | |
0bcbf93c call 0x004223c0 ->lj_tab_dup | |
0bcbf941 mov r13d, eax | |
0bcbf944 mov r8d, [rsp+0x1c] | |
0bcbf949 mov edi, [r13+0x8] | |
0bcbf94d mov dword [rdi+0x14], 0xfffffffb | |
0bcbf954 mov [rdi+0x10], r12d | |
0bcbf958 mov edi, [0x4105e4b0] | |
0bcbf95f mov dword [r8+0x1c], 0xfffffff4 | |
0bcbf967 mov [r8+0x18], r13d | |
0bcbf96b cmp dword [rbx+0x18], +0x04 | |
0bcbf96f jbe 0x0bcb00f9 ->55 | |
0bcbf975 mov ebx, [rbx+0x8] | |
0bcbf978 cmp dword [rbx+0x24], -0x0c | |
0bcbf97c jnz 0x0bcb00f9 ->55 | |
0bcbf982 mov ebx, [rbx+0x20] | |
0bcbf985 cmp dword [rbp+0x34], -0x0c | |
0bcbf989 jnz 0x0bcb00f9 ->55 | |
0bcbf98f mov ebp, [rbp+0x30] | |
0bcbf992 cmp dword [rbx+0x18], +0x01 | |
0bcbf996 jbe 0x0bcb00f9 ->55 | |
0bcbf99c mov r13d, [rbx+0x8] | |
0bcbf9a0 cmp dword [r13+0xc], -0x05 | |
0bcbf9a5 jnz 0x0bcb00f9 ->55 | |
0bcbf9ab mov r13d, [r13+0x8] | |
0bcbf9af cmp r13d, 0x410608f8 | |
0bcbf9b6 jz 0x0bcb00fd ->56 | |
0bcbf9bc cmp r13d, 0x410741f0 | |
0bcbf9c3 jz 0x0bcb0101 ->57 | |
0bcbf9c9 cmp r13d, 0x41060a18 | |
0bcbf9d0 jz 0x0bcb0105 ->58 | |
0bcbf9d6 cmp r13d, 0x41060870 | |
0bcbf9dd jnz 0x0bcb0109 ->59 | |
0bcbf9e3 mov esi, 0x419b23c0 | |
0bcbf9e8 call 0x004223c0 ->lj_tab_dup | |
0bcbf9ed mov [rsp+0x8], eax | |
0bcbf9f1 mov edi, [0x4105e4b0] | |
0bcbf9f8 mov eax, [rax+0x8] | |
0bcbf9fb mov dword [rax+0x14], 0xfffffffb | |
0bcbfa02 mov [rax+0x10], r12d | |
0bcbfa06 mov esi, [rbp+0x1c] | |
0bcbfa09 and esi, 0x2a54dc55 | |
0bcbfa0f lea esi, [rsi+rsi*2] | |
0bcbfa12 shl esi, 0x03 | |
0bcbfa15 add esi, [rbp+0x14] | |
0bcbfa18 cmp dword [rsi+0xc], -0x05 | |
0bcbfa1c jnz 0x0bcbfa2b | |
0bcbfa1e cmp dword [rsi+0x8], 0x419b09b0 | |
0bcbfa25 jz 0x0bcb0111 ->61 | |
0bcbfa2b mov esi, [rsi+0x10] | |
0bcbfa2e test esi, esi | |
0bcbfa30 jnz 0x0bcbfa18 | |
0bcbfa32 cmp dword [rbp+0x10], +0x00 | |
0bcbfa36 jnz 0x0bcb0111 ->61 | |
0bcbfa3c mov edx, 0x4105e448 | |
0bcbfa41 mov dword [rdx+0x4], 0xfffffffb | |
0bcbfa48 mov dword [rdx], 0x419b09b0 | |
0bcbfa4e mov esi, ebp | |
0bcbfa50 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfa55 mov ebx, eax | |
0bcbfa57 mov edx, [0x4105e4b4] | |
0bcbfa5e mov eax, [rsp+0x8] | |
0bcbfa62 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfa69 mov [rbx], eax | |
0bcbfa6b test byte [rbp+0x4], 0x4 | |
0bcbfa6f jz 0x0bcbfa86 | |
0bcbfa71 and byte [rbp+0x4], 0xfb | |
0bcbfa75 mov edi, [0x4105e3f4] | |
0bcbfa7c mov [0x4105e3f4], ebp | |
0bcbfa83 mov [rbp+0xc], edi | |
0bcbfa86 cmp dword [rdx-0x4], 0x419b1974 | |
0bcbfa8d jnz 0x0bcb0115 ->62 | |
0bcbfa93 add edx, -0x48 | |
0bcbfa96 mov [0x4105e4b4], edx | |
0bcbfa9d add rsp, +0x70 | |
0bcbfaa1 jmp 0x0bcbe8e1 | |
---- TRACE 3 stop -> down-recursion | |
---- TRACE 3 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 4 start 2/4 ssa.lua:70 | |
0065 UGET 5 2 ; finish_goto | |
0066 MOV 6 1 | |
0067 MOV 7 3 | |
0068 CALL 5 1 3 | |
0000 . FUNCF 4 ; ssa.lua:52 | |
0001 . TDUP 2 1 | |
0002 . TGETS 3 1 2 ; "label" | |
0003 . TSETB 3 2 2 | |
0004 . TSETS 2 0 0 ; "control" | |
0005 . RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 JLOOP 1 3 | |
---- TRACE 4 IR | |
0001 rbx [32mstr[m SLOAD #5 PI | |
.... SNAP #0 [ ---- ---- ---- ---- ---- [32m0001[m ] | |
0002 [1mfun[m SLOAD #0 R | |
0003 > [1mfun[m EQ 0002 [1mssa.lua:55[m | |
0004 rbp > [31mtab[m SLOAD #2 T | |
0005 r15 > [31mtab[m SLOAD #4 T | |
0006 [8] > [31mtab[m TDUP [31m{0x419b23c0}[m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 r15 p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"label"[m @1 | |
0011 r15 > [32mstr[m HLOAD 0010 | |
0012 rax p32 FLOAD 0006 tab.array | |
0013 p32 AREF 0012 [35m+2 [m | |
0014 [32mstr[m ASTORE 0013 0011 | |
.... SNAP #1 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0001[m [1mssa.lua:52[m|[31m0004[m ---- [31m0006[m ---- ] | |
0015 rsi p32 HREF 0004 [32m"control"[m | |
0016 > p32 EQ 0015 [0x4105e458] | |
0017 [31mtab[m FLOAD 0004 tab.meta | |
0018 > [31mtab[m EQ 0017 [31m[NULL][m | |
0019 rbx p32 NEWREF 0004 [32m"control"[m | |
0020 [31mtab[m HSTORE 0019 0006 | |
0021 nil TBAR 0004 | |
.... SNAP #2 [ [1mssa.lua:55[m|---- ] | |
---- TRACE 4 mcode 329 | |
0bcbe791 mov dword [0x4105e410], 0x4 | |
0bcbe79c mov edi, [0x4105e3d8] | |
0bcbe7a3 cmp edi, [0x4105e3dc] | |
0bcbe7aa jb 0x0bcbe7c3 | |
0bcbe7ac mov esi, 0x1 | |
0bcbe7b1 mov edi, 0x4105e3b8 | |
0bcbe7b6 call 0x00421730 ->lj_gc_step_jit | |
0bcbe7bb test eax, eax | |
0bcbe7bd jnz 0x0bcb0010 ->0 | |
0bcbe7c3 mov edi, [0x4105e4b0] | |
0bcbe7ca mov edx, [0x4105e4b4] | |
0bcbe7d1 cmp dword [rdx-0x8], 0x419b31b0 | |
0bcbe7d8 jnz 0x0bcb0010 ->0 | |
0bcbe7de cmp dword [rdx+0xc], -0x0c | |
0bcbe7e2 jnz 0x0bcb0010 ->0 | |
0bcbe7e8 mov ebp, [rdx+0x8] | |
0bcbe7eb cmp dword [rdx+0x1c], -0x0c | |
0bcbe7ef jnz 0x0bcb0010 ->0 | |
0bcbe7f5 mov r15d, [rdx+0x18] | |
0bcbe7f9 mov esi, 0x419b23c0 | |
0bcbe7fe call 0x004223c0 ->lj_tab_dup | |
0bcbe803 mov [rsp+0x8], eax | |
0bcbe807 mov edi, [0x4105e4b0] | |
0bcbe80e cmp dword [r15+0x1c], +0x01 | |
0bcbe813 jnz 0x0bcb0010 ->0 | |
0bcbe819 mov r15d, [r15+0x14] | |
0bcbe81d mov rsi, 0xfffffffb419b0248 | |
0bcbe827 cmp rsi, [r15+0x20] | |
0bcbe82b jnz 0x0bcb0010 ->0 | |
0bcbe831 cmp dword [r15+0x1c], -0x05 | |
0bcbe836 jnz 0x0bcb0010 ->0 | |
0bcbe83c mov r15d, [r15+0x18] | |
0bcbe840 mov eax, [rax+0x8] | |
0bcbe843 mov dword [rax+0x14], 0xfffffffb | |
0bcbe84a mov [rax+0x10], r15d | |
0bcbe84e mov esi, [rbp+0x1c] | |
0bcbe851 and esi, 0x2a54dc55 | |
0bcbe857 lea esi, [rsi+rsi*2] | |
0bcbe85a shl esi, 0x03 | |
0bcbe85d add esi, [rbp+0x14] | |
0bcbe860 cmp dword [rsi+0xc], -0x05 | |
0bcbe864 jnz 0x0bcbe873 | |
0bcbe866 cmp dword [rsi+0x8], 0x419b09b0 | |
0bcbe86d jz 0x0bcb0014 ->1 | |
0bcbe873 mov esi, [rsi+0x10] | |
0bcbe876 test esi, esi | |
0bcbe878 jnz 0x0bcbe860 | |
0bcbe87a cmp dword [rbp+0x10], +0x00 | |
0bcbe87e jnz 0x0bcb0014 ->1 | |
0bcbe884 mov edx, 0x4105e448 | |
0bcbe889 mov dword [rdx+0x4], 0xfffffffb | |
0bcbe890 mov dword [rdx], 0x419b09b0 | |
0bcbe896 mov esi, ebp | |
0bcbe898 call 0x00422cf0 ->lj_tab_newkey | |
0bcbe89d mov ebx, eax | |
0bcbe89f mov edx, [0x4105e4b4] | |
0bcbe8a6 mov eax, [rsp+0x8] | |
0bcbe8aa mov dword [rbx+0x4], 0xfffffff4 | |
0bcbe8b1 mov [rbx], eax | |
0bcbe8b3 test byte [rbp+0x4], 0x4 | |
0bcbe8b7 jz 0x0bcbe8ce | |
0bcbe8b9 and byte [rbp+0x4], 0xfb | |
0bcbe8bd mov edi, [0x4105e3f4] | |
0bcbe8c4 mov [0x4105e3f4], ebp | |
0bcbe8cb mov [rbp+0xc], edi | |
0bcbe8ce mov dword [rdx-0x8], 0x419b31b0 | |
0bcbe8d5 jmp 0x0bcbe8e1 | |
---- TRACE 4 stop -> 3 | |
---- TRACE 3 exit 1 | |
---- TRACE 3 exit 3 | |
---- TRACE 2 exit 8 | |
---- TRACE 3 exit 4 |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x41afa414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x40077138}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x41afa458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x41afa410], 0x1 | |
0bcbfe53 mov edi, [0x41afa3d8] | |
0bcbfe5a cmp edi, [0x41afa3dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x41afa3b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x41afa4b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x4006abc0] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x41afa414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x41afa4b0] | |
0bcbfee0 mov esi, 0x40077138 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x41afa4b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x41afa4b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb400763b0 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x41afa448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x41afa4b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x41afa3f4] | |
0bcbffcf mov [0x41afa3f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x40077dd8 | |
0bcbffee mov r14d, 0x41afb008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0070 ISNES 4 12 ; "match" | |
0071 JMP 5 => 0077 | |
0077 ISNES 4 14 ; "fail" | |
0078 JMP 5 => 0084 | |
0084 GGET 5 0 ; "assert" | |
0085 UGET 6 4 ; relops | |
0086 TGETV 6 6 4 | |
0087 CALL 5 1 2 | |
0000 . FUNCC ; assert | |
0088 UGET 5 5 ; finish_if | |
0089 MOV 6 1 | |
0090 MOV 7 0 | |
0091 MOV 8 2 | |
0092 MOV 9 3 | |
0093 CALL 5 1 5 | |
0000 . FUNCF 6 ; ssa.lua:49 | |
0001 . TDUP 4 1 | |
0002 . TSETB 1 4 2 | |
0003 . TGETS 5 2 2 ; "label" | |
0004 . TSETB 5 4 3 | |
0005 . TGETS 5 3 2 ; "label" | |
0006 . TSETB 5 4 4 | |
0007 . TSETS 4 0 0 ; "control" | |
0008 . RET0 0 1 | |
0094 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 r15 [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x41afa458] | |
0005 rbx [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 rbx p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 rbx > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 rbx p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x41afa458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 r15 > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 rbx > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m NE 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [32mstr[m NE 0028 [32m"match"[m | |
.... SNAP #6 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0034 > [32mstr[m NE 0028 [32m"fail"[m | |
.... SNAP #7 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0035 r14 > p32 UREFC 0001 #4 | |
0036 r13 > [31mtab[m ULOAD 0035 | |
0037 r14 p32 HREF 0036 0028 | |
0038 > tru HLOAD 0037 | |
0039 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0040 rbp > [31mtab[m SLOAD #2 T | |
0041 r13 > [31mtab[m SLOAD #3 T | |
0042 r14 > [31mtab[m SLOAD #4 T | |
0043 [8] > [31mtab[m TDUP [31m{0x400782e8}[m | |
0044 rax p32 FLOAD 0043 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 [31mtab[m ASTORE 0045 0021 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- [31m0041[m [31m0042[m [31m0043[m ] | |
0047 [35mint[m FLOAD 0041 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+1 [m | |
0049 r15 p32 FLOAD 0041 tab.node | |
0050 > p32 HREFK 0049 [32m"label"[m @1 | |
0051 r15 > [32mstr[m HLOAD 0050 | |
0052 p32 AREF 0044 [35m+3 [m | |
0053 [32mstr[m ASTORE 0052 0051 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- [31m0042[m [31m0043[m ---- ] | |
0054 [35mint[m FLOAD 0042 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 r15 p32 FLOAD 0042 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 r15 > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0044 [35m+4 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- ---- [31m0043[m ---- ] | |
0061 rsi p32 HREF 0040 [32m"control"[m | |
0062 > p32 EQ 0061 [0x41afa458] | |
0063 [31mtab[m FLOAD 0040 tab.meta | |
0064 > [31mtab[m EQ 0063 [31m[NULL][m | |
0065 rbx p32 NEWREF 0040 [32m"control"[m | |
0066 [31mtab[m HSTORE 0065 0043 | |
0067 nil TBAR 0040 | |
.... SNAP #11 [ [1mssa.lua:55[m|] | |
---- TRACE 2 mcode 916 | |
0bcbfaa9 mov dword [0x41afa410], 0x2 | |
0bcbfab4 mov edi, [0x41afa3d8] | |
0bcbfabb cmp edi, [0x41afa3dc] | |
0bcbfac2 jb 0x0bcbfadb | |
0bcbfac4 mov esi, 0x1 | |
0bcbfac9 mov edi, 0x41afa3b8 | |
0bcbface call 0x00421730 ->lj_gc_step_jit | |
0bcbfad3 test eax, eax | |
0bcbfad5 jnz 0x0bcb0010 ->0 | |
0bcbfadb mov edi, [0x41afa4b0] | |
0bcbfae2 mov edx, [0x41afa4b4] | |
0bcbfae9 mov ebp, [rdx-0x8] | |
0bcbfaec mov r15d, [rbp+0x8] | |
0bcbfaf0 mov esi, [r15+0x1c] | |
0bcbfaf4 and esi, 0xce2b6183 | |
0bcbfafa lea esi, [rsi+rsi*2] | |
0bcbfafd shl esi, 0x03 | |
0bcbfb00 add esi, [r15+0x14] | |
0bcbfb04 cmp dword [rsi+0xc], -0x05 | |
0bcbfb08 jnz 0x0bcbfb17 | |
0bcbfb0a cmp dword [rsi+0x8], 0x41afcdb0 | |
0bcbfb11 jz 0x0bcb0010 ->0 | |
0bcbfb17 mov esi, [rsi+0x10] | |
0bcbfb1a test esi, esi | |
0bcbfb1c jnz 0x0bcbfb04 | |
0bcbfb1e mov ebx, [r15+0x10] | |
0bcbfb22 test ebx, ebx | |
0bcbfb24 jz 0x0bcb0010 ->0 | |
0bcbfb2a cmp dword [rbx+0x1c], +0x01 | |
0bcbfb2e jnz 0x0bcb0010 ->0 | |
0bcbfb34 mov ebx, [rbx+0x14] | |
0bcbfb37 mov rsi, 0xfffffffb41afc4c8 | |
0bcbfb41 cmp rsi, [rbx+0x20] | |
0bcbfb45 jnz 0x0bcb0010 ->0 | |
0bcbfb4b cmp dword [rbx+0x1c], -0x0c | |
0bcbfb4f jnz 0x0bcb0010 ->0 | |
0bcbfb55 mov ebx, [rbx+0x18] | |
0bcbfb58 cmp dword [rbx+0x1c], +0x3f | |
0bcbfb5c jnz 0x0bcb0010 ->0 | |
0bcbfb62 mov ebx, [rbx+0x14] | |
0bcbfb65 mov rsi, 0xfffffffb41afcdb0 | |
0bcbfb6f cmp rsi, [rbx+0x50] | |
0bcbfb73 jnz 0x0bcb0010 ->0 | |
0bcbfb79 cmp dword [rbx+0x4c], -0x09 | |
0bcbfb7d jnz 0x0bcb0010 ->0 | |
0bcbfb83 mov esi, [r15+0x1c] | |
0bcbfb87 and esi, 0x798a813c | |
0bcbfb8d lea esi, [rsi+rsi*2] | |
0bcbfb90 shl esi, 0x03 | |
0bcbfb93 add esi, [r15+0x14] | |
0bcbfb97 cmp dword [rsi+0xc], -0x05 | |
0bcbfb9b jnz 0x0bcbfbaa | |
0bcbfb9d cmp dword [rsi+0x8], 0x41afcfb0 | |
0bcbfba4 jz 0x0bcb0010 ->0 | |
0bcbfbaa mov esi, [rsi+0x10] | |
0bcbfbad test esi, esi | |
0bcbfbaf jnz 0x0bcbfb97 | |
0bcbfbb1 mov rsi, 0xfffffffb41afcfb0 | |
0bcbfbbb cmp rsi, [rbx+0x5a8] | |
0bcbfbc2 jnz 0x0bcb0010 ->0 | |
0bcbfbc8 cmp dword [rbx+0x5a4], -0x09 | |
0bcbfbcf jnz 0x0bcb0010 ->0 | |
0bcbfbd5 cmp dword [rdx+0x4], -0x0c | |
0bcbfbd9 jnz 0x0bcb0010 ->0 | |
0bcbfbdf mov r15d, [rdx] | |
0bcbfbe2 cmp dword [rbx+0x5a0], 0x41afcf18 | |
0bcbfbec jnz 0x0bcb0010 ->0 | |
0bcbfbf2 cmp dword [rbx+0x48], 0x41afcd88 | |
0bcbfbf9 jnz 0x0bcb0010 ->0 | |
0bcbfbff cmp dword [r15+0x18], +0x01 | |
0bcbfc04 jbe 0x0bcb0010 ->0 | |
0bcbfc0a mov ebx, [r15+0x8] | |
0bcbfc0e cmp dword [rbx+0xc], -0x05 | |
0bcbfc12 jnz 0x0bcb0010 ->0 | |
0bcbfc18 mov ebx, [rbx+0x8] | |
0bcbfc1b cmp ebx, 0x41afc8f8 | |
0bcbfc21 jz 0x0bcb0014 ->1 | |
0bcbfc27 cmp ebx, 0x40066fc8 | |
0bcbfc2d jz 0x0bcb0018 ->2 | |
0bcbfc33 cmp ebx, 0x41afca18 | |
0bcbfc39 jz 0x0bcb001c ->3 | |
0bcbfc3f cmp ebx, 0x41afc870 | |
0bcbfc45 jz 0x0bcb0020 ->4 | |
0bcbfc4b cmp ebx, 0x41affcb0 | |
0bcbfc51 jz 0x0bcb0024 ->5 | |
0bcbfc57 cmp ebx, 0x41b177f8 | |
0bcbfc5d jz 0x0bcb0028 ->6 | |
0bcbfc63 mov esi, [rbp+0x24] | |
0bcbfc66 cmp byte [rsi+0x6], 0x1 | |
0bcbfc6a jnz 0x0bcb002c ->7 | |
0bcbfc70 lea r14d, [rsi+0x8] | |
0bcbfc74 cmp dword [r14+0x4], -0x0c | |
0bcbfc79 jnz 0x0bcb002c ->7 | |
0bcbfc7f mov r13d, [r14] | |
0bcbfc82 mov r14d, [r13+0x1c] | |
0bcbfc86 and r14d, [rbx+0x8] | |
0bcbfc8a lea r14d, [r14+r14*2] | |
0bcbfc8e shl r14d, 0x03 | |
0bcbfc92 add r14d, [r13+0x14] | |
0bcbfc96 cmp dword [r14+0xc], -0x05 | |
0bcbfc9b jnz 0x0bcbfca3 | |
0bcbfc9d cmp ebx, [r14+0x8] | |
0bcbfca1 jz 0x0bcbfcb2 | |
0bcbfca3 mov r14d, [r14+0x10] | |
0bcbfca7 test r14d, r14d | |
0bcbfcaa jnz 0x0bcbfc96 | |
0bcbfcac mov r14d, 0x41afa458 | |
0bcbfcb2 cmp dword [r14+0x4], -0x03 | |
0bcbfcb7 jnz 0x0bcb002c ->7 | |
0bcbfcbd cmp ebp, 0x41b0eb78 | |
0bcbfcc3 jnz 0x0bcb002c ->7 | |
0bcbfcc9 cmp dword [rdx+0xc], -0x0c | |
0bcbfccd jnz 0x0bcb002c ->7 | |
0bcbfcd3 mov ebp, [rdx+0x8] | |
0bcbfcd6 cmp dword [rdx+0x14], -0x0c | |
0bcbfcda jnz 0x0bcb002c ->7 | |
0bcbfce0 mov r13d, [rdx+0x10] | |
0bcbfce4 cmp dword [rdx+0x1c], -0x0c | |
0bcbfce8 jnz 0x0bcb002c ->7 | |
0bcbfcee mov r14d, [rdx+0x18] | |
0bcbfcf2 mov esi, 0x400782e8 | |
0bcbfcf7 call 0x004223c0 ->lj_tab_dup | |
0bcbfcfc mov [rsp+0x8], eax | |
0bcbfd00 mov edi, [0x41afa4b0] | |
0bcbfd07 mov eax, [rax+0x8] | |
0bcbfd0a mov dword [rax+0x14], 0xfffffff4 | |
0bcbfd11 mov [rax+0x10], r15d | |
0bcbfd15 cmp dword [r13+0x1c], +0x01 | |
0bcbfd1a jnz 0x0bcb0030 ->8 | |
0bcbfd20 mov r15d, [r13+0x14] | |
0bcbfd24 mov rsi, 0xfffffffb40076450 | |
0bcbfd2e cmp rsi, [r15+0x20] | |
0bcbfd32 jnz 0x0bcb0030 ->8 | |
0bcbfd38 cmp dword [r15+0x1c], -0x05 | |
0bcbfd3d jnz 0x0bcb0030 ->8 | |
0bcbfd43 mov r15d, [r15+0x18] | |
0bcbfd47 mov dword [rax+0x1c], 0xfffffffb | |
0bcbfd4e mov [rax+0x18], r15d | |
0bcbfd52 cmp dword [r14+0x1c], +0x01 | |
0bcbfd57 jnz 0x0bcb0034 ->9 | |
0bcbfd5d mov r15d, [r14+0x14] | |
0bcbfd61 mov rsi, 0xfffffffb40076450 | |
0bcbfd6b cmp rsi, [r15+0x20] | |
0bcbfd6f jnz 0x0bcb0034 ->9 | |
0bcbfd75 cmp dword [r15+0x1c], -0x05 | |
0bcbfd7a jnz 0x0bcb0034 ->9 | |
0bcbfd80 mov r15d, [r15+0x18] | |
0bcbfd84 mov dword [rax+0x24], 0xfffffffb | |
0bcbfd8b mov [rax+0x20], r15d | |
0bcbfd8f mov esi, [rbp+0x1c] | |
0bcbfd92 and esi, 0x2a54dc55 | |
0bcbfd98 lea esi, [rsi+rsi*2] | |
0bcbfd9b shl esi, 0x03 | |
0bcbfd9e add esi, [rbp+0x14] | |
0bcbfda1 cmp dword [rsi+0xc], -0x05 | |
0bcbfda5 jnz 0x0bcbfdb4 | |
0bcbfda7 cmp dword [rsi+0x8], 0x40076bb8 | |
0bcbfdae jz 0x0bcb0038 ->10 | |
0bcbfdb4 mov esi, [rsi+0x10] | |
0bcbfdb7 test esi, esi | |
0bcbfdb9 jnz 0x0bcbfda1 | |
0bcbfdbb cmp dword [rbp+0x10], +0x00 | |
0bcbfdbf jnz 0x0bcb0038 ->10 | |
0bcbfdc5 mov edx, 0x41afa448 | |
0bcbfdca mov dword [rdx+0x4], 0xfffffffb | |
0bcbfdd1 mov dword [rdx], 0x40076bb8 | |
0bcbfdd7 mov esi, ebp | |
0bcbfdd9 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfdde mov ebx, eax | |
0bcbfde0 mov edx, [0x41afa4b4] | |
0bcbfde7 mov eax, [rsp+0x8] | |
0bcbfdeb mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfdf2 mov [rbx], eax | |
0bcbfdf4 test byte [rbp+0x4], 0x4 | |
0bcbfdf8 jz 0x0bcbfe0f | |
0bcbfdfa and byte [rbp+0x4], 0xfb | |
0bcbfdfe mov edi, [0x41afa3f4] | |
0bcbfe05 mov [0x41afa3f4], ebp | |
0bcbfe0c mov [rbp+0xc], edi | |
0bcbfe0f mov eax, [0x41afa4b0] | |
0bcbfe16 mov eax, [rax+0x20] | |
0bcbfe19 sub eax, edx | |
0bcbfe1b cmp eax, +0x68 | |
0bcbfe1e jb 0x0bcb003c ->11 | |
0bcbfe24 mov dword [rdx-0x8], 0x41b0eb78 | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x40077c18 | |
0bcbfe32 mov r14d, 0x41afb008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 5 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 2 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 3 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 3 start 2/1 ssa.lua:59 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0079 . UGET 5 3 ; finish_return | |
0080 . MOV 6 1 | |
0081 . TDUP 7 15 | |
0082 . CALL 5 1 3 | |
0000 . . FUNCF 3 ; ssa.lua:46 | |
0001 . . TDUP 2 1 | |
0002 . . TSETB 1 2 2 | |
0003 . . TSETS 2 0 0 ; "control" | |
0004 . . RET0 0 1 | |
0083 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 abort ssa.lua:79 -- down-recursion, restarting | |
---- TRACE 3 start ssa.lua:79 | |
0094 RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0030 . UGET 7 1 ; compile_bool | |
0031 . TGETB 8 0 4 | |
0032 . MOV 9 6 | |
0033 . MOV 10 2 | |
0034 . MOV 11 3 | |
0035 . CALL 7 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0065 . . UGET 5 2 ; finish_goto | |
0066 . . MOV 6 1 | |
0067 . . MOV 7 3 | |
0068 . . CALL 5 1 3 | |
0000 . . . FUNCF 4 ; ssa.lua:52 | |
0001 . . . TDUP 2 1 | |
0002 . . . TGETS 3 1 2 ; "label" | |
0003 . . . TSETB 3 2 2 | |
0004 . . . TSETS 2 0 0 ; "control" | |
0005 . . . RET0 0 1 | |
0069 . . JMP 5 => 0094 | |
0094 . . RET0 0 1 | |
0036 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 abort ssa.lua:79 -- retry recording | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 3 start 2/1 ssa.lua:59 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0039 . TGETB 5 0 2 | |
0040 . TGETB 6 0 3 | |
0041 . TGETB 7 0 4 | |
0042 . GGET 8 2 ; "table" | |
0043 . TGETS 8 8 5 ; "insert" | |
0044 . TGETS 9 1 6 ; "bindings" | |
0045 . TDUP 10 7 | |
0046 . TSETS 5 10 8 ; "name" | |
0047 . TSETS 6 10 9 ; "value" | |
0048 . CALL 8 1 3 | |
0000 . . FUNCC ; table.insert | |
0049 . UGET 8 1 ; compile_bool | |
0050 . MOV 9 7 | |
0051 . MOV 10 1 | |
0052 . MOV 11 2 | |
0053 . MOV 12 3 | |
0054 . CALL 8 1 5 | |
0000 . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0014 . . UGET 5 0 ; add_block | |
0015 . . CALL 5 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0016 . . UGET 6 0 ; add_block | |
0017 . . CALL 6 2 1 | |
0000 . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . UGET 0 0 ; label_counter | |
0002 . . . ADDVN 0 0 0 ; 1 | |
0003 . . . USETV 0 0 ; label_counter | |
0004 . . . KSTR 0 0 ; "L" | |
0005 . . . UGET 1 0 ; label_counter | |
0006 . . . CAT 0 0 1 | |
0007 . . . TDUP 1 1 | |
0008 . . . TNEW 2 0 | |
0009 . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . TSETS 0 1 3 ; "label" | |
0011 . . . UGET 2 1 ; ssa | |
0012 . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . TSETV 1 2 0 | |
0014 . . . RET1 1 2 | |
0018 . . UGET 7 1 ; compile_bool | |
0019 . . TGETB 8 0 2 | |
0020 . . MOV 9 1 | |
0021 . . MOV 10 5 | |
0022 . . MOV 11 6 | |
0023 . . CALL 7 1 5 | |
0000 . . . JFUNCF 13 2 ; ssa.lua:55 | |
0001 . . . GGET 4 0 ; "assert" | |
0002 . . . GGET 5 1 ; "type" | |
0003 . . . MOV 6 0 | |
0004 . . . CALL 5 2 2 | |
0000 . . . . FUNCC ; type | |
0005 . . . ISEQS 5 2 ; "table" | |
0006 . . . JMP 5 => 0009 | |
0009 . . . KPRI 5 2 | |
0010 . . . CALL 4 1 2 | |
0000 . . . . FUNCC ; assert | |
0011 . . . TGETB 4 0 1 | |
0012 . . . ISNES 4 3 ; "if" | |
0013 . . . JMP 5 => 0037 | |
0014 . . . UGET 5 0 ; add_block | |
0015 . . . CALL 5 2 1 | |
0000 . . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . . UGET 0 0 ; label_counter | |
0002 . . . . ADDVN 0 0 0 ; 1 | |
0003 . . . . USETV 0 0 ; label_counter | |
0004 . . . . KSTR 0 0 ; "L" | |
0005 . . . . UGET 1 0 ; label_counter | |
0006 . . . . CAT 0 0 1 | |
0007 . . . . TDUP 1 1 | |
0008 . . . . TNEW 2 0 | |
0009 . . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . . TSETS 0 1 3 ; "label" | |
0011 . . . . UGET 2 1 ; ssa | |
0012 . . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . . TSETV 1 2 0 | |
0014 . . . . RET1 1 2 | |
0016 . . . UGET 6 0 ; add_block | |
0017 . . . CALL 6 2 1 | |
0000 . . . . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . . . . UGET 0 0 ; label_counter | |
0002 . . . . ADDVN 0 0 0 ; 1 | |
0003 . . . . USETV 0 0 ; label_counter | |
0004 . . . . KSTR 0 0 ; "L" | |
0005 . . . . UGET 1 0 ; label_counter | |
0006 . . . . CAT 0 0 1 | |
0007 . . . . TDUP 1 1 | |
0008 . . . . TNEW 2 0 | |
0009 . . . . TSETS 2 1 2 ; "bindings" | |
0010 . . . . TSETS 0 1 3 ; "label" | |
0011 . . . . UGET 2 1 ; ssa | |
0012 . . . . TGETS 2 2 4 ; "blocks" | |
0013 . . . . TSETV 1 2 0 | |
0014 . . . . RET1 1 2 | |
0018 . . . UGET 7 1 ; compile_bool | |
0019 . . . TGETB 8 0 2 | |
0020 . . . MOV 9 1 | |
0021 . . . MOV 10 5 | |
0022 . . . MOV 11 6 | |
0023 . . . CALL 7 1 5 | |
0000 . . . . JFUNCF 13 2 ; ssa.lua:55 | |
---- TRACE 3 abort ssa.lua:55 -- call unroll limit reached | |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x40098414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x40ff2f58}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x40098458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x40098410], 0x1 | |
0bcbfe53 mov edi, [0x400983d8] | |
0bcbfe5a cmp edi, [0x400983dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x400983b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x400984b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x400a9568] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x40098414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x400984b0] | |
0bcbfee0 mov esi, 0x40ff2f58 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x400984b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x400984b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb40ff21d0 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x40098448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x400984b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x400983f4] | |
0bcbffcf mov [0x400983f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x40ff3bf8 | |
0bcbffee mov r14d, 0x40099008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 2 abort ssa.lua:79 -- retry recording | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0065 UGET 5 2 ; finish_goto | |
0066 MOV 6 1 | |
0067 MOV 7 3 | |
0068 CALL 5 1 3 | |
0000 . FUNCF 4 ; ssa.lua:52 | |
0001 . TDUP 2 1 | |
0002 . TGETS 3 1 2 ; "label" | |
0003 . TSETB 3 2 2 | |
0004 . TSETS 2 0 0 ; "control" | |
0005 . RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x40098458] | |
0005 r15 [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 r15 p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 r15 > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 r15 p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x40098458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 rbx > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 rbx > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m EQ 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0034 rbp > [31mtab[m SLOAD #2 T | |
0035 r15 > [31mtab[m SLOAD #4 T | |
0036 [8] > [31mtab[m TDUP [31m{0x40ff43e8}[m | |
0037 [35mint[m FLOAD 0035 tab.hmask | |
0038 > [35mint[m EQ 0037 [35m+1 [m | |
0039 r15 p32 FLOAD 0035 tab.node | |
0040 > p32 HREFK 0039 [32m"label"[m @1 | |
0041 r15 > [32mstr[m HLOAD 0040 | |
0042 rax p32 FLOAD 0036 tab.array | |
0043 p32 AREF 0042 [35m+2 [m | |
0044 [32mstr[m ASTORE 0043 0041 | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:52[m|[31m0034[m ---- [31m0036[m ---- ] | |
0045 rsi p32 HREF 0034 [32m"control"[m | |
0046 > p32 EQ 0045 [0x40098458] | |
0047 [31mtab[m FLOAD 0034 tab.meta | |
0048 > [31mtab[m EQ 0047 [31m[NULL][m | |
0049 rbx p32 NEWREF 0034 [32m"control"[m | |
0050 [31mtab[m HSTORE 0049 0036 | |
0051 nil TBAR 0034 | |
.... SNAP #7 [ [1mssa.lua:55[m|] | |
---- TRACE 2 mcode 719 | |
0bcbfb6e mov dword [0x40098410], 0x2 | |
0bcbfb79 mov edi, [0x400983d8] | |
0bcbfb80 cmp edi, [0x400983dc] | |
0bcbfb87 jb 0x0bcbfba0 | |
0bcbfb89 mov esi, 0x1 | |
0bcbfb8e mov edi, 0x400983b8 | |
0bcbfb93 call 0x00421730 ->lj_gc_step_jit | |
0bcbfb98 test eax, eax | |
0bcbfb9a jnz 0x0bcb0010 ->0 | |
0bcbfba0 mov edi, [0x400984b0] | |
0bcbfba7 mov edx, [0x400984b4] | |
0bcbfbae mov ebp, [rdx-0x8] | |
0bcbfbb1 mov ebx, [rbp+0x8] | |
0bcbfbb4 mov esi, [rbx+0x1c] | |
0bcbfbb7 and esi, 0xce2b6183 | |
0bcbfbbd lea esi, [rsi+rsi*2] | |
0bcbfbc0 shl esi, 0x03 | |
0bcbfbc3 add esi, [rbx+0x14] | |
0bcbfbc6 cmp dword [rsi+0xc], -0x05 | |
0bcbfbca jnz 0x0bcbfbd9 | |
0bcbfbcc cmp dword [rsi+0x8], 0x4009adb0 | |
0bcbfbd3 jz 0x0bcb0010 ->0 | |
0bcbfbd9 mov esi, [rsi+0x10] | |
0bcbfbdc test esi, esi | |
0bcbfbde jnz 0x0bcbfbc6 | |
0bcbfbe0 mov r15d, [rbx+0x10] | |
0bcbfbe4 test r15d, r15d | |
0bcbfbe7 jz 0x0bcb0010 ->0 | |
0bcbfbed cmp dword [r15+0x1c], +0x01 | |
0bcbfbf2 jnz 0x0bcb0010 ->0 | |
0bcbfbf8 mov r15d, [r15+0x14] | |
0bcbfbfc mov rsi, 0xfffffffb4009a4c8 | |
0bcbfc06 cmp rsi, [r15+0x20] | |
0bcbfc0a jnz 0x0bcb0010 ->0 | |
0bcbfc10 cmp dword [r15+0x1c], -0x0c | |
0bcbfc15 jnz 0x0bcb0010 ->0 | |
0bcbfc1b mov r15d, [r15+0x18] | |
0bcbfc1f cmp dword [r15+0x1c], +0x3f | |
0bcbfc24 jnz 0x0bcb0010 ->0 | |
0bcbfc2a mov r15d, [r15+0x14] | |
0bcbfc2e mov rsi, 0xfffffffb4009adb0 | |
0bcbfc38 cmp rsi, [r15+0x50] | |
0bcbfc3c jnz 0x0bcb0010 ->0 | |
0bcbfc42 cmp dword [r15+0x4c], -0x09 | |
0bcbfc47 jnz 0x0bcb0010 ->0 | |
0bcbfc4d mov esi, [rbx+0x1c] | |
0bcbfc50 and esi, 0x798a813c | |
0bcbfc56 lea esi, [rsi+rsi*2] | |
0bcbfc59 shl esi, 0x03 | |
0bcbfc5c add esi, [rbx+0x14] | |
0bcbfc5f cmp dword [rsi+0xc], -0x05 | |
0bcbfc63 jnz 0x0bcbfc72 | |
0bcbfc65 cmp dword [rsi+0x8], 0x4009afb0 | |
0bcbfc6c jz 0x0bcb0010 ->0 | |
0bcbfc72 mov esi, [rsi+0x10] | |
0bcbfc75 test esi, esi | |
0bcbfc77 jnz 0x0bcbfc5f | |
0bcbfc79 mov rsi, 0xfffffffb4009afb0 | |
0bcbfc83 cmp rsi, [r15+0x5a8] | |
0bcbfc8a jnz 0x0bcb0010 ->0 | |
0bcbfc90 cmp dword [r15+0x5a4], -0x09 | |
0bcbfc98 jnz 0x0bcb0010 ->0 | |
0bcbfc9e cmp dword [rdx+0x4], -0x0c | |
0bcbfca2 jnz 0x0bcb0010 ->0 | |
0bcbfca8 mov ebx, [rdx] | |
0bcbfcaa cmp dword [r15+0x5a0], 0x4009af18 | |
0bcbfcb5 jnz 0x0bcb0010 ->0 | |
0bcbfcbb cmp dword [r15+0x48], 0x4009ad88 | |
0bcbfcc3 jnz 0x0bcb0010 ->0 | |
0bcbfcc9 cmp dword [rbx+0x18], +0x01 | |
0bcbfccd jbe 0x0bcb0010 ->0 | |
0bcbfcd3 mov ebx, [rbx+0x8] | |
0bcbfcd6 cmp dword [rbx+0xc], -0x05 | |
0bcbfcda jnz 0x0bcb0010 ->0 | |
0bcbfce0 mov ebx, [rbx+0x8] | |
0bcbfce3 cmp ebx, 0x4009a8f8 | |
0bcbfce9 jz 0x0bcb0014 ->1 | |
0bcbfcef cmp ebx, 0x400ae1f0 | |
0bcbfcf5 jz 0x0bcb0018 ->2 | |
0bcbfcfb cmp ebx, 0x4009aa18 | |
0bcbfd01 jz 0x0bcb001c ->3 | |
0bcbfd07 cmp ebx, 0x4009a870 | |
0bcbfd0d jnz 0x0bcb0020 ->4 | |
0bcbfd13 cmp ebp, 0x400b5240 | |
0bcbfd19 jnz 0x0bcb0024 ->5 | |
0bcbfd1f cmp dword [rdx+0xc], -0x0c | |
0bcbfd23 jnz 0x0bcb0024 ->5 | |
0bcbfd29 mov ebp, [rdx+0x8] | |
0bcbfd2c cmp dword [rdx+0x1c], -0x0c | |
0bcbfd30 jnz 0x0bcb0024 ->5 | |
0bcbfd36 mov r15d, [rdx+0x18] | |
0bcbfd3a mov esi, 0x40ff43e8 | |
0bcbfd3f call 0x004223c0 ->lj_tab_dup | |
0bcbfd44 mov [rsp+0x8], eax | |
0bcbfd48 mov edi, [0x400984b0] | |
0bcbfd4f cmp dword [r15+0x1c], +0x01 | |
0bcbfd54 jnz 0x0bcb0024 ->5 | |
0bcbfd5a mov r15d, [r15+0x14] | |
0bcbfd5e mov rsi, 0xfffffffb40ff2270 | |
0bcbfd68 cmp rsi, [r15+0x20] | |
0bcbfd6c jnz 0x0bcb0024 ->5 | |
0bcbfd72 cmp dword [r15+0x1c], -0x05 | |
0bcbfd77 jnz 0x0bcb0024 ->5 | |
0bcbfd7d mov r15d, [r15+0x18] | |
0bcbfd81 mov eax, [rax+0x8] | |
0bcbfd84 mov dword [rax+0x14], 0xfffffffb | |
0bcbfd8b mov [rax+0x10], r15d | |
0bcbfd8f mov esi, [rbp+0x1c] | |
0bcbfd92 and esi, 0x2a54dc55 | |
0bcbfd98 lea esi, [rsi+rsi*2] | |
0bcbfd9b shl esi, 0x03 | |
0bcbfd9e add esi, [rbp+0x14] | |
0bcbfda1 cmp dword [rsi+0xc], -0x05 | |
0bcbfda5 jnz 0x0bcbfdb4 | |
0bcbfda7 cmp dword [rsi+0x8], 0x40ff29d8 | |
0bcbfdae jz 0x0bcb0028 ->6 | |
0bcbfdb4 mov esi, [rsi+0x10] | |
0bcbfdb7 test esi, esi | |
0bcbfdb9 jnz 0x0bcbfda1 | |
0bcbfdbb cmp dword [rbp+0x10], +0x00 | |
0bcbfdbf jnz 0x0bcb0028 ->6 | |
0bcbfdc5 mov edx, 0x40098448 | |
0bcbfdca mov dword [rdx+0x4], 0xfffffffb | |
0bcbfdd1 mov dword [rdx], 0x40ff29d8 | |
0bcbfdd7 mov esi, ebp | |
0bcbfdd9 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfdde mov ebx, eax | |
0bcbfde0 mov edx, [0x400984b4] | |
0bcbfde7 mov eax, [rsp+0x8] | |
0bcbfdeb mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfdf2 mov [rbx], eax | |
0bcbfdf4 test byte [rbp+0x4], 0x4 | |
0bcbfdf8 jz 0x0bcbfe0f | |
0bcbfdfa and byte [rbp+0x4], 0xfb | |
0bcbfdfe mov edi, [0x400983f4] | |
0bcbfe05 mov [0x400983f4], ebp | |
0bcbfe0c mov [rbp+0xc], edi | |
0bcbfe0f mov eax, [0x400984b0] | |
0bcbfe16 mov eax, [rax+0x20] | |
0bcbfe19 sub eax, edx | |
0bcbfe1b cmp eax, +0x68 | |
0bcbfe1e jb 0x0bcb002c ->7 | |
0bcbfe24 mov dword [rdx-0x8], 0x400b5240 | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x40ff3a38 | |
0bcbfe32 mov r14d, 0x40099008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 2 |
---- TRACE 1 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x405d9414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x405ee0d0}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x405d9458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 1 mcode 441 | |
0bcbfe44 add rsp, -0x10 | |
0bcbfe48 mov dword [0x405d9410], 0x1 | |
0bcbfe53 mov edi, [0x405d93d8] | |
0bcbfe5a cmp edi, [0x405d93dc] | |
0bcbfe61 jb 0x0bcbfe7a | |
0bcbfe63 mov esi, 0x3 | |
0bcbfe68 mov edi, 0x405d93b8 | |
0bcbfe6d call 0x00421730 ->lj_gc_step_jit | |
0bcbfe72 test eax, eax | |
0bcbfe74 jnz 0x0bcb0010 ->0 | |
0bcbfe7a mov edx, [0x405d94b4] | |
0bcbfe81 mov ebp, [rdx-0x8] | |
0bcbfe84 mov edi, [rbp+0x14] | |
0bcbfe87 mov ebx, [rdi+0x10] | |
0bcbfe8a cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfe91 jnb 0x0bcb0010 ->0 | |
0bcbfe97 movsd xmm7, [rbx] | |
0bcbfe9b addsd xmm7, [0x400bfab8] | |
0bcbfea4 movsd [rsp+0x10], xmm7 | |
0bcbfeaa movsd [rbx], xmm7 | |
0bcbfeae mov edi, 0x405d9414 | |
0bcbfeb3 mov esi, [rdi+0x8] | |
0bcbfeb6 mov [rdi], esi | |
0bcbfeb8 mov esi, 0x4c | |
0bcbfebd call 0x00421b60 ->lj_buf_putchar | |
0bcbfec2 mov edi, eax | |
0bcbfec4 lea rsi, [rsp+0x10] | |
0bcbfec9 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfece mov edi, eax | |
0bcbfed0 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfed5 mov [rsp+0xc], eax | |
0bcbfed9 mov edi, [0x405d94b0] | |
0bcbfee0 mov esi, 0x405ee0d0 | |
0bcbfee5 call 0x004223c0 ->lj_tab_dup | |
0bcbfeea mov ebx, eax | |
0bcbfeec mov [rsp+0x8], ebx | |
0bcbfef0 mov edi, [0x405d94b0] | |
0bcbfef7 xor esi, esi | |
0bcbfef9 call 0x00422350 ->lj_tab_new1 | |
0bcbfefe mov r15d, eax | |
0bcbff01 mov edi, [0x405d94b0] | |
0bcbff08 mov eax, [rsp+0xc] | |
0bcbff0c mov ebx, [rbx+0x14] | |
0bcbff0f mov dword [rbx+0x4], 0xfffffff4 | |
0bcbff16 mov [rbx], r15d | |
0bcbff19 mov dword [rbx+0x1c], 0xfffffffb | |
0bcbff20 mov [rbx+0x18], eax | |
0bcbff23 mov esi, [rbp+0x18] | |
0bcbff26 mov ebp, [rsi+0x10] | |
0bcbff29 cmp dword [rbp+0x4], -0x0c | |
0bcbff2d jnz 0x0bcb0018 ->2 | |
0bcbff33 mov ebp, [rbp+0x0] | |
0bcbff36 cmp dword [rbp+0x1c], +0x01 | |
0bcbff3a jnz 0x0bcb0018 ->2 | |
0bcbff40 mov ebp, [rbp+0x14] | |
0bcbff43 mov rsi, 0xfffffffb400cb340 | |
0bcbff4d cmp rsi, [rbp+0x8] | |
0bcbff51 jnz 0x0bcb0018 ->2 | |
0bcbff57 cmp dword [rbp+0x4], -0x0c | |
0bcbff5b jnz 0x0bcb0018 ->2 | |
0bcbff61 mov ebp, [rbp+0x0] | |
0bcbff64 mov esi, [rbp+0x1c] | |
0bcbff67 and esi, [rax+0x8] | |
0bcbff6a lea esi, [rsi+rsi*2] | |
0bcbff6d shl esi, 0x03 | |
0bcbff70 add esi, [rbp+0x14] | |
0bcbff73 cmp dword [rsi+0xc], -0x05 | |
0bcbff77 jnz 0x0bcbff82 | |
0bcbff79 cmp eax, [rsi+0x8] | |
0bcbff7c jz 0x0bcb0018 ->2 | |
0bcbff82 mov esi, [rsi+0x10] | |
0bcbff85 test esi, esi | |
0bcbff87 jnz 0x0bcbff73 | |
0bcbff89 cmp dword [rbp+0x10], +0x00 | |
0bcbff8d jnz 0x0bcb0018 ->2 | |
0bcbff93 mov edx, 0x405d9448 | |
0bcbff98 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff9f mov [rdx], eax | |
0bcbffa1 mov esi, ebp | |
0bcbffa3 call 0x00422cf0 ->lj_tab_newkey | |
0bcbffa8 mov ebx, eax | |
0bcbffaa mov edx, [0x405d94b4] | |
0bcbffb1 mov eax, [rsp+0x8] | |
0bcbffb5 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffbc mov [rbx], eax | |
0bcbffbe test byte [rbp+0x4], 0x4 | |
0bcbffc2 jz 0x0bcbffd9 | |
0bcbffc4 and byte [rbp+0x4], 0xfb | |
0bcbffc8 mov edi, [0x405d93f4] | |
0bcbffcf mov [0x405d93f4], ebp | |
0bcbffd6 mov [rbp+0xc], edi | |
0bcbffd9 mov byte [rbp+0x6], 0x0 | |
0bcbffdd mov dword [rdx+0xc], 0xfffffff4 | |
0bcbffe4 mov [rdx+0x8], eax | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x400cc018 | |
0bcbffee mov r14d, 0x405da008 | |
0bcbfff4 add rsp, +0x10 | |
0bcbfff8 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 1 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . FUNCF 13 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 2 abort ssa.lua:79 -- retry recording | |
---- TRACE 2 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0065 UGET 5 2 ; finish_goto | |
0066 MOV 6 1 | |
0067 MOV 7 3 | |
0068 CALL 5 1 3 | |
0000 . FUNCF 4 ; ssa.lua:52 | |
0001 . TDUP 2 1 | |
0002 . TGETS 3 1 2 ; "label" | |
0003 . TSETB 3 2 2 | |
0004 . TSETS 2 0 0 ; "control" | |
0005 . RET0 0 1 | |
0069 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x405d9458] | |
0005 r15 [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 r15 p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 r15 > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 r15 p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x405d9458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 rbx > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 rbx > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m EQ 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0034 rbp > [31mtab[m SLOAD #2 T | |
0035 r15 > [31mtab[m SLOAD #4 T | |
0036 [8] > [31mtab[m TDUP [31m{0x405eaf58}[m | |
0037 [35mint[m FLOAD 0035 tab.hmask | |
0038 > [35mint[m EQ 0037 [35m+1 [m | |
0039 r15 p32 FLOAD 0035 tab.node | |
0040 > p32 HREFK 0039 [32m"label"[m @1 | |
0041 r15 > [32mstr[m HLOAD 0040 | |
0042 rax p32 FLOAD 0036 tab.array | |
0043 p32 AREF 0042 [35m+2 [m | |
0044 [32mstr[m ASTORE 0043 0041 | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:52[m|[31m0034[m ---- [31m0036[m ---- ] | |
0045 rsi p32 HREF 0034 [32m"control"[m | |
0046 > p32 EQ 0045 [0x405d9458] | |
0047 [31mtab[m FLOAD 0034 tab.meta | |
0048 > [31mtab[m EQ 0047 [31m[NULL][m | |
0049 rbx p32 NEWREF 0034 [32m"control"[m | |
0050 [31mtab[m HSTORE 0049 0036 | |
0051 nil TBAR 0034 | |
.... SNAP #7 [ [1mssa.lua:55[m|] | |
---- TRACE 2 mcode 719 | |
0bcbfb6e mov dword [0x405d9410], 0x2 | |
0bcbfb79 mov edi, [0x405d93d8] | |
0bcbfb80 cmp edi, [0x405d93dc] | |
0bcbfb87 jb 0x0bcbfba0 | |
0bcbfb89 mov esi, 0x1 | |
0bcbfb8e mov edi, 0x405d93b8 | |
0bcbfb93 call 0x00421730 ->lj_gc_step_jit | |
0bcbfb98 test eax, eax | |
0bcbfb9a jnz 0x0bcb0010 ->0 | |
0bcbfba0 mov edi, [0x405d94b0] | |
0bcbfba7 mov edx, [0x405d94b4] | |
0bcbfbae mov ebp, [rdx-0x8] | |
0bcbfbb1 mov ebx, [rbp+0x8] | |
0bcbfbb4 mov esi, [rbx+0x1c] | |
0bcbfbb7 and esi, 0xce2b6183 | |
0bcbfbbd lea esi, [rsi+rsi*2] | |
0bcbfbc0 shl esi, 0x03 | |
0bcbfbc3 add esi, [rbx+0x14] | |
0bcbfbc6 cmp dword [rsi+0xc], -0x05 | |
0bcbfbca jnz 0x0bcbfbd9 | |
0bcbfbcc cmp dword [rsi+0x8], 0x405dbdb0 | |
0bcbfbd3 jz 0x0bcb0010 ->0 | |
0bcbfbd9 mov esi, [rsi+0x10] | |
0bcbfbdc test esi, esi | |
0bcbfbde jnz 0x0bcbfbc6 | |
0bcbfbe0 mov r15d, [rbx+0x10] | |
0bcbfbe4 test r15d, r15d | |
0bcbfbe7 jz 0x0bcb0010 ->0 | |
0bcbfbed cmp dword [r15+0x1c], +0x01 | |
0bcbfbf2 jnz 0x0bcb0010 ->0 | |
0bcbfbf8 mov r15d, [r15+0x14] | |
0bcbfbfc mov rsi, 0xfffffffb405db4c8 | |
0bcbfc06 cmp rsi, [r15+0x20] | |
0bcbfc0a jnz 0x0bcb0010 ->0 | |
0bcbfc10 cmp dword [r15+0x1c], -0x0c | |
0bcbfc15 jnz 0x0bcb0010 ->0 | |
0bcbfc1b mov r15d, [r15+0x18] | |
0bcbfc1f cmp dword [r15+0x1c], +0x3f | |
0bcbfc24 jnz 0x0bcb0010 ->0 | |
0bcbfc2a mov r15d, [r15+0x14] | |
0bcbfc2e mov rsi, 0xfffffffb405dbdb0 | |
0bcbfc38 cmp rsi, [r15+0x50] | |
0bcbfc3c jnz 0x0bcb0010 ->0 | |
0bcbfc42 cmp dword [r15+0x4c], -0x09 | |
0bcbfc47 jnz 0x0bcb0010 ->0 | |
0bcbfc4d mov esi, [rbx+0x1c] | |
0bcbfc50 and esi, 0x798a813c | |
0bcbfc56 lea esi, [rsi+rsi*2] | |
0bcbfc59 shl esi, 0x03 | |
0bcbfc5c add esi, [rbx+0x14] | |
0bcbfc5f cmp dword [rsi+0xc], -0x05 | |
0bcbfc63 jnz 0x0bcbfc72 | |
0bcbfc65 cmp dword [rsi+0x8], 0x405dbfb0 | |
0bcbfc6c jz 0x0bcb0010 ->0 | |
0bcbfc72 mov esi, [rsi+0x10] | |
0bcbfc75 test esi, esi | |
0bcbfc77 jnz 0x0bcbfc5f | |
0bcbfc79 mov rsi, 0xfffffffb405dbfb0 | |
0bcbfc83 cmp rsi, [r15+0x5a8] | |
0bcbfc8a jnz 0x0bcb0010 ->0 | |
0bcbfc90 cmp dword [r15+0x5a4], -0x09 | |
0bcbfc98 jnz 0x0bcb0010 ->0 | |
0bcbfc9e cmp dword [rdx+0x4], -0x0c | |
0bcbfca2 jnz 0x0bcb0010 ->0 | |
0bcbfca8 mov ebx, [rdx] | |
0bcbfcaa cmp dword [r15+0x5a0], 0x405dbf18 | |
0bcbfcb5 jnz 0x0bcb0010 ->0 | |
0bcbfcbb cmp dword [r15+0x48], 0x405dbd88 | |
0bcbfcc3 jnz 0x0bcb0010 ->0 | |
0bcbfcc9 cmp dword [rbx+0x18], +0x01 | |
0bcbfccd jbe 0x0bcb0010 ->0 | |
0bcbfcd3 mov ebx, [rbx+0x8] | |
0bcbfcd6 cmp dword [rbx+0xc], -0x05 | |
0bcbfcda jnz 0x0bcb0010 ->0 | |
0bcbfce0 mov ebx, [rbx+0x8] | |
0bcbfce3 cmp ebx, 0x405db8f8 | |
0bcbfce9 jz 0x0bcb0014 ->1 | |
0bcbfcef cmp ebx, 0x405edce0 | |
0bcbfcf5 jz 0x0bcb0018 ->2 | |
0bcbfcfb cmp ebx, 0x405dba18 | |
0bcbfd01 jz 0x0bcb001c ->3 | |
0bcbfd07 cmp ebx, 0x405db870 | |
0bcbfd0d jnz 0x0bcb0020 ->4 | |
0bcbfd13 cmp ebp, 0x400ba6d8 | |
0bcbfd19 jnz 0x0bcb0024 ->5 | |
0bcbfd1f cmp dword [rdx+0xc], -0x0c | |
0bcbfd23 jnz 0x0bcb0024 ->5 | |
0bcbfd29 mov ebp, [rdx+0x8] | |
0bcbfd2c cmp dword [rdx+0x1c], -0x0c | |
0bcbfd30 jnz 0x0bcb0024 ->5 | |
0bcbfd36 mov r15d, [rdx+0x18] | |
0bcbfd3a mov esi, 0x405eaf58 | |
0bcbfd3f call 0x004223c0 ->lj_tab_dup | |
0bcbfd44 mov [rsp+0x8], eax | |
0bcbfd48 mov edi, [0x405d94b0] | |
0bcbfd4f cmp dword [r15+0x1c], +0x01 | |
0bcbfd54 jnz 0x0bcb0024 ->5 | |
0bcbfd5a mov r15d, [r15+0x14] | |
0bcbfd5e mov rsi, 0xfffffffb400cb3e0 | |
0bcbfd68 cmp rsi, [r15+0x20] | |
0bcbfd6c jnz 0x0bcb0024 ->5 | |
0bcbfd72 cmp dword [r15+0x1c], -0x05 | |
0bcbfd77 jnz 0x0bcb0024 ->5 | |
0bcbfd7d mov r15d, [r15+0x18] | |
0bcbfd81 mov eax, [rax+0x8] | |
0bcbfd84 mov dword [rax+0x14], 0xfffffffb | |
0bcbfd8b mov [rax+0x10], r15d | |
0bcbfd8f mov esi, [rbp+0x1c] | |
0bcbfd92 and esi, 0x2a54dc55 | |
0bcbfd98 lea esi, [rsi+rsi*2] | |
0bcbfd9b shl esi, 0x03 | |
0bcbfd9e add esi, [rbp+0x14] | |
0bcbfda1 cmp dword [rsi+0xc], -0x05 | |
0bcbfda5 jnz 0x0bcbfdb4 | |
0bcbfda7 cmp dword [rsi+0x8], 0x400cbb48 | |
0bcbfdae jz 0x0bcb0028 ->6 | |
0bcbfdb4 mov esi, [rsi+0x10] | |
0bcbfdb7 test esi, esi | |
0bcbfdb9 jnz 0x0bcbfda1 | |
0bcbfdbb cmp dword [rbp+0x10], +0x00 | |
0bcbfdbf jnz 0x0bcb0028 ->6 | |
0bcbfdc5 mov edx, 0x405d9448 | |
0bcbfdca mov dword [rdx+0x4], 0xfffffffb | |
0bcbfdd1 mov dword [rdx], 0x400cbb48 | |
0bcbfdd7 mov esi, ebp | |
0bcbfdd9 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfdde mov ebx, eax | |
0bcbfde0 mov edx, [0x405d94b4] | |
0bcbfde7 mov eax, [rsp+0x8] | |
0bcbfdeb mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfdf2 mov [rbx], eax | |
0bcbfdf4 test byte [rbp+0x4], 0x4 | |
0bcbfdf8 jz 0x0bcbfe0f | |
0bcbfdfa and byte [rbp+0x4], 0xfb | |
0bcbfdfe mov edi, [0x405d93f4] | |
0bcbfe05 mov [0x405d93f4], ebp | |
0bcbfe0c mov [rbp+0xc], edi | |
0bcbfe0f mov eax, [0x405d94b0] | |
0bcbfe16 mov eax, [rax+0x20] | |
0bcbfe19 sub eax, edx | |
0bcbfe1b cmp eax, +0x68 | |
0bcbfe1e jb 0x0bcb002c ->7 | |
0bcbfe24 mov dword [rdx-0x8], 0x400ba6d8 | |
0bcbfe2b xor eax, eax | |
0bcbfe2d mov ebx, 0x400ccba8 | |
0bcbfe32 mov r14d, 0x405da008 | |
0bcbfe38 jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 6 | |
---- TRACE 2 exit 6 | |
---- TRACE 2 exit 6 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 1 | |
---- TRACE 2 exit 4 | |
---- TRACE 2 exit 2 |
---- TRACE 1 start ssa.lua:55 | |
0001 GGET 4 0 ; "assert" | |
0002 GGET 5 1 ; "type" | |
0003 MOV 6 0 | |
0004 CALL 5 2 2 | |
0000 . FUNCC ; type | |
0005 ISEQS 5 2 ; "table" | |
0006 JMP 5 => 0009 | |
0009 KPRI 5 2 | |
0010 CALL 4 1 2 | |
0000 . FUNCC ; assert | |
0011 TGETB 4 0 1 | |
0012 ISNES 4 3 ; "if" | |
0013 JMP 5 => 0037 | |
0037 ISNES 4 4 ; "let" | |
0038 JMP 5 => 0056 | |
0056 ISNES 4 10 ; "true" | |
0057 JMP 5 => 0063 | |
0063 ISNES 4 11 ; "false" | |
0064 JMP 5 => 0070 | |
0070 ISNES 4 12 ; "match" | |
0071 JMP 5 => 0077 | |
0077 ISNES 4 14 ; "fail" | |
0078 JMP 5 => 0084 | |
0084 GGET 5 0 ; "assert" | |
0085 UGET 6 4 ; relops | |
0086 TGETV 6 6 4 | |
0087 CALL 5 1 2 | |
0000 . FUNCC ; assert | |
0088 UGET 5 5 ; finish_if | |
0089 MOV 6 1 | |
0090 MOV 7 0 | |
0091 MOV 8 2 | |
0092 MOV 9 3 | |
0093 CALL 5 1 5 | |
0000 . FUNCF 6 ; ssa.lua:49 | |
0001 . TDUP 4 1 | |
0002 . TSETB 1 4 2 | |
0003 . TGETS 5 2 2 ; "label" | |
0004 . TSETB 5 4 3 | |
0005 . TGETS 5 3 2 ; "label" | |
0006 . TSETB 5 4 4 | |
0007 . TSETS 4 0 0 ; "control" | |
0008 . RET0 0 1 | |
0094 RET0 0 1 | |
---- TRACE 1 IR | |
.... SNAP #0 [ ---- ---- ---- ---- ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 r15 [31mtab[m FLOAD 0001 func.env | |
0003 rsi p32 HREF 0002 [32m"assert"[m | |
0004 > p32 EQ 0003 [0x40eb3458] | |
0005 rbx [31mtab[m FLOAD 0002 tab.meta | |
0006 > [31mtab[m NE 0005 [31m[NULL][m | |
0007 [35mint[m FLOAD 0005 tab.hmask | |
0008 > [35mint[m EQ 0007 [35m+1 [m | |
0009 rbx p32 FLOAD 0005 tab.node | |
0010 > p32 HREFK 0009 [32m"__index"[m @1 | |
0011 rbx > [31mtab[m HLOAD 0010 | |
0012 [35mint[m FLOAD 0011 tab.hmask | |
0013 > [35mint[m EQ 0012 [35m+63 [m | |
0014 rbx p32 FLOAD 0011 tab.node | |
0015 > p32 HREFK 0014 [32m"assert"[m @3 | |
0016 > [1mfun[m HLOAD 0015 | |
0017 rsi p32 HREF 0002 [32m"type"[m | |
0018 > p32 EQ 0017 [0x40eb3458] | |
0019 > p32 HREFK 0014 [32m"type"[m @60 | |
0020 > [1mfun[m HLOAD 0019 | |
0021 r15 > [31mtab[m SLOAD #1 T | |
0022 > [1mfun[m EQ 0020 [1mtype[m | |
0023 > [1mfun[m EQ 0016 [1massert[m | |
0024 [35mint[m FLOAD 0021 tab.asize | |
0025 > [35mint[m ABC 0024 [35m+1 [m | |
0026 rbx p32 FLOAD 0021 tab.array | |
0027 p32 AREF 0026 [35m+1 [m | |
0028 rbx > [32mstr[m ALOAD 0027 | |
.... SNAP #1 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0029 > [32mstr[m NE 0028 [32m"if"[m | |
.... SNAP #2 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0030 > [32mstr[m NE 0028 [32m"let"[m | |
.... SNAP #3 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0031 > [32mstr[m NE 0028 [32m"true"[m | |
.... SNAP #4 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0032 > [32mstr[m NE 0028 [32m"false"[m | |
.... SNAP #5 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0033 > [32mstr[m NE 0028 [32m"match"[m | |
.... SNAP #6 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0034 > [32mstr[m NE 0028 [32m"fail"[m | |
.... SNAP #7 [ ---- ---- ---- ---- ---- [32m0028[m ] | |
0035 r14 > p32 UREFC 0001 #4 | |
0036 r13 > [31mtab[m ULOAD 0035 | |
0037 r14 p32 HREF 0036 0028 | |
0038 > tru HLOAD 0037 | |
0039 > [1mfun[m EQ 0001 [1mssa.lua:55[m | |
0040 rbp > [31mtab[m SLOAD #2 T | |
0041 r13 > [31mtab[m SLOAD #3 T | |
0042 r14 > [31mtab[m SLOAD #4 T | |
0043 [8] > [31mtab[m TDUP [31m{0x41f91468}[m | |
0044 rax p32 FLOAD 0043 tab.array | |
0045 p32 AREF 0044 [35m+2 [m | |
0046 [31mtab[m ASTORE 0045 0021 | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- [31m0041[m [31m0042[m [31m0043[m ] | |
0047 [35mint[m FLOAD 0041 tab.hmask | |
0048 > [35mint[m EQ 0047 [35m+1 [m | |
0049 r15 p32 FLOAD 0041 tab.node | |
0050 > p32 HREFK 0049 [32m"label"[m @1 | |
0051 r15 > [32mstr[m HLOAD 0050 | |
0052 p32 AREF 0044 [35m+3 [m | |
0053 [32mstr[m ASTORE 0052 0051 | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- [31m0042[m [31m0043[m ---- ] | |
0054 [35mint[m FLOAD 0042 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 r15 p32 FLOAD 0042 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 r15 > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0044 [35m+4 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- [32m0028[m [1mssa.lua:49[m|[31m0040[m ---- ---- ---- [31m0043[m ---- ] | |
0061 rsi p32 HREF 0040 [32m"control"[m | |
0062 > p32 EQ 0061 [0x40eb3458] | |
0063 [31mtab[m FLOAD 0040 tab.meta | |
0064 > [31mtab[m EQ 0063 [31m[NULL][m | |
0065 rbx p32 NEWREF 0040 [32m"control"[m | |
0066 [31mtab[m HSTORE 0065 0043 | |
0067 nil TBAR 0040 | |
.... SNAP #11 [ [1mssa.lua:55[m|] | |
---- TRACE 1 mcode 916 | |
0bcbfc65 mov dword [0x40eb3410], 0x1 | |
0bcbfc70 mov edi, [0x40eb33d8] | |
0bcbfc77 cmp edi, [0x40eb33dc] | |
0bcbfc7e jb 0x0bcbfc97 | |
0bcbfc80 mov esi, 0x1 | |
0bcbfc85 mov edi, 0x40eb33b8 | |
0bcbfc8a call 0x00421730 ->lj_gc_step_jit | |
0bcbfc8f test eax, eax | |
0bcbfc91 jnz 0x0bcb0010 ->0 | |
0bcbfc97 mov edi, [0x40eb34b0] | |
0bcbfc9e mov edx, [0x40eb34b4] | |
0bcbfca5 mov ebp, [rdx-0x8] | |
0bcbfca8 mov r15d, [rbp+0x8] | |
0bcbfcac mov esi, [r15+0x1c] | |
0bcbfcb0 and esi, 0xce2b6183 | |
0bcbfcb6 lea esi, [rsi+rsi*2] | |
0bcbfcb9 shl esi, 0x03 | |
0bcbfcbc add esi, [r15+0x14] | |
0bcbfcc0 cmp dword [rsi+0xc], -0x05 | |
0bcbfcc4 jnz 0x0bcbfcd3 | |
0bcbfcc6 cmp dword [rsi+0x8], 0x40eb5db0 | |
0bcbfccd jz 0x0bcb0010 ->0 | |
0bcbfcd3 mov esi, [rsi+0x10] | |
0bcbfcd6 test esi, esi | |
0bcbfcd8 jnz 0x0bcbfcc0 | |
0bcbfcda mov ebx, [r15+0x10] | |
0bcbfcde test ebx, ebx | |
0bcbfce0 jz 0x0bcb0010 ->0 | |
0bcbfce6 cmp dword [rbx+0x1c], +0x01 | |
0bcbfcea jnz 0x0bcb0010 ->0 | |
0bcbfcf0 mov ebx, [rbx+0x14] | |
0bcbfcf3 mov rsi, 0xfffffffb40eb54c8 | |
0bcbfcfd cmp rsi, [rbx+0x20] | |
0bcbfd01 jnz 0x0bcb0010 ->0 | |
0bcbfd07 cmp dword [rbx+0x1c], -0x0c | |
0bcbfd0b jnz 0x0bcb0010 ->0 | |
0bcbfd11 mov ebx, [rbx+0x18] | |
0bcbfd14 cmp dword [rbx+0x1c], +0x3f | |
0bcbfd18 jnz 0x0bcb0010 ->0 | |
0bcbfd1e mov ebx, [rbx+0x14] | |
0bcbfd21 mov rsi, 0xfffffffb40eb5db0 | |
0bcbfd2b cmp rsi, [rbx+0x50] | |
0bcbfd2f jnz 0x0bcb0010 ->0 | |
0bcbfd35 cmp dword [rbx+0x4c], -0x09 | |
0bcbfd39 jnz 0x0bcb0010 ->0 | |
0bcbfd3f mov esi, [r15+0x1c] | |
0bcbfd43 and esi, 0x798a813c | |
0bcbfd49 lea esi, [rsi+rsi*2] | |
0bcbfd4c shl esi, 0x03 | |
0bcbfd4f add esi, [r15+0x14] | |
0bcbfd53 cmp dword [rsi+0xc], -0x05 | |
0bcbfd57 jnz 0x0bcbfd66 | |
0bcbfd59 cmp dword [rsi+0x8], 0x40eb5fb0 | |
0bcbfd60 jz 0x0bcb0010 ->0 | |
0bcbfd66 mov esi, [rsi+0x10] | |
0bcbfd69 test esi, esi | |
0bcbfd6b jnz 0x0bcbfd53 | |
0bcbfd6d mov rsi, 0xfffffffb40eb5fb0 | |
0bcbfd77 cmp rsi, [rbx+0x5a8] | |
0bcbfd7e jnz 0x0bcb0010 ->0 | |
0bcbfd84 cmp dword [rbx+0x5a4], -0x09 | |
0bcbfd8b jnz 0x0bcb0010 ->0 | |
0bcbfd91 cmp dword [rdx+0x4], -0x0c | |
0bcbfd95 jnz 0x0bcb0010 ->0 | |
0bcbfd9b mov r15d, [rdx] | |
0bcbfd9e cmp dword [rbx+0x5a0], 0x40eb5f18 | |
0bcbfda8 jnz 0x0bcb0010 ->0 | |
0bcbfdae cmp dword [rbx+0x48], 0x40eb5d88 | |
0bcbfdb5 jnz 0x0bcb0010 ->0 | |
0bcbfdbb cmp dword [r15+0x18], +0x01 | |
0bcbfdc0 jbe 0x0bcb0010 ->0 | |
0bcbfdc6 mov ebx, [r15+0x8] | |
0bcbfdca cmp dword [rbx+0xc], -0x05 | |
0bcbfdce jnz 0x0bcb0010 ->0 | |
0bcbfdd4 mov ebx, [rbx+0x8] | |
0bcbfdd7 cmp ebx, 0x40eb58f8 | |
0bcbfddd jz 0x0bcb0014 ->1 | |
0bcbfde3 cmp ebx, 0x41f91978 | |
0bcbfde9 jz 0x0bcb0018 ->2 | |
0bcbfdef cmp ebx, 0x40eb5a18 | |
0bcbfdf5 jz 0x0bcb001c ->3 | |
0bcbfdfb cmp ebx, 0x40eb5870 | |
0bcbfe01 jz 0x0bcb0020 ->4 | |
0bcbfe07 cmp ebx, 0x40eb8cb0 | |
0bcbfe0d jz 0x0bcb0024 ->5 | |
0bcbfe13 cmp ebx, 0x41f91a50 | |
0bcbfe19 jz 0x0bcb0028 ->6 | |
0bcbfe1f mov esi, [rbp+0x24] | |
0bcbfe22 cmp byte [rsi+0x6], 0x1 | |
0bcbfe26 jnz 0x0bcb002c ->7 | |
0bcbfe2c lea r14d, [rsi+0x8] | |
0bcbfe30 cmp dword [r14+0x4], -0x0c | |
0bcbfe35 jnz 0x0bcb002c ->7 | |
0bcbfe3b mov r13d, [r14] | |
0bcbfe3e mov r14d, [r13+0x1c] | |
0bcbfe42 and r14d, [rbx+0x8] | |
0bcbfe46 lea r14d, [r14+r14*2] | |
0bcbfe4a shl r14d, 0x03 | |
0bcbfe4e add r14d, [r13+0x14] | |
0bcbfe52 cmp dword [r14+0xc], -0x05 | |
0bcbfe57 jnz 0x0bcbfe5f | |
0bcbfe59 cmp ebx, [r14+0x8] | |
0bcbfe5d jz 0x0bcbfe6e | |
0bcbfe5f mov r14d, [r14+0x10] | |
0bcbfe63 test r14d, r14d | |
0bcbfe66 jnz 0x0bcbfe52 | |
0bcbfe68 mov r14d, 0x40eb3458 | |
0bcbfe6e cmp dword [r14+0x4], -0x03 | |
0bcbfe73 jnz 0x0bcb002c ->7 | |
0bcbfe79 cmp ebp, 0x40ecf6e0 | |
0bcbfe7f jnz 0x0bcb002c ->7 | |
0bcbfe85 cmp dword [rdx+0xc], -0x0c | |
0bcbfe89 jnz 0x0bcb002c ->7 | |
0bcbfe8f mov ebp, [rdx+0x8] | |
0bcbfe92 cmp dword [rdx+0x14], -0x0c | |
0bcbfe96 jnz 0x0bcb002c ->7 | |
0bcbfe9c mov r13d, [rdx+0x10] | |
0bcbfea0 cmp dword [rdx+0x1c], -0x0c | |
0bcbfea4 jnz 0x0bcb002c ->7 | |
0bcbfeaa mov r14d, [rdx+0x18] | |
0bcbfeae mov esi, 0x41f91468 | |
0bcbfeb3 call 0x004223c0 ->lj_tab_dup | |
0bcbfeb8 mov [rsp+0x8], eax | |
0bcbfebc mov edi, [0x40eb34b0] | |
0bcbfec3 mov eax, [rax+0x8] | |
0bcbfec6 mov dword [rax+0x14], 0xfffffff4 | |
0bcbfecd mov [rax+0x10], r15d | |
0bcbfed1 cmp dword [r13+0x1c], +0x01 | |
0bcbfed6 jnz 0x0bcb0030 ->8 | |
0bcbfedc mov r15d, [r13+0x14] | |
0bcbfee0 mov rsi, 0xfffffffb41f8f5d0 | |
0bcbfeea cmp rsi, [r15+0x20] | |
0bcbfeee jnz 0x0bcb0030 ->8 | |
0bcbfef4 cmp dword [r15+0x1c], -0x05 | |
0bcbfef9 jnz 0x0bcb0030 ->8 | |
0bcbfeff mov r15d, [r15+0x18] | |
0bcbff03 mov dword [rax+0x1c], 0xfffffffb | |
0bcbff0a mov [rax+0x18], r15d | |
0bcbff0e cmp dword [r14+0x1c], +0x01 | |
0bcbff13 jnz 0x0bcb0034 ->9 | |
0bcbff19 mov r15d, [r14+0x14] | |
0bcbff1d mov rsi, 0xfffffffb41f8f5d0 | |
0bcbff27 cmp rsi, [r15+0x20] | |
0bcbff2b jnz 0x0bcb0034 ->9 | |
0bcbff31 cmp dword [r15+0x1c], -0x05 | |
0bcbff36 jnz 0x0bcb0034 ->9 | |
0bcbff3c mov r15d, [r15+0x18] | |
0bcbff40 mov dword [rax+0x24], 0xfffffffb | |
0bcbff47 mov [rax+0x20], r15d | |
0bcbff4b mov esi, [rbp+0x1c] | |
0bcbff4e and esi, 0x2a54dc55 | |
0bcbff54 lea esi, [rsi+rsi*2] | |
0bcbff57 shl esi, 0x03 | |
0bcbff5a add esi, [rbp+0x14] | |
0bcbff5d cmp dword [rsi+0xc], -0x05 | |
0bcbff61 jnz 0x0bcbff70 | |
0bcbff63 cmp dword [rsi+0x8], 0x41f8fd38 | |
0bcbff6a jz 0x0bcb0038 ->10 | |
0bcbff70 mov esi, [rsi+0x10] | |
0bcbff73 test esi, esi | |
0bcbff75 jnz 0x0bcbff5d | |
0bcbff77 cmp dword [rbp+0x10], +0x00 | |
0bcbff7b jnz 0x0bcb0038 ->10 | |
0bcbff81 mov edx, 0x40eb3448 | |
0bcbff86 mov dword [rdx+0x4], 0xfffffffb | |
0bcbff8d mov dword [rdx], 0x41f8fd38 | |
0bcbff93 mov esi, ebp | |
0bcbff95 call 0x00422cf0 ->lj_tab_newkey | |
0bcbff9a mov ebx, eax | |
0bcbff9c mov edx, [0x40eb34b4] | |
0bcbffa3 mov eax, [rsp+0x8] | |
0bcbffa7 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbffae mov [rbx], eax | |
0bcbffb0 test byte [rbp+0x4], 0x4 | |
0bcbffb4 jz 0x0bcbffcb | |
0bcbffb6 and byte [rbp+0x4], 0xfb | |
0bcbffba mov edi, [0x40eb33f4] | |
0bcbffc1 mov [0x40eb33f4], ebp | |
0bcbffc8 mov [rbp+0xc], edi | |
0bcbffcb mov eax, [0x40eb34b0] | |
0bcbffd2 mov eax, [rax+0x20] | |
0bcbffd5 sub eax, edx | |
0bcbffd7 cmp eax, +0x68 | |
0bcbffda jb 0x0bcb003c ->11 | |
0bcbffe0 mov dword [rdx-0x8], 0x40ecf6e0 | |
0bcbffe7 xor eax, eax | |
0bcbffe9 mov ebx, 0x41f90c90 | |
0bcbffee mov r14d, 0x40eb4008 | |
0bcbfff4 jmp 0x00420177 | |
---- TRACE 1 stop -> return | |
---- TRACE 1 exit 4 | |
---- TRACE 1 exit 4 | |
---- TRACE 1 exit 4 | |
---- TRACE 1 exit 4 | |
---- TRACE 1 exit 1 | |
---- TRACE 2 start ssa.lua:39 | |
0001 UGET 0 0 ; label_counter | |
0002 ADDVN 0 0 0 ; 1 | |
0003 USETV 0 0 ; label_counter | |
0004 KSTR 0 0 ; "L" | |
0005 UGET 1 0 ; label_counter | |
0006 CAT 0 0 1 | |
0007 TDUP 1 1 | |
0008 TNEW 2 0 | |
0009 TSETS 2 1 2 ; "bindings" | |
0010 TSETS 0 1 3 ; "label" | |
0011 UGET 2 1 ; ssa | |
0012 TGETS 2 2 4 ; "blocks" | |
0013 TSETV 1 2 0 | |
0014 RET1 1 2 | |
---- TRACE 2 IR | |
.... SNAP #0 [ ---- ] | |
0001 rbp [1mfun[m SLOAD #0 R | |
0002 rbx > p32 UREFO 0001 #0 | |
0003 xmm7 > [34mnum[m ULOAD 0002 | |
0004 [10] [34mnum[m ADD 0003 [34m+1 [m | |
0005 [34mnum[m USTORE 0002 0004 | |
.... SNAP #1 [ ---- ---- ] | |
0006 [32mstr[m TOSTR 0004 NUM | |
0007 rdi p32 BUFHDR [0x40eb3414] RESET | |
0008 rdi p32 BUFPUT 0007 [32m"L" [m | |
0009 rdi p32 BUFPUT 0008 0006 | |
0010 [c] [32mstr[m BUFSTR 0009 0007 | |
0011 [8] > [31mtab[m TDUP [31m{0x41f902b8}[m | |
0012 r15 > [31mtab[m TNEW #0 #0 | |
0013 rbx p32 FLOAD 0011 tab.node | |
0014 p32 HREFK 0013 [32m"bindings"[m @0 | |
0015 [31mtab[m HSTORE 0014 0012 | |
0016 p32 HREFK 0013 [32m"label"[m @1 | |
0017 [32mstr[m HSTORE 0016 0010 | |
.... SNAP #2 [ ---- [32m0010[m [31m0011[m ---- ] | |
0018 rbp > p32 UREFO 0001 #1 | |
0019 rbp > [31mtab[m ULOAD 0018 | |
0020 [35mint[m FLOAD 0019 tab.hmask | |
0021 > [35mint[m EQ 0020 [35m+1 [m | |
0022 rbp p32 FLOAD 0019 tab.node | |
0023 > p32 HREFK 0022 [32m"blocks"[m @0 | |
0024 rbp > [31mtab[m HLOAD 0023 | |
0025 rsi p32 HREF 0024 0010 | |
0026 > p32 EQ 0025 [0x40eb3458] | |
0027 [31mtab[m FLOAD 0024 tab.meta | |
0028 > [31mtab[m EQ 0027 [31m[NULL][m | |
0029 rbx p32 NEWREF 0024 0010 | |
0030 [31mtab[m HSTORE 0029 0011 | |
0031 nil TBAR 0024 | |
0032 p32 FREF 0024 tab.nomm | |
0033 [35mu8 [m FSTORE 0032 [35m+0 [m | |
.... SNAP #3 [ ---- ---- [31m0011[m ] | |
---- TRACE 2 mcode 441 | |
0bcbfaa9 add rsp, -0x10 | |
0bcbfaad mov dword [0x40eb3410], 0x2 | |
0bcbfab8 mov edi, [0x40eb33d8] | |
0bcbfabf cmp edi, [0x40eb33dc] | |
0bcbfac6 jb 0x0bcbfadf | |
0bcbfac8 mov esi, 0x3 | |
0bcbfacd mov edi, 0x40eb33b8 | |
0bcbfad2 call 0x00421730 ->lj_gc_step_jit | |
0bcbfad7 test eax, eax | |
0bcbfad9 jnz 0x0bcb0010 ->0 | |
0bcbfadf mov edx, [0x40eb34b4] | |
0bcbfae6 mov ebp, [rdx-0x8] | |
0bcbfae9 mov edi, [rbp+0x14] | |
0bcbfaec mov ebx, [rdi+0x10] | |
0bcbfaef cmp dword [rbx+0x4], 0xfffeffff | |
0bcbfaf6 jnb 0x0bcb0010 ->0 | |
0bcbfafc movsd xmm7, [rbx] | |
0bcbfb00 addsd xmm7, [0x41bafd78] | |
0bcbfb09 movsd [rsp+0x10], xmm7 | |
0bcbfb0f movsd [rbx], xmm7 | |
0bcbfb13 mov edi, 0x40eb3414 | |
0bcbfb18 mov esi, [rdi+0x8] | |
0bcbfb1b mov [rdi], esi | |
0bcbfb1d mov esi, 0x4c | |
0bcbfb22 call 0x00421b60 ->lj_buf_putchar | |
0bcbfb27 mov edi, eax | |
0bcbfb29 lea rsi, [rsp+0x10] | |
0bcbfb2e call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbfb33 mov edi, eax | |
0bcbfb35 call 0x00421ff0 ->lj_buf_tostr | |
0bcbfb3a mov [rsp+0xc], eax | |
0bcbfb3e mov edi, [0x40eb34b0] | |
0bcbfb45 mov esi, 0x41f902b8 | |
0bcbfb4a call 0x004223c0 ->lj_tab_dup | |
0bcbfb4f mov ebx, eax | |
0bcbfb51 mov [rsp+0x8], ebx | |
0bcbfb55 mov edi, [0x40eb34b0] | |
0bcbfb5c xor esi, esi | |
0bcbfb5e call 0x00422350 ->lj_tab_new1 | |
0bcbfb63 mov r15d, eax | |
0bcbfb66 mov edi, [0x40eb34b0] | |
0bcbfb6d mov eax, [rsp+0xc] | |
0bcbfb71 mov ebx, [rbx+0x14] | |
0bcbfb74 mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfb7b mov [rbx], r15d | |
0bcbfb7e mov dword [rbx+0x1c], 0xfffffffb | |
0bcbfb85 mov [rbx+0x18], eax | |
0bcbfb88 mov esi, [rbp+0x18] | |
0bcbfb8b mov ebp, [rsi+0x10] | |
0bcbfb8e cmp dword [rbp+0x4], -0x0c | |
0bcbfb92 jnz 0x0bcb0018 ->2 | |
0bcbfb98 mov ebp, [rbp+0x0] | |
0bcbfb9b cmp dword [rbp+0x1c], +0x01 | |
0bcbfb9f jnz 0x0bcb0018 ->2 | |
0bcbfba5 mov ebp, [rbp+0x14] | |
0bcbfba8 mov rsi, 0xfffffffb41f8f530 | |
0bcbfbb2 cmp rsi, [rbp+0x8] | |
0bcbfbb6 jnz 0x0bcb0018 ->2 | |
0bcbfbbc cmp dword [rbp+0x4], -0x0c | |
0bcbfbc0 jnz 0x0bcb0018 ->2 | |
0bcbfbc6 mov ebp, [rbp+0x0] | |
0bcbfbc9 mov esi, [rbp+0x1c] | |
0bcbfbcc and esi, [rax+0x8] | |
0bcbfbcf lea esi, [rsi+rsi*2] | |
0bcbfbd2 shl esi, 0x03 | |
0bcbfbd5 add esi, [rbp+0x14] | |
0bcbfbd8 cmp dword [rsi+0xc], -0x05 | |
0bcbfbdc jnz 0x0bcbfbe7 | |
0bcbfbde cmp eax, [rsi+0x8] | |
0bcbfbe1 jz 0x0bcb0018 ->2 | |
0bcbfbe7 mov esi, [rsi+0x10] | |
0bcbfbea test esi, esi | |
0bcbfbec jnz 0x0bcbfbd8 | |
0bcbfbee cmp dword [rbp+0x10], +0x00 | |
0bcbfbf2 jnz 0x0bcb0018 ->2 | |
0bcbfbf8 mov edx, 0x40eb3448 | |
0bcbfbfd mov dword [rdx+0x4], 0xfffffffb | |
0bcbfc04 mov [rdx], eax | |
0bcbfc06 mov esi, ebp | |
0bcbfc08 call 0x00422cf0 ->lj_tab_newkey | |
0bcbfc0d mov ebx, eax | |
0bcbfc0f mov edx, [0x40eb34b4] | |
0bcbfc16 mov eax, [rsp+0x8] | |
0bcbfc1a mov dword [rbx+0x4], 0xfffffff4 | |
0bcbfc21 mov [rbx], eax | |
0bcbfc23 test byte [rbp+0x4], 0x4 | |
0bcbfc27 jz 0x0bcbfc3e | |
0bcbfc29 and byte [rbp+0x4], 0xfb | |
0bcbfc2d mov edi, [0x40eb33f4] | |
0bcbfc34 mov [0x40eb33f4], ebp | |
0bcbfc3b mov [rbp+0xc], edi | |
0bcbfc3e mov byte [rbp+0x6], 0x0 | |
0bcbfc42 mov dword [rdx+0xc], 0xfffffff4 | |
0bcbfc49 mov [rdx+0x8], eax | |
0bcbfc4c xor eax, eax | |
0bcbfc4e mov ebx, 0x41f90f58 | |
0bcbfc53 mov r14d, 0x40eb4008 | |
0bcbfc59 add rsp, +0x10 | |
0bcbfc5d jmp 0x00420177 | |
---- TRACE 2 stop -> return | |
---- TRACE 1 exit 1 | |
---- TRACE 1 exit 1 | |
---- TRACE 1 exit 4 | |
---- TRACE 1 exit 4 | |
---- TRACE 1 exit 4 | |
---- TRACE 1 exit 4 | |
---- TRACE 1 exit 4 | |
---- TRACE 1 exit 5 | |
---- TRACE 1 exit 1 | |
---- TRACE 1 exit 1 | |
---- TRACE 1 exit 1 | |
---- TRACE 1 exit 2 | |
---- TRACE 1 exit 1 | |
---- TRACE 1 exit 1 | |
---- TRACE 1 exit 1 | |
---- TRACE 1 exit 3 | |
---- TRACE 1 exit 1 | |
---- TRACE 3 start 1/1 ssa.lua:59 | |
0014 UGET 5 0 ; add_block | |
0015 CALL 5 2 1 | |
0000 . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0016 UGET 6 0 ; add_block | |
0017 CALL 6 2 1 | |
0000 . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . UGET 0 0 ; label_counter | |
0002 . ADDVN 0 0 0 ; 1 | |
0003 . USETV 0 0 ; label_counter | |
0004 . KSTR 0 0 ; "L" | |
0005 . UGET 1 0 ; label_counter | |
0006 . CAT 0 0 1 | |
0007 . TDUP 1 1 | |
0008 . TNEW 2 0 | |
0009 . TSETS 2 1 2 ; "bindings" | |
0010 . TSETS 0 1 3 ; "label" | |
0011 . UGET 2 1 ; ssa | |
0012 . TGETS 2 2 4 ; "blocks" | |
0013 . TSETV 1 2 0 | |
0014 . RET1 1 2 | |
0018 UGET 7 1 ; compile_bool | |
0019 TGETB 8 0 2 | |
0020 MOV 9 1 | |
0021 MOV 10 5 | |
0022 MOV 11 6 | |
0023 CALL 7 1 5 | |
0000 . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0030 . UGET 7 1 ; compile_bool | |
0031 . TGETB 8 0 4 | |
0032 . MOV 9 6 | |
0033 . MOV 10 2 | |
0034 . MOV 11 3 | |
0035 . CALL 7 1 5 | |
0000 . . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0079 . . UGET 5 3 ; finish_return | |
0080 . . MOV 6 1 | |
0081 . . TDUP 7 15 | |
0082 . . CALL 5 1 3 | |
0000 . . . FUNCF 3 ; ssa.lua:46 | |
0001 . . . TDUP 2 1 | |
0002 . . . TSETB 1 2 2 | |
0003 . . . TSETS 2 0 0 ; "control" | |
0004 . . . RET0 0 1 | |
0083 . . JMP 5 => 0094 | |
0094 . . RET0 0 1 | |
0036 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 abort ssa.lua:79 -- down-recursion, restarting | |
---- TRACE 3 start ssa.lua:79 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0070 . ISNES 4 12 ; "match" | |
0071 . JMP 5 => 0077 | |
0077 . ISNES 4 14 ; "fail" | |
0078 . JMP 5 => 0084 | |
0084 . GGET 5 0 ; "assert" | |
0085 . UGET 6 4 ; relops | |
0086 . TGETV 6 6 4 | |
0087 . CALL 5 1 2 | |
0000 . . FUNCC ; assert | |
0088 . UGET 5 5 ; finish_if | |
0089 . MOV 6 1 | |
0090 . MOV 7 0 | |
0091 . MOV 8 2 | |
0092 . MOV 9 3 | |
0093 . CALL 5 1 5 | |
0000 . . FUNCF 6 ; ssa.lua:49 | |
0001 . . TDUP 4 1 | |
0002 . . TSETB 1 4 2 | |
0003 . . TGETS 5 2 2 ; "label" | |
0004 . . TSETB 5 4 3 | |
0005 . . TGETS 5 3 2 ; "label" | |
0006 . . TSETB 5 4 4 | |
0007 . . TSETS 4 0 0 ; "control" | |
0008 . . RET0 0 1 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0024 UGET 7 1 ; compile_bool | |
0025 TGETB 8 0 3 | |
0026 MOV 9 5 | |
0027 MOV 10 2 | |
0028 MOV 11 3 | |
0029 CALL 7 1 5 | |
0000 . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0014 . UGET 5 0 ; add_block | |
0015 . CALL 5 2 1 | |
0000 . . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0016 . UGET 6 0 ; add_block | |
0017 . CALL 6 2 1 | |
0000 . . JFUNCF 3 2 ; ssa.lua:39 | |
0001 . . UGET 0 0 ; label_counter | |
0002 . . ADDVN 0 0 0 ; 1 | |
0003 . . USETV 0 0 ; label_counter | |
0004 . . KSTR 0 0 ; "L" | |
0005 . . UGET 1 0 ; label_counter | |
0006 . . CAT 0 0 1 | |
0007 . . TDUP 1 1 | |
0008 . . TNEW 2 0 | |
0009 . . TSETS 2 1 2 ; "bindings" | |
0010 . . TSETS 0 1 3 ; "label" | |
0011 . . UGET 2 1 ; ssa | |
0012 . . TGETS 2 2 4 ; "blocks" | |
0013 . . TSETV 1 2 0 | |
0014 . . RET1 1 2 | |
0018 . UGET 7 1 ; compile_bool | |
0019 . TGETB 8 0 2 | |
0020 . MOV 9 1 | |
0021 . MOV 10 5 | |
0022 . MOV 11 6 | |
0023 . CALL 7 1 5 | |
0000 . . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0024 . UGET 7 1 ; compile_bool | |
0025 . TGETB 8 0 3 | |
0026 . MOV 9 5 | |
0027 . MOV 10 2 | |
0028 . MOV 11 3 | |
0029 . CALL 7 1 5 | |
0000 . . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0070 . . ISNES 4 12 ; "match" | |
0071 . . JMP 5 => 0077 | |
0077 . . ISNES 4 14 ; "fail" | |
0078 . . JMP 5 => 0084 | |
0084 . . GGET 5 0 ; "assert" | |
0085 . . UGET 6 4 ; relops | |
0086 . . TGETV 6 6 4 | |
0087 . . CALL 5 1 2 | |
0000 . . . FUNCC ; assert | |
0088 . . UGET 5 5 ; finish_if | |
0089 . . MOV 6 1 | |
0090 . . MOV 7 0 | |
0091 . . MOV 8 2 | |
0092 . . MOV 9 3 | |
0093 . . CALL 5 1 5 | |
0000 . . . FUNCF 6 ; ssa.lua:49 | |
0001 . . . TDUP 4 1 | |
0002 . . . TSETB 1 4 2 | |
0003 . . . TGETS 5 2 2 ; "label" | |
0004 . . . TSETB 5 4 3 | |
0005 . . . TGETS 5 3 2 ; "label" | |
0006 . . . TSETB 5 4 4 | |
0007 . . . TSETS 4 0 0 ; "control" | |
0008 . . . RET0 0 1 | |
0094 . . RET0 0 1 | |
0030 . UGET 7 1 ; compile_bool | |
0031 . TGETB 8 0 4 | |
0032 . MOV 9 6 | |
0033 . MOV 10 2 | |
0034 . MOV 11 3 | |
0035 . CALL 7 1 5 | |
0000 . . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . . GGET 4 0 ; "assert" | |
0002 . . GGET 5 1 ; "type" | |
0003 . . MOV 6 0 | |
0004 . . CALL 5 2 2 | |
0000 . . . FUNCC ; type | |
0005 . . ISEQS 5 2 ; "table" | |
0006 . . JMP 5 => 0009 | |
0009 . . KPRI 5 2 | |
0010 . . CALL 4 1 2 | |
0000 . . . FUNCC ; assert | |
0011 . . TGETB 4 0 1 | |
0012 . . ISNES 4 3 ; "if" | |
0013 . . JMP 5 => 0037 | |
0037 . . ISNES 4 4 ; "let" | |
0038 . . JMP 5 => 0056 | |
0056 . . ISNES 4 10 ; "true" | |
0057 . . JMP 5 => 0063 | |
0063 . . ISNES 4 11 ; "false" | |
0064 . . JMP 5 => 0070 | |
0065 . . UGET 5 2 ; finish_goto | |
0066 . . MOV 6 1 | |
0067 . . MOV 7 3 | |
0068 . . CALL 5 1 3 | |
0000 . . . FUNCF 4 ; ssa.lua:52 | |
0001 . . . TDUP 2 1 | |
0002 . . . TGETS 3 1 2 ; "label" | |
0003 . . . TSETB 3 2 2 | |
0004 . . . TSETS 2 0 0 ; "control" | |
0005 . . . RET0 0 1 | |
0069 . . JMP 5 => 0094 | |
0094 . . RET0 0 1 | |
0036 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0030 UGET 7 1 ; compile_bool | |
0031 TGETB 8 0 4 | |
0032 MOV 9 6 | |
0033 MOV 10 2 | |
0034 MOV 11 3 | |
0035 CALL 7 1 5 | |
0000 . JFUNCF 13 1 ; ssa.lua:55 | |
0001 . GGET 4 0 ; "assert" | |
0002 . GGET 5 1 ; "type" | |
0003 . MOV 6 0 | |
0004 . CALL 5 2 2 | |
0000 . . FUNCC ; type | |
0005 . ISEQS 5 2 ; "table" | |
0006 . JMP 5 => 0009 | |
0009 . KPRI 5 2 | |
0010 . CALL 4 1 2 | |
0000 . . FUNCC ; assert | |
0011 . TGETB 4 0 1 | |
0012 . ISNES 4 3 ; "if" | |
0013 . JMP 5 => 0037 | |
0037 . ISNES 4 4 ; "let" | |
0038 . JMP 5 => 0056 | |
0056 . ISNES 4 10 ; "true" | |
0057 . JMP 5 => 0063 | |
0063 . ISNES 4 11 ; "false" | |
0064 . JMP 5 => 0070 | |
0065 . UGET 5 2 ; finish_goto | |
0066 . MOV 6 1 | |
0067 . MOV 7 3 | |
0068 . CALL 5 1 3 | |
0000 . . FUNCF 4 ; ssa.lua:52 | |
0001 . . TDUP 2 1 | |
0002 . . TGETS 3 1 2 ; "label" | |
0003 . . TSETB 3 2 2 | |
0004 . . TSETS 2 0 0 ; "control" | |
0005 . . RET0 0 1 | |
0069 . JMP 5 => 0094 | |
0094 . RET0 0 1 | |
0036 JMP 5 => 0094 | |
0094 RET0 0 1 | |
0055 JMP 5 => 0094 | |
0094 RET0 0 1 | |
---- TRACE 3 IR | |
.... SNAP #0 [ ---- ] | |
.... SNAP #1 [ ---- ] | |
0002 > p32 RETF proto: 0x41f90ad8 [0x41f90b78] | |
.... SNAP #2 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0003 [1mfun[m SLOAD #0 R | |
0004 > [1mfun[m EQ 0003 [1mssa.lua:55[m | |
0005 rbx > [31mtab[m SLOAD #1 T | |
0006 [35mint[m FLOAD 0005 tab.asize | |
0007 > [35mint[m ABC 0006 [35m+3 [m | |
0008 r15 p32 FLOAD 0005 tab.array | |
0009 p32 AREF 0008 [35m+3 [m | |
0010 [7c] > [31mtab[m ALOAD 0009 | |
0011 [78] > [31mtab[m SLOAD #6 T | |
0012 r14 > [31mtab[m SLOAD #3 T | |
0013 r13 > [31mtab[m SLOAD #4 T | |
0014 [48] [31mtab[m FLOAD [1mssa.lua:55[m func.env | |
0015 rsi p32 HREF 0014 [32m"assert"[m | |
0016 > p32 EQ 0015 [0x40eb3458] | |
0017 [3c] [31mtab[m FLOAD 0014 tab.meta | |
0018 > [31mtab[m NE 0017 [31m[NULL][m | |
0019 [35mint[m FLOAD 0017 tab.hmask | |
0020 > [35mint[m EQ 0019 [35m+1 [m | |
0021 rsi p32 FLOAD 0017 tab.node | |
0022 > p32 HREFK 0021 [32m"__index"[m @1 | |
0023 rsi > [31mtab[m HLOAD 0022 | |
0024 [35mint[m FLOAD 0023 tab.hmask | |
0025 > [35mint[m EQ 0024 [35m+63 [m | |
0026 rsi p32 FLOAD 0023 tab.node | |
0027 > p32 HREFK 0026 [32m"assert"[m @3 | |
0028 > [1mfun[m HLOAD 0027 | |
0029 rdx p32 HREF 0014 [32m"type"[m | |
0030 > p32 EQ 0029 [0x40eb3458] | |
0031 > p32 HREFK 0026 [32m"type"[m @60 | |
0032 > [1mfun[m HLOAD 0031 | |
0033 > [1mfun[m EQ 0032 [1mtype[m | |
0034 > [1mfun[m EQ 0028 [1massert[m | |
0035 [35mint[m FLOAD 0010 tab.asize | |
0036 > [35mint[m ABC 0035 [35m+1 [m | |
0037 rsi p32 FLOAD 0010 tab.array | |
0038 p32 AREF 0037 [35m+1 [m | |
0039 [74] > [32mstr[m ALOAD 0038 | |
.... SNAP #3 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0040 > [32mstr[m NE 0039 [32m"if"[m | |
.... SNAP #4 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0041 > [32mstr[m NE 0039 [32m"let"[m | |
.... SNAP #5 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0042 > [32mstr[m NE 0039 [32m"true"[m | |
.... SNAP #6 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0043 > [32mstr[m NE 0039 [32m"false"[m | |
.... SNAP #7 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0044 > [32mstr[m NE 0039 [32m"match"[m | |
.... SNAP #8 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0045 > [32mstr[m NE 0039 [32m"fail"[m | |
.... SNAP #9 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m ] | |
0046 > p32 UREFC [1mssa.lua:55[m #4 | |
0047 [40] > [31mtab[m ULOAD 0046 | |
0048 rsi p32 HREF 0047 0039 | |
0049 > tru HLOAD 0048 | |
0050 [70] > [31mtab[m TDUP [31m{0x41f91468}[m | |
0051 rax p32 FLOAD 0050 tab.array | |
0052 p32 AREF 0051 [35m+2 [m | |
0053 [31mtab[m ASTORE 0052 0010 | |
.... SNAP #10 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|[31m0011[m ---- [31m0012[m [31m0013[m [31m0050[m ] | |
0054 [35mint[m FLOAD 0012 tab.hmask | |
0055 > [35mint[m EQ 0054 [35m+1 [m | |
0056 r15 p32 FLOAD 0012 tab.node | |
0057 > p32 HREFK 0056 [32m"label"[m @1 | |
0058 r15 > [32mstr[m HLOAD 0057 | |
0059 p32 AREF 0051 [35m+3 [m | |
0060 [32mstr[m ASTORE 0059 0058 | |
.... SNAP #11 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|[31m0011[m ---- ---- [31m0013[m [31m0050[m ---- ] | |
0061 [35mint[m FLOAD 0013 tab.hmask | |
0062 > [35mint[m EQ 0061 [35m+1 [m | |
0063 r15 p32 FLOAD 0013 tab.node | |
0064 > p32 HREFK 0063 [32m"label"[m @1 | |
0065 r15 > [32mstr[m HLOAD 0064 | |
0066 p32 AREF 0051 [35m+4 [m | |
0067 [32mstr[m ASTORE 0066 0065 | |
.... SNAP #12 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|[31m0011[m ---- ---- ---- [31m0050[m ---- ] | |
0068 rdx p32 HREF 0011 [32m"control"[m | |
0069 > p32 EQ 0068 [0x40eb3458] | |
0070 [31mtab[m FLOAD 0011 tab.meta | |
0071 > [31mtab[m EQ 0070 [31m[NULL][m | |
0072 r15 p32 NEWREF 0011 [32m"control"[m | |
0073 [31mtab[m HSTORE 0072 0050 | |
0074 nil TBAR 0011 | |
.... SNAP #13 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0010[m [31m0011[m [31m0012[m [31m0013[m [32m0039[m [1mssa.lua:49[m|---- ---- ---- ---- ---- ---- ] | |
0075 [35mint[m FLOAD 0005 tab.asize | |
0076 > [35mint[m ABC 0075 [35m+4 [m | |
0077 rbx p32 FLOAD 0005 tab.array | |
0078 p32 AREF 0077 [35m+4 [m | |
0079 r15 > [31mtab[m ALOAD 0078 | |
0080 rbx > [31mtab[m SLOAD #7 T | |
0081 rax p32 HREF 0014 [32m"assert"[m | |
0082 > p32 EQ 0081 [0x40eb3458] | |
0083 [35mint[m FLOAD 0017 tab.hmask | |
0084 > [35mint[m EQ 0083 [35m+1 [m | |
0085 r12 p32 FLOAD 0017 tab.node | |
0086 > p32 HREFK 0085 [32m"__index"[m @1 | |
0087 r12 > [31mtab[m HLOAD 0086 | |
0088 [35mint[m FLOAD 0087 tab.hmask | |
0089 > [35mint[m EQ 0088 [35m+63 [m | |
0090 r12 p32 FLOAD 0087 tab.node | |
0091 > p32 HREFK 0090 [32m"assert"[m @3 | |
0092 > [1mfun[m HLOAD 0091 | |
0093 rax p32 HREF 0014 [32m"type"[m | |
0094 > p32 EQ 0093 [0x40eb3458] | |
0095 > p32 HREFK 0090 [32m"type"[m @60 | |
0096 > [1mfun[m HLOAD 0095 | |
0097 > [1mfun[m EQ 0096 [1mtype[m | |
0098 > [1mfun[m EQ 0092 [1massert[m | |
0099 [35mint[m FLOAD 0079 tab.asize | |
0100 > [35mint[m ABC 0099 [35m+1 [m | |
0101 r12 p32 FLOAD 0079 tab.array | |
0102 p32 AREF 0101 [35m+1 [m | |
0103 r12 > [32mstr[m ALOAD 0102 | |
.... SNAP #14 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0104 > [32mstr[m NE 0103 [32m"if"[m | |
.... SNAP #15 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0105 > [32mstr[m NE 0103 [32m"let"[m | |
.... SNAP #16 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0106 > [32mstr[m NE 0103 [32m"true"[m | |
.... SNAP #17 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0107 > [32mstr[m EQ 0103 [32m"false"[m | |
.... SNAP #18 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m ] | |
0108 [6c] > [31mtab[m TDUP [31m{0x41f91748}[m | |
0109 [35mint[m FLOAD 0013 tab.hmask | |
0110 > [35mint[m EQ 0109 [35m+1 [m | |
0111 rsi p32 FLOAD 0013 tab.node | |
0112 > p32 HREFK 0111 [32m"label"[m @1 | |
0113 rsi > [32mstr[m HLOAD 0112 | |
0114 rax p32 FLOAD 0108 tab.array | |
0115 p32 AREF 0114 [35m+2 [m | |
0116 [32mstr[m ASTORE 0115 0113 | |
.... SNAP #19 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0079[m [31m0080[m [31m0012[m [31m0013[m [32m0103[m [1mssa.lua:52[m|[31m0080[m ---- [31m0108[m ---- ] | |
0117 rsi p32 HREF 0080 [32m"control"[m | |
0118 > p32 EQ 0117 [0x40eb3458] | |
0119 [31mtab[m FLOAD 0080 tab.meta | |
0120 > [31mtab[m EQ 0119 [31m[NULL][m | |
0121 r15 p32 NEWREF 0080 [32m"control"[m | |
0122 [31mtab[m HSTORE 0121 0108 | |
0123 nil TBAR 0080 | |
.... SNAP #20 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ] | |
0124 > p32 RETF proto: 0x41f90ad8 [0x41f90b78] | |
.... SNAP #21 [ ---- ---- ---- ---- ---- ---- ---- ---- ] | |
0125 [1mfun[m SLOAD #0 R | |
0126 > [1mfun[m EQ 0125 [1mssa.lua:55[m | |
0127 rbx > [31mtab[m SLOAD #1 T | |
0128 [35mint[m FLOAD 0127 tab.asize | |
0129 > [35mint[m ABC 0128 [35m+3 [m | |
0130 r15 p32 FLOAD 0127 tab.array | |
0131 p32 AREF 0130 [35m+3 [m | |
0132 [18] > [31mtab[m ALOAD 0131 | |
0133 [14] > [31mtab[m SLOAD #6 T | |
0134 r15 > [31mtab[m SLOAD #3 T | |
0135 r14 > [31mtab[m SLOAD #4 T | |
0136 rdi p32 HREF 0014 [32m"assert"[m | |
0137 > p32 EQ 0136 [0x40eb3458] | |
0138 [35mint[m FLOAD 0017 tab.hmask | |
0139 > [35mint[m EQ 0138 [35m+1 [m | |
0140 r12 p32 FLOAD 0017 tab.node | |
0141 > p32 HREFK 0140 [32m"__index"[m @1 | |
0142 r12 > [31mtab[m HLOAD 0141 | |
0143 [35mint[m FLOAD 0142 tab.hmask | |
0144 > [35mint[m EQ 0143 [35m+63 [m | |
0145 r12 p32 FLOAD 0142 tab.node | |
0146 > p32 HREFK 0145 [32m"assert"[m @3 | |
0147 > [1mfun[m HLOAD 0146 | |
0148 rdi p32 HREF 0014 [32m"type"[m | |
0149 > p32 EQ 0148 [0x40eb3458] | |
0150 > p32 HREFK 0145 [32m"type"[m @60 | |
0151 > [1mfun[m HLOAD 0150 | |
0152 > [1mfun[m EQ 0151 [1mtype[m | |
0153 > [1mfun[m EQ 0147 [1massert[m | |
0154 [35mint[m FLOAD 0132 tab.asize | |
0155 > [35mint[m ABC 0154 [35m+1 [m | |
0156 r12 p32 FLOAD 0132 tab.array | |
0157 p32 AREF 0156 [35m+1 [m | |
0158 [10] > [32mstr[m ALOAD 0157 | |
.... SNAP #22 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m ] | |
0159 > [32mstr[m EQ 0158 [32m"if"[m | |
.... SNAP #23 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m ] | |
0160 [64] > p32 UREFO [1mssa.lua:39[m #0 | |
0161 xmm7 > [34mnum[m ULOAD 0160 | |
0162 [58] [34mnum[m ADD 0161 [34m+1 [m | |
0163 [34mnum[m USTORE 0160 0162 | |
.... SNAP #24 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [1mssa.lua:39[m|---- ] | |
0164 [32mstr[m TOSTR 0162 NUM | |
0165 rdi p32 BUFHDR [0x40eb3414] RESET | |
0166 rdi p32 BUFPUT 0165 [32m"L" [m | |
0167 rdi p32 BUFPUT 0166 0164 | |
0168 [68] [32mstr[m BUFSTR 0167 0165 | |
0169 [c] > [31mtab[m TDUP [31m{0x41f902b8}[m | |
0170 rsi > [31mtab[m TNEW #0 #0 | |
0171 r12 p32 FLOAD 0169 tab.node | |
0172 p32 HREFK 0171 [32m"bindings"[m @2 | |
0173 [31mtab[m HSTORE 0172 0170 | |
0174 p32 HREFK 0171 [32m"label"[m @3 | |
0175 [32mstr[m HSTORE 0174 0168 | |
.... SNAP #25 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [1mssa.lua:39[m|[32m0168[m [31m0169[m ---- ] | |
0176 r12 > p32 UREFO [1mssa.lua:39[m #1 | |
0177 r12 > [31mtab[m ULOAD 0176 | |
0178 [35mint[m FLOAD 0177 tab.hmask | |
0179 > [35mint[m EQ 0178 [35m+1 [m | |
0180 rsi p32 FLOAD 0177 tab.node | |
0181 > p32 HREFK 0180 [32m"blocks"[m @0 | |
0182 [60] > [31mtab[m HLOAD 0181 | |
0183 rdx p32 HREF 0182 0168 | |
0184 > p32 EQ 0183 [0x40eb3458] | |
0185 [31mtab[m FLOAD 0182 tab.meta | |
0186 > [31mtab[m EQ 0185 [31m[NULL][m | |
0187 rax p32 NEWREF 0182 0168 | |
0188 [31mtab[m HSTORE 0187 0169 | |
0189 nil TBAR 0182 | |
0190 p32 FREF 0182 tab.nomm | |
0191 [35mu8 [m FSTORE 0190 [35m+0 [m | |
0192 [50] [34mnum[m ADD 0162 [34m+1 [m | |
0193 [34mnum[m USTORE 0160 0192 | |
.... SNAP #26 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [1mssa.lua:39[m|---- ] | |
0194 [32mstr[m TOSTR 0192 NUM | |
0195 rdi p32 BUFHDR [0x40eb3414] RESET | |
0196 rdi p32 BUFPUT 0195 [32m"L" [m | |
0197 rdi p32 BUFPUT 0196 0194 | |
0198 [4c] [32mstr[m BUFSTR 0197 0195 | |
0199 [28] > [31mtab[m TDUP [31m{0x41f902b8}[m | |
0200 rsi > [31mtab[m TNEW #0 #0 | |
0201 [1c] p32 FLOAD 0199 tab.node | |
0202 p32 HREFK 0201 [32m"bindings"[m @2 | |
0203 [31mtab[m HSTORE 0202 0200 | |
0204 p32 HREFK 0201 [32m"label"[m @3 | |
0205 [32mstr[m HSTORE 0204 0198 | |
.... SNAP #27 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [1mssa.lua:39[m|[32m0198[m [31m0199[m ---- ] | |
0206 [35mint[m FLOAD 0177 tab.hmask | |
0207 > [35mint[m EQ 0206 [35m+1 [m | |
0208 r12 p32 FLOAD 0177 tab.node | |
0209 > p32 HREFK 0208 [32m"blocks"[m @0 | |
0210 r12 > [31mtab[m HLOAD 0209 | |
0211 rsi p32 HREF 0210 0198 | |
0212 > p32 EQ 0211 [0x40eb3458] | |
0213 [31mtab[m FLOAD 0210 tab.meta | |
0214 > [31mtab[m EQ 0213 [31m[NULL][m | |
0215 rax p32 NEWREF 0210 0198 | |
0216 [31mtab[m HSTORE 0215 0199 | |
0217 nil TBAR 0210 | |
0218 p32 FREF 0210 tab.nomm | |
0219 [35mu8 [m FSTORE 0218 [35m+0 [m | |
.... SNAP #28 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [1mssa.lua:39[m|---- [31m0199[m ---- ] | |
0220 [35mint[m FLOAD 0132 tab.asize | |
0221 > [35mint[m ABC 0220 [35m+2 [m | |
0222 r12 p32 FLOAD 0132 tab.array | |
0223 p32 AREF 0222 [35m+2 [m | |
0224 r12 > [31mtab[m ALOAD 0223 | |
0225 rcx p32 HREF 0014 [32m"assert"[m | |
0226 > p32 EQ 0225 [0x40eb3458] | |
0227 [35mint[m FLOAD 0017 tab.hmask | |
0228 > [35mint[m EQ 0227 [35m+1 [m | |
0229 rsi p32 FLOAD 0017 tab.node | |
0230 > p32 HREFK 0229 [32m"__index"[m @1 | |
0231 rsi > [31mtab[m HLOAD 0230 | |
0232 [35mint[m FLOAD 0231 tab.hmask | |
0233 > [35mint[m EQ 0232 [35m+63 [m | |
0234 rsi p32 FLOAD 0231 tab.node | |
0235 > p32 HREFK 0234 [32m"assert"[m @3 | |
0236 > [1mfun[m HLOAD 0235 | |
0237 rcx p32 HREF 0014 [32m"type"[m | |
0238 > p32 EQ 0237 [0x40eb3458] | |
0239 > p32 HREFK 0234 [32m"type"[m @60 | |
0240 > [1mfun[m HLOAD 0239 | |
0241 > [1mfun[m EQ 0240 [1mtype[m | |
0242 > [1mfun[m EQ 0236 [1massert[m | |
0243 [35mint[m FLOAD 0224 tab.asize | |
0244 > [35mint[m ABC 0243 [35m+1 [m | |
0245 rsi p32 FLOAD 0224 tab.array | |
0246 p32 AREF 0245 [35m+1 [m | |
0247 [38] > [32mstr[m ALOAD 0246 | |
.... SNAP #29 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0248 > [32mstr[m NE 0247 [32m"if"[m | |
.... SNAP #30 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0249 > [32mstr[m NE 0247 [32m"let"[m | |
.... SNAP #31 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0250 > [32mstr[m NE 0247 [32m"true"[m | |
.... SNAP #32 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0251 > [32mstr[m NE 0247 [32m"false"[m | |
.... SNAP #33 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0252 > [32mstr[m NE 0247 [32m"match"[m | |
.... SNAP #34 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0253 > [32mstr[m NE 0247 [32m"fail"[m | |
.... SNAP #35 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m ] | |
0254 rsi p32 HREF 0047 0247 | |
0255 > tru HLOAD 0254 | |
0256 [44] > [31mtab[m TDUP [31m{0x41f91468}[m | |
0257 rdx p32 FLOAD 0256 tab.array | |
0258 p32 AREF 0257 [35m+2 [m | |
0259 [31mtab[m ASTORE 0258 0224 | |
.... SNAP #36 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m [1mssa.lua:49[m|[31m0133[m ---- [31m0169[m [31m0199[m [31m0256[m ] | |
0260 [35mint[m FLOAD 0169 tab.hmask | |
0261 > [35mint[m EQ 0260 [35m+3 [m | |
0262 [2c] p32 FLOAD 0169 tab.node | |
0263 > p32 HREFK 0262 [32m"label"[m @3 | |
0264 rcx > [32mstr[m HLOAD 0263 | |
0265 p32 AREF 0257 [35m+3 [m | |
0266 [32mstr[m ASTORE 0265 0264 | |
0267 p32 AREF 0257 [35m+4 [m | |
0268 [32mstr[m ASTORE 0267 0198 | |
.... SNAP #37 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m [1mssa.lua:49[m|[31m0133[m ---- ---- ---- [31m0256[m ---- ] | |
0269 rdx p32 HREF 0133 [32m"control"[m | |
0270 > p32 EQ 0269 [0x40eb3458] | |
0271 [31mtab[m FLOAD 0133 tab.meta | |
0272 > [31mtab[m EQ 0271 [31m[NULL][m | |
0273 r9 p32 NEWREF 0133 [32m"control"[m | |
0274 [31mtab[m HSTORE 0273 0256 | |
0275 nil TBAR 0133 | |
.... SNAP #38 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0224[m [31m0133[m [31m0169[m [31m0199[m [32m0247[m [1mssa.lua:49[m|---- ---- ---- ---- ---- ---- ] | |
0276 [35mint[m FLOAD 0132 tab.asize | |
0277 > [35mint[m ABC 0276 [35m+4 [m | |
0278 [30] p32 FLOAD 0132 tab.array | |
0279 p32 AREF 0278 [35m+3 [m | |
0280 r13 > [31mtab[m ALOAD 0279 | |
0281 rax p32 HREF 0014 [32m"assert"[m | |
0282 > p32 EQ 0281 [0x40eb3458] | |
0283 [35mint[m FLOAD 0017 tab.hmask | |
0284 > [35mint[m EQ 0283 [35m+1 [m | |
0285 rdx p32 FLOAD 0017 tab.node | |
0286 > p32 HREFK 0285 [32m"__index"[m @1 | |
0287 rdx > [31mtab[m HLOAD 0286 | |
0288 [35mint[m FLOAD 0287 tab.hmask | |
0289 > [35mint[m EQ 0288 [35m+63 [m | |
0290 rdx p32 FLOAD 0287 tab.node | |
0291 > p32 HREFK 0290 [32m"assert"[m @3 | |
0292 > [1mfun[m HLOAD 0291 | |
0293 rax p32 HREF 0014 [32m"type"[m | |
0294 > p32 EQ 0293 [0x40eb3458] | |
0295 > p32 HREFK 0290 [32m"type"[m @60 | |
0296 > [1mfun[m HLOAD 0295 | |
0297 > [1mfun[m EQ 0296 [1mtype[m | |
0298 > [1mfun[m EQ 0292 [1massert[m | |
0299 [35mint[m FLOAD 0280 tab.asize | |
0300 > [35mint[m ABC 0299 [35m+1 [m | |
0301 rdx p32 FLOAD 0280 tab.array | |
0302 p32 AREF 0301 [35m+1 [m | |
0303 [34] > [32mstr[m ALOAD 0302 | |
.... SNAP #39 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0304 > [32mstr[m NE 0303 [32m"if"[m | |
.... SNAP #40 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0305 > [32mstr[m NE 0303 [32m"let"[m | |
.... SNAP #41 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0306 > [32mstr[m NE 0303 [32m"true"[m | |
.... SNAP #42 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0307 > [32mstr[m NE 0303 [32m"false"[m | |
.... SNAP #43 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0308 > [32mstr[m NE 0303 [32m"match"[m | |
.... SNAP #44 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0309 > [32mstr[m NE 0303 [32m"fail"[m | |
.... SNAP #45 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m ] | |
0310 r12 p32 HREF 0047 0303 | |
0311 > tru HLOAD 0310 | |
0312 rax > [31mtab[m TDUP [31m{0x41f91468}[m | |
0313 r11 p32 FLOAD 0312 tab.array | |
0314 p32 AREF 0313 [35m+2 [m | |
0315 [31mtab[m ASTORE 0314 0280 | |
.... SNAP #46 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|[31m0169[m ---- [31m0134[m [31m0135[m [31m0312[m ] | |
0316 [35mint[m FLOAD 0134 tab.hmask | |
0317 > [35mint[m EQ 0316 [35m+1 [m | |
0318 r12 p32 FLOAD 0134 tab.node | |
0319 > p32 HREFK 0318 [32m"label"[m @1 | |
0320 r12 > [32mstr[m HLOAD 0319 | |
0321 p32 AREF 0313 [35m+3 [m | |
0322 [32mstr[m ASTORE 0321 0320 | |
.... SNAP #47 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|[31m0169[m ---- ---- [31m0135[m [31m0312[m ---- ] | |
0323 [35mint[m FLOAD 0135 tab.hmask | |
0324 > [35mint[m EQ 0323 [35m+1 [m | |
0325 r12 p32 FLOAD 0135 tab.node | |
0326 > p32 HREFK 0325 [32m"label"[m @1 | |
0327 r12 > [32mstr[m HLOAD 0326 | |
0328 p32 AREF 0313 [35m+4 [m | |
0329 [32mstr[m ASTORE 0328 0327 | |
.... SNAP #48 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|[31m0169[m ---- ---- ---- [31m0312[m ---- ] | |
0330 > p32 HREFK 0262 [32m"control"[m @1 | |
0331 [31mtab[m HSTORE 0330 0312 | |
.... SNAP #49 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0280[m [31m0169[m [31m0134[m [31m0135[m [32m0303[m [1mssa.lua:49[m|---- ---- ---- ---- ---- ---- ] | |
0332 p32 AREF 0278 [35m+4 [m | |
0333 [24] > [31mtab[m ALOAD 0332 | |
0334 [35mint[m FLOAD 0333 tab.asize | |
0335 > [35mint[m ABC 0334 [35m+1 [m | |
0336 rdx p32 FLOAD 0333 tab.array | |
0337 p32 AREF 0336 [35m+1 [m | |
0338 [20] > [32mstr[m ALOAD 0337 | |
.... SNAP #50 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0339 > [32mstr[m NE 0338 [32m"if"[m | |
.... SNAP #51 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0340 > [32mstr[m NE 0338 [32m"let"[m | |
.... SNAP #52 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0341 > [32mstr[m NE 0338 [32m"true"[m | |
.... SNAP #53 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0342 > [32mstr[m EQ 0338 [32m"false"[m | |
.... SNAP #54 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m ] | |
0343 r13 > [31mtab[m TDUP [31m{0x41f91748}[m | |
0344 rdi p32 FLOAD 0343 tab.array | |
0345 p32 AREF 0344 [35m+2 [m | |
0346 [32mstr[m ASTORE 0345 0327 | |
0347 p32 HREFK 0201 [32m"control"[m @1 | |
0348 [31mtab[m HSTORE 0347 0343 | |
.... SNAP #55 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0132[m [31m0133[m [31m0134[m [31m0135[m [32m0158[m [31m0169[m [31m0199[m [1mssa.lua:55[m|[31m0333[m [31m0199[m [31m0134[m [31m0135[m [32m0338[m [1mssa.lua:52[m|---- ---- ---- ---- ] | |
0349 [35mint[m FLOAD 0127 tab.asize | |
0350 > [35mint[m ABC 0349 [35m+4 [m | |
0351 rbx p32 FLOAD 0127 tab.array | |
0352 p32 AREF 0351 [35m+4 [m | |
0353 rbx > [31mtab[m ALOAD 0352 | |
0354 rbp > [31mtab[m SLOAD #7 T | |
0355 [35mint[m FLOAD 0353 tab.asize | |
0356 > [35mint[m ABC 0355 [35m+1 [m | |
0357 r13 p32 FLOAD 0353 tab.array | |
0358 p32 AREF 0357 [35m+1 [m | |
0359 r13 > [32mstr[m ALOAD 0358 | |
.... SNAP #56 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0360 > [32mstr[m NE 0359 [32m"if"[m | |
.... SNAP #57 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0361 > [32mstr[m NE 0359 [32m"let"[m | |
.... SNAP #58 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0362 > [32mstr[m NE 0359 [32m"true"[m | |
.... SNAP #59 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0363 > [32mstr[m EQ 0359 [32m"false"[m | |
.... SNAP #60 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m ] | |
0364 [8] > [31mtab[m TDUP [31m{0x41f91748}[m | |
0365 rax p32 FLOAD 0364 tab.array | |
0366 p32 AREF 0365 [35m+2 [m | |
0367 [32mstr[m ASTORE 0366 0327 | |
.... SNAP #61 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ---- ---- [1mssa.lua:55[m|[31m0353[m [31m0354[m [31m0134[m [31m0135[m [32m0359[m [1mssa.lua:52[m|[31m0354[m ---- [31m0364[m ---- ] | |
0368 rsi p32 HREF 0354 [32m"control"[m | |
0369 > p32 EQ 0368 [0x40eb3458] | |
0370 [31mtab[m FLOAD 0354 tab.meta | |
0371 > [31mtab[m EQ 0370 [31m[NULL][m | |
0372 rbx p32 NEWREF 0354 [32m"control"[m | |
0373 [31mtab[m HSTORE 0372 0364 | |
0374 nil TBAR 0354 | |
.... SNAP #62 [ [1mssa.lua:55[m|---- ---- ---- ---- ---- ] | |
0375 > p32 RETF proto: 0x41f90ad8 [0x41f90bf4] | |
.... SNAP #63 [ ---- ] | |
---- TRACE 3 mcode 4549 | |
0bcbe8e1 add rsp, -0x70 | |
0bcbe8e5 mov dword [0x40eb3410], 0x3 | |
0bcbe8f0 mov ebp, edx | |
0bcbe8f2 mov edi, [0x40eb33d8] | |
0bcbe8f9 cmp edi, [0x40eb33dc] | |
0bcbe900 jb 0x0bcbe919 | |
0bcbe902 mov esi, 0xc | |
0bcbe907 mov edi, 0x40eb33b8 | |
0bcbe90c call 0x00421730 ->lj_gc_step_jit | |
0bcbe911 test eax, eax | |
0bcbe913 jnz 0x0bcb0010 ->0 | |
0bcbe919 mov edi, [0x40eb34b0] | |
0bcbe920 cmp dword [rbp-0x4], 0x41f90b78 | |
0bcbe927 jnz 0x0bcb0014 ->1 | |
0bcbe92d add ebp, -0x40 | |
0bcbe930 mov [0x40eb34b4], ebp | |
0bcbe937 cmp dword [rbp-0x8], 0x40ecf6e0 | |
0bcbe93e jnz 0x0bcb0018 ->2 | |
0bcbe944 cmp dword [rbp+0x4], -0x0c | |
0bcbe948 jnz 0x0bcb0018 ->2 | |
0bcbe94e mov ebx, [rbp+0x0] | |
0bcbe951 cmp dword [rbx+0x18], +0x03 | |
0bcbe955 jbe 0x0bcb0018 ->2 | |
0bcbe95b mov r15d, [rbx+0x8] | |
0bcbe95f cmp dword [r15+0x1c], -0x0c | |
0bcbe964 jnz 0x0bcb0018 ->2 | |
0bcbe96a mov r15d, [r15+0x18] | |
0bcbe96e mov [rsp+0x7c], r15d | |
0bcbe973 cmp dword [rbp+0x2c], -0x0c | |
0bcbe977 jnz 0x0bcb0018 ->2 | |
0bcbe97d mov esi, [rbp+0x28] | |
0bcbe980 mov [rsp+0x78], esi | |
0bcbe984 cmp dword [rbp+0x14], -0x0c | |
0bcbe988 jnz 0x0bcb0018 ->2 | |
0bcbe98e mov r14d, [rbp+0x10] | |
0bcbe992 cmp dword [rbp+0x1c], -0x0c | |
0bcbe996 jnz 0x0bcb0018 ->2 | |
0bcbe99c mov r13d, [rbp+0x18] | |
0bcbe9a0 mov r11d, [0x40ecf6e8] | |
0bcbe9a8 mov [rsp+0x48], r11d | |
0bcbe9ad mov esi, [r11+0x1c] | |
0bcbe9b1 and esi, 0xce2b6183 | |
0bcbe9b7 lea esi, [rsi+rsi*2] | |
0bcbe9ba shl esi, 0x03 | |
0bcbe9bd add esi, [r11+0x14] | |
0bcbe9c1 cmp dword [rsi+0xc], -0x05 | |
0bcbe9c5 jnz 0x0bcbe9d4 | |
0bcbe9c7 cmp dword [rsi+0x8], 0x40eb5db0 | |
0bcbe9ce jz 0x0bcb0018 ->2 | |
0bcbe9d4 mov esi, [rsi+0x10] | |
0bcbe9d7 test esi, esi | |
0bcbe9d9 jnz 0x0bcbe9c1 | |
0bcbe9db mov r12d, [r11+0x10] | |
0bcbe9df mov [rsp+0x3c], r12d | |
0bcbe9e4 test r12d, r12d | |
0bcbe9e7 jz 0x0bcb0018 ->2 | |
0bcbe9ed cmp dword [r12+0x1c], +0x01 | |
0bcbe9f3 jnz 0x0bcb0018 ->2 | |
0bcbe9f9 mov esi, [r12+0x14] | |
0bcbe9fe mov rdx, 0xfffffffb40eb54c8 | |
0bcbea08 cmp rdx, [rsi+0x20] | |
0bcbea0c jnz 0x0bcb0018 ->2 | |
0bcbea12 cmp dword [rsi+0x1c], -0x0c | |
0bcbea16 jnz 0x0bcb0018 ->2 | |
0bcbea1c mov esi, [rsi+0x18] | |
0bcbea1f cmp dword [rsi+0x1c], +0x3f | |
0bcbea23 jnz 0x0bcb0018 ->2 | |
0bcbea29 mov esi, [rsi+0x14] | |
0bcbea2c mov rdx, 0xfffffffb40eb5db0 | |
0bcbea36 cmp rdx, [rsi+0x50] | |
0bcbea3a jnz 0x0bcb0018 ->2 | |
0bcbea40 cmp dword [rsi+0x4c], -0x09 | |
0bcbea44 jnz 0x0bcb0018 ->2 | |
0bcbea4a mov edx, [r11+0x1c] | |
0bcbea4e and edx, 0x798a813c | |
0bcbea54 lea edx, [rdx+rdx*2] | |
0bcbea57 shl edx, 0x03 | |
0bcbea5a add edx, [r11+0x14] | |
0bcbea5e cmp dword [rdx+0xc], -0x05 | |
0bcbea62 jnz 0x0bcbea71 | |
0bcbea64 cmp dword [rdx+0x8], 0x40eb5fb0 | |
0bcbea6b jz 0x0bcb0018 ->2 | |
0bcbea71 mov edx, [rdx+0x10] | |
0bcbea74 test edx, edx | |
0bcbea76 jnz 0x0bcbea5e | |
0bcbea78 mov rdx, 0xfffffffb40eb5fb0 | |
0bcbea82 cmp rdx, [rsi+0x5a8] | |
0bcbea89 jnz 0x0bcb0018 ->2 | |
0bcbea8f cmp dword [rsi+0x5a4], -0x09 | |
0bcbea96 jnz 0x0bcb0018 ->2 | |
0bcbea9c cmp dword [rsi+0x5a0], 0x40eb5f18 | |
0bcbeaa6 jnz 0x0bcb0018 ->2 | |
0bcbeaac cmp dword [rsi+0x48], 0x40eb5d88 | |
0bcbeab3 jnz 0x0bcb0018 ->2 | |
0bcbeab9 cmp dword [r15+0x18], +0x01 | |
0bcbeabe jbe 0x0bcb0018 ->2 | |
0bcbeac4 mov esi, [r15+0x8] | |
0bcbeac8 cmp dword [rsi+0xc], -0x05 | |
0bcbeacc jnz 0x0bcb0018 ->2 | |
0bcbead2 mov ecx, [rsi+0x8] | |
0bcbead5 mov [rsp+0x74], ecx | |
0bcbead9 cmp ecx, 0x40eb58f8 | |
0bcbeadf jz 0x0bcb001c ->3 | |
0bcbeae5 cmp ecx, 0x41f91978 | |
0bcbeaeb jz 0x0bcb0020 ->4 | |
0bcbeaf1 cmp ecx, 0x40eb5a18 | |
0bcbeaf7 jz 0x0bcb0024 ->5 | |
0bcbeafd cmp ecx, 0x40eb5870 | |
0bcbeb03 jz 0x0bcb0028 ->6 | |
0bcbeb09 cmp ecx, 0x40eb8cb0 | |
0bcbeb0f jz 0x0bcb002c ->7 | |
0bcbeb15 cmp ecx, 0x41f91a50 | |
0bcbeb1b jz 0x0bcb0030 ->8 | |
0bcbeb21 cmp dword [0x41f85324], -0x0c | |
0bcbeb29 jnz 0x0bcb0034 ->9 | |
0bcbeb2f mov edx, [0x41f85320] | |
0bcbeb36 mov [rsp+0x40], edx | |
0bcbeb3a mov esi, [rdx+0x1c] | |
0bcbeb3d and esi, [rcx+0x8] | |
0bcbeb40 lea esi, [rsi+rsi*2] | |
0bcbeb43 shl esi, 0x03 | |
0bcbeb46 add esi, [rdx+0x14] | |
0bcbeb49 cmp dword [rsi+0xc], -0x05 | |
0bcbeb4d jnz 0x0bcbeb54 | |
0bcbeb4f cmp ecx, [rsi+0x8] | |
0bcbeb52 jz 0x0bcbeb60 | |
0bcbeb54 mov esi, [rsi+0x10] | |
0bcbeb57 test esi, esi | |
0bcbeb59 jnz 0x0bcbeb49 | |
0bcbeb5b mov esi, 0x40eb3458 | |
0bcbeb60 cmp dword [rsi+0x4], -0x03 | |
0bcbeb64 jnz 0x0bcb0034 ->9 | |
0bcbeb6a mov esi, 0x41f91468 | |
0bcbeb6f call 0x004223c0 ->lj_tab_dup | |
0bcbeb74 mov [rsp+0x70], eax | |
0bcbeb78 mov edi, [0x40eb34b0] | |
0bcbeb7f mov esi, [rsp+0x78] | |
0bcbeb83 mov eax, [rax+0x8] | |
0bcbeb86 mov dword [rax+0x14], 0xfffffff4 | |
0bcbeb8d mov [rax+0x10], r15d | |
0bcbeb91 cmp dword [r14+0x1c], +0x01 | |
0bcbeb96 jnz 0x0bcb0038 ->10 | |
0bcbeb9c mov r15d, [r14+0x14] | |
0bcbeba0 mov rdx, 0xfffffffb41f8f5d0 | |
0bcbebaa cmp rdx, [r15+0x20] | |
0bcbebae jnz 0x0bcb0038 ->10 | |
0bcbebb4 cmp dword [r15+0x1c], -0x05 | |
0bcbebb9 jnz 0x0bcb0038 ->10 | |
0bcbebbf mov r15d, [r15+0x18] | |
0bcbebc3 mov dword [rax+0x1c], 0xfffffffb | |
0bcbebca mov [rax+0x18], r15d | |
0bcbebce cmp dword [r13+0x1c], +0x01 | |
0bcbebd3 jnz 0x0bcb003c ->11 | |
0bcbebd9 mov r15d, [r13+0x14] | |
0bcbebdd mov rdx, 0xfffffffb41f8f5d0 | |
0bcbebe7 cmp rdx, [r15+0x20] | |
0bcbebeb jnz 0x0bcb003c ->11 | |
0bcbebf1 cmp dword [r15+0x1c], -0x05 | |
0bcbebf6 jnz 0x0bcb003c ->11 | |
0bcbebfc mov r15d, [r15+0x18] | |
0bcbec00 mov dword [rax+0x24], 0xfffffffb | |
0bcbec07 mov [rax+0x20], r15d | |
0bcbec0b mov edx, [rsi+0x1c] | |
0bcbec0e and edx, 0x2a54dc55 | |
0bcbec14 lea edx, [rdx+rdx*2] | |
0bcbec17 shl edx, 0x03 | |
0bcbec1a add edx, [rsi+0x14] | |
0bcbec1d cmp dword [rdx+0xc], -0x05 | |
0bcbec21 jnz 0x0bcbec30 | |
0bcbec23 cmp dword [rdx+0x8], 0x41f8fd38 | |
0bcbec2a jz 0x0bcb0040 ->12 | |
0bcbec30 mov edx, [rdx+0x10] | |
0bcbec33 test edx, edx | |
0bcbec35 jnz 0x0bcbec1d | |
0bcbec37 cmp dword [rsi+0x10], +0x00 | |
0bcbec3b jnz 0x0bcb0040 ->12 | |
0bcbec41 mov edx, 0x40eb3448 | |
0bcbec46 mov dword [rdx+0x4], 0xfffffffb | |
0bcbec4d mov dword [rdx], 0x41f8fd38 | |
0bcbec53 call 0x00422cf0 ->lj_tab_newkey | |
0bcbec58 mov r15d, eax | |
0bcbec5b mov r11d, [rsp+0x48] | |
0bcbec60 mov edi, [0x40eb34b0] | |
0bcbec67 mov edx, [rsp+0x78] | |
0bcbec6b mov eax, [rsp+0x70] | |
0bcbec6f mov dword [r15+0x4], 0xfffffff4 | |
0bcbec77 mov [r15], eax | |
0bcbec7a test byte [rdx+0x4], 0x4 | |
0bcbec7e jz 0x0bcbec95 | |
0bcbec80 and byte [rdx+0x4], 0xfb | |
0bcbec84 mov eax, [0x40eb33f4] | |
0bcbec8b mov [0x40eb33f4], edx | |
0bcbec92 mov [rdx+0xc], eax | |
0bcbec95 cmp dword [rbx+0x18], +0x04 | |
0bcbec99 jbe 0x0bcb0044 ->13 | |
0bcbec9f mov ebx, [rbx+0x8] | |
0bcbeca2 cmp dword [rbx+0x24], -0x0c | |
0bcbeca6 jnz 0x0bcb0044 ->13 | |
0bcbecac mov r15d, [rbx+0x20] | |
0bcbecb0 cmp dword [rbp+0x34], -0x0c | |
0bcbecb4 jnz 0x0bcb0044 ->13 | |
0bcbecba mov ebx, [rbp+0x30] | |
0bcbecbd mov eax, [r11+0x1c] | |
0bcbecc1 and eax, 0xce2b6183 | |
0bcbecc7 lea eax, [rax+rax*2] | |
0bcbecca shl eax, 0x03 | |
0bcbeccd add eax, [r11+0x14] | |
0bcbecd1 cmp dword [rax+0xc], -0x05 | |
0bcbecd5 jnz 0x0bcbece4 | |
0bcbecd7 cmp dword [rax+0x8], 0x40eb5db0 | |
0bcbecde jz 0x0bcb0044 ->13 | |
0bcbece4 mov eax, [rax+0x10] | |
0bcbece7 test eax, eax | |
0bcbece9 jnz 0x0bcbecd1 | |
0bcbeceb cmp dword [r12+0x1c], +0x01 | |
0bcbecf1 jnz 0x0bcb0044 ->13 | |
0bcbecf7 mov r12d, [r12+0x14] | |
0bcbecfc mov rax, 0xfffffffb40eb54c8 | |
0bcbed06 cmp rax, [r12+0x20] | |
0bcbed0b jnz 0x0bcb0044 ->13 | |
0bcbed11 cmp dword [r12+0x1c], -0x0c | |
0bcbed17 jnz 0x0bcb0044 ->13 | |
0bcbed1d mov r12d, [r12+0x18] | |
0bcbed22 cmp dword [r12+0x1c], +0x3f | |
0bcbed28 jnz 0x0bcb0044 ->13 | |
0bcbed2e mov r12d, [r12+0x14] | |
0bcbed33 mov rax, 0xfffffffb40eb5db0 | |
0bcbed3d cmp rax, [r12+0x50] | |
0bcbed42 jnz 0x0bcb0044 ->13 | |
0bcbed48 cmp dword [r12+0x4c], -0x09 | |
0bcbed4e jnz 0x0bcb0044 ->13 | |
0bcbed54 mov eax, [r11+0x1c] | |
0bcbed58 and eax, 0x798a813c | |
0bcbed5e lea eax, [rax+rax*2] | |
0bcbed61 shl eax, 0x03 | |
0bcbed64 add eax, [r11+0x14] | |
0bcbed68 cmp dword [rax+0xc], -0x05 | |
0bcbed6c jnz 0x0bcbed7b | |
0bcbed6e cmp dword [rax+0x8], 0x40eb5fb0 | |
0bcbed75 jz 0x0bcb0044 ->13 | |
0bcbed7b mov eax, [rax+0x10] | |
0bcbed7e test eax, eax | |
0bcbed80 jnz 0x0bcbed68 | |
0bcbed82 mov rax, 0xfffffffb40eb5fb0 | |
0bcbed8c cmp rax, [r12+0x5a8] | |
0bcbed94 jnz 0x0bcb0044 ->13 | |
0bcbed9a cmp dword [r12+0x5a4], -0x09 | |
0bcbeda3 jnz 0x0bcb0044 ->13 | |
0bcbeda9 cmp dword [r12+0x5a0], 0x40eb5f18 | |
0bcbedb5 jnz 0x0bcb0044 ->13 | |
0bcbedbb cmp dword [r12+0x48], 0x40eb5d88 | |
0bcbedc4 jnz 0x0bcb0044 ->13 | |
0bcbedca cmp dword [r15+0x18], +0x01 | |
0bcbedcf jbe 0x0bcb0044 ->13 | |
0bcbedd5 mov r12d, [r15+0x8] | |
0bcbedd9 cmp dword [r12+0xc], -0x05 | |
0bcbeddf jnz 0x0bcb0044 ->13 | |
0bcbede5 mov r12d, [r12+0x8] | |
0bcbedea cmp r12d, 0x40eb58f8 | |
0bcbedf1 jz 0x0bcb0048 ->14 | |
0bcbedf7 cmp r12d, 0x41f91978 | |
0bcbedfe jz 0x0bcb004c ->15 | |
0bcbee04 cmp r12d, 0x40eb5a18 | |
0bcbee0b jz 0x0bcb0050 ->16 | |
0bcbee11 cmp r12d, 0x40eb5870 | |
0bcbee18 jnz 0x0bcb0054 ->17 | |
0bcbee1e mov esi, 0x41f91748 | |
0bcbee23 call 0x004223c0 ->lj_tab_dup | |
0bcbee28 mov [rsp+0x6c], eax | |
0bcbee2c mov edi, [0x40eb34b0] | |
0bcbee33 cmp dword [r13+0x1c], +0x01 | |
0bcbee38 jnz 0x0bcb0058 ->18 | |
0bcbee3e mov esi, [r13+0x14] | |
0bcbee42 mov rdx, 0xfffffffb41f8f5d0 | |
0bcbee4c cmp rdx, [rsi+0x20] | |
0bcbee50 jnz 0x0bcb0058 ->18 | |
0bcbee56 cmp dword [rsi+0x1c], -0x05 | |
0bcbee5a jnz 0x0bcb0058 ->18 | |
0bcbee60 mov esi, [rsi+0x18] | |
0bcbee63 mov eax, [rax+0x8] | |
0bcbee66 mov dword [rax+0x14], 0xfffffffb | |
0bcbee6d mov [rax+0x10], esi | |
0bcbee70 mov esi, [rbx+0x1c] | |
0bcbee73 and esi, 0x2a54dc55 | |
0bcbee79 lea esi, [rsi+rsi*2] | |
0bcbee7c shl esi, 0x03 | |
0bcbee7f add esi, [rbx+0x14] | |
0bcbee82 cmp dword [rsi+0xc], -0x05 | |
0bcbee86 jnz 0x0bcbee95 | |
0bcbee88 cmp dword [rsi+0x8], 0x41f8fd38 | |
0bcbee8f jz 0x0bcb005c ->19 | |
0bcbee95 mov esi, [rsi+0x10] | |
0bcbee98 test esi, esi | |
0bcbee9a jnz 0x0bcbee82 | |
0bcbee9c cmp dword [rbx+0x10], +0x00 | |
0bcbeea0 jnz 0x0bcb005c ->19 | |
0bcbeea6 mov edx, 0x40eb3448 | |
0bcbeeab mov dword [rdx+0x4], 0xfffffffb | |
0bcbeeb2 mov dword [rdx], 0x41f8fd38 | |
0bcbeeb8 mov esi, ebx | |
0bcbeeba call 0x00422cf0 ->lj_tab_newkey | |
0bcbeebf mov r15d, eax | |
0bcbeec2 mov r11d, [rsp+0x48] | |
0bcbeec7 mov esi, [rsp+0x3c] | |
0bcbeecb mov eax, [rsp+0x6c] | |
0bcbeecf mov dword [r15+0x4], 0xfffffff4 | |
0bcbeed7 mov [r15], eax | |
0bcbeeda test byte [rbx+0x4], 0x4 | |
0bcbeede jz 0x0bcbeef5 | |
0bcbeee0 and byte [rbx+0x4], 0xfb | |
0bcbeee4 mov edi, [0x40eb33f4] | |
0bcbeeeb mov [0x40eb33f4], ebx | |
0bcbeef2 mov [rbx+0xc], edi | |
0bcbeef5 cmp dword [rbp-0x4], 0x41f90b78 | |
0bcbeefc jnz 0x0bcb0060 ->20 | |
0bcbef02 add ebp, -0x40 | |
0bcbef05 mov [0x40eb34b4], ebp | |
0bcbef0c cmp dword [rbp-0x8], 0x40ecf6e0 | |
0bcbef13 jnz 0x0bcb0064 ->21 | |
0bcbef19 cmp dword [rbp+0x4], -0x0c | |
0bcbef1d jnz 0x0bcb0064 ->21 | |
0bcbef23 mov ebx, [rbp+0x0] | |
0bcbef26 cmp dword [rbx+0x18], +0x03 | |
0bcbef2a jbe 0x0bcb0064 ->21 | |
0bcbef30 mov r15d, [rbx+0x8] | |
0bcbef34 cmp dword [r15+0x1c], -0x0c | |
0bcbef39 jnz 0x0bcb0064 ->21 | |
0bcbef3f mov r13d, [r15+0x18] | |
0bcbef43 mov [rsp+0x18], r13d | |
0bcbef48 cmp dword [rbp+0x2c], -0x0c | |
0bcbef4c jnz 0x0bcb0064 ->21 | |
0bcbef52 mov edi, [rbp+0x28] | |
0bcbef55 mov [rsp+0x14], edi | |
0bcbef59 cmp dword [rbp+0x14], -0x0c | |
0bcbef5d jnz 0x0bcb0064 ->21 | |
0bcbef63 mov r15d, [rbp+0x10] | |
0bcbef67 cmp dword [rbp+0x1c], -0x0c | |
0bcbef6b jnz 0x0bcb0064 ->21 | |
0bcbef71 mov r14d, [rbp+0x18] | |
0bcbef75 mov edi, [r11+0x1c] | |
0bcbef79 and edi, 0xce2b6183 | |
0bcbef7f lea edi, [rdi+rdi*2] | |
0bcbef82 shl edi, 0x03 | |
0bcbef85 add edi, [r11+0x14] | |
0bcbef89 cmp dword [rdi+0xc], -0x05 | |
0bcbef8d jnz 0x0bcbef9c | |
0bcbef8f cmp dword [rdi+0x8], 0x40eb5db0 | |
0bcbef96 jz 0x0bcb0064 ->21 | |
0bcbef9c mov edi, [rdi+0x10] | |
0bcbef9f test edi, edi | |
0bcbefa1 jnz 0x0bcbef89 | |
0bcbefa3 cmp dword [rsi+0x1c], +0x01 | |
0bcbefa7 jnz 0x0bcb0064 ->21 | |
0bcbefad mov r12d, [rsi+0x14] | |
0bcbefb1 mov rdi, 0xfffffffb40eb54c8 | |
0bcbefbb cmp rdi, [r12+0x20] | |
0bcbefc0 jnz 0x0bcb0064 ->21 | |
0bcbefc6 cmp dword [r12+0x1c], -0x0c | |
0bcbefcc jnz 0x0bcb0064 ->21 | |
0bcbefd2 mov r12d, [r12+0x18] | |
0bcbefd7 cmp dword [r12+0x1c], +0x3f | |
0bcbefdd jnz 0x0bcb0064 ->21 | |
0bcbefe3 mov r12d, [r12+0x14] | |
0bcbefe8 mov rdi, 0xfffffffb40eb5db0 | |
0bcbeff2 cmp rdi, [r12+0x50] | |
0bcbeff7 jnz 0x0bcb0064 ->21 | |
0bcbeffd cmp dword [r12+0x4c], -0x09 | |
0bcbf003 jnz 0x0bcb0064 ->21 | |
0bcbf009 mov edi, [r11+0x1c] | |
0bcbf00d and edi, 0x798a813c | |
0bcbf013 lea edi, [rdi+rdi*2] | |
0bcbf016 shl edi, 0x03 | |
0bcbf019 add edi, [r11+0x14] | |
0bcbf01d cmp dword [rdi+0xc], -0x05 | |
0bcbf021 jnz 0x0bcbf030 | |
0bcbf023 cmp dword [rdi+0x8], 0x40eb5fb0 | |
0bcbf02a jz 0x0bcb0064 ->21 | |
0bcbf030 mov edi, [rdi+0x10] | |
0bcbf033 test edi, edi | |
0bcbf035 jnz 0x0bcbf01d | |
0bcbf037 mov rdi, 0xfffffffb40eb5fb0 | |
0bcbf041 cmp rdi, [r12+0x5a8] | |
0bcbf049 jnz 0x0bcb0064 ->21 | |
0bcbf04f cmp dword [r12+0x5a4], -0x09 | |
0bcbf058 jnz 0x0bcb0064 ->21 | |
0bcbf05e cmp dword [r12+0x5a0], 0x40eb5f18 | |
0bcbf06a jnz 0x0bcb0064 ->21 | |
0bcbf070 cmp dword [r12+0x48], 0x40eb5d88 | |
0bcbf079 jnz 0x0bcb0064 ->21 | |
0bcbf07f cmp dword [r13+0x18], +0x01 | |
0bcbf084 jbe 0x0bcb0064 ->21 | |
0bcbf08a mov r12d, [r13+0x8] | |
0bcbf08e cmp dword [r12+0xc], -0x05 | |
0bcbf094 jnz 0x0bcb0064 ->21 | |
0bcbf09a mov ecx, [r12+0x8] | |
0bcbf09f mov [rsp+0x10], ecx | |
0bcbf0a3 cmp dword [r12+0x8], 0x40eb58f8 | |
0bcbf0ac jnz 0x0bcb0068 ->22 | |
0bcbf0b2 mov edi, [0x40ece2e0] | |
0bcbf0b9 mov [rsp+0x64], edi | |
0bcbf0bd cmp dword [rdi+0x4], 0xfffeffff | |
0bcbf0c4 jnb 0x0bcb006c ->23 | |
0bcbf0ca movsd xmm7, [rdi] | |
0bcbf0ce addsd xmm7, [0x41bafd78] | |
0bcbf0d7 movsd [rsp+0x58], xmm7 | |
0bcbf0dd movsd [rdi], xmm7 | |
0bcbf0e1 mov edi, 0x40eb3414 | |
0bcbf0e6 mov esi, [rdi+0x8] | |
0bcbf0e9 mov [rdi], esi | |
0bcbf0eb mov esi, 0x4c | |
0bcbf0f0 call 0x00421b60 ->lj_buf_putchar | |
0bcbf0f5 mov edi, eax | |
0bcbf0f7 lea rsi, [rsp+0x58] | |
0bcbf0fc call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbf101 mov edi, eax | |
0bcbf103 call 0x00421ff0 ->lj_buf_tostr | |
0bcbf108 mov [rsp+0x68], eax | |
0bcbf10c mov edi, [0x40eb34b0] | |
0bcbf113 mov esi, 0x41f902b8 | |
0bcbf118 call 0x004223c0 ->lj_tab_dup | |
0bcbf11d mov [rsp+0xc], eax | |
0bcbf121 mov edi, [0x40eb34b0] | |
0bcbf128 xor esi, esi | |
0bcbf12a call 0x00422350 ->lj_tab_new1 | |
0bcbf12f mov esi, eax | |
0bcbf131 mov edi, [0x40eb34b0] | |
0bcbf138 mov ecx, [rsp+0xc] | |
0bcbf13c mov eax, [rsp+0x68] | |
0bcbf140 mov r12d, [rcx+0x14] | |
0bcbf144 mov dword [r12+0x34], 0xfffffff4 | |
0bcbf14d mov [r12+0x30], esi | |
0bcbf152 mov dword [r12+0x4c], 0xfffffffb | |
0bcbf15b mov [r12+0x48], eax | |
0bcbf160 mov r12d, [0x40ed06a0] | |
0bcbf168 cmp dword [r12+0x4], -0x0c | |
0bcbf16e jnz 0x0bcb0074 ->25 | |
0bcbf174 mov r12d, [r12] | |
0bcbf178 cmp dword [r12+0x1c], +0x01 | |
0bcbf17e jnz 0x0bcb0074 ->25 | |
0bcbf184 mov esi, [r12+0x14] | |
0bcbf189 mov rdx, 0xfffffffb41f8f530 | |
0bcbf193 cmp rdx, [rsi+0x8] | |
0bcbf197 jnz 0x0bcb0074 ->25 | |
0bcbf19d cmp dword [rsi+0x4], -0x0c | |
0bcbf1a1 jnz 0x0bcb0074 ->25 | |
0bcbf1a7 mov esi, [rsi] | |
0bcbf1a9 mov [rsp+0x60], esi | |
0bcbf1ad mov edx, [rsi+0x1c] | |
0bcbf1b0 and edx, [rax+0x8] | |
0bcbf1b3 lea edx, [rdx+rdx*2] | |
0bcbf1b6 shl edx, 0x03 | |
0bcbf1b9 add edx, [rsi+0x14] | |
0bcbf1bc cmp dword [rdx+0xc], -0x05 | |
0bcbf1c0 jnz 0x0bcbf1cb | |
0bcbf1c2 cmp eax, [rdx+0x8] | |
0bcbf1c5 jz 0x0bcb0074 ->25 | |
0bcbf1cb mov edx, [rdx+0x10] | |
0bcbf1ce test edx, edx | |
0bcbf1d0 jnz 0x0bcbf1bc | |
0bcbf1d2 cmp dword [rsi+0x10], +0x00 | |
0bcbf1d6 jnz 0x0bcb0074 ->25 | |
0bcbf1dc mov edx, 0x40eb3448 | |
0bcbf1e1 mov dword [rdx+0x4], 0xfffffffb | |
0bcbf1e8 mov [rdx], eax | |
0bcbf1ea call 0x00422cf0 ->lj_tab_newkey | |
0bcbf1ef mov edi, [rsp+0x64] | |
0bcbf1f3 mov esi, [rsp+0x60] | |
0bcbf1f7 mov ecx, [rsp+0xc] | |
0bcbf1fb movsd xmm7, [rsp+0x58] | |
0bcbf201 mov dword [rax+0x4], 0xfffffff4 | |
0bcbf208 mov [rax], ecx | |
0bcbf20a test byte [rsi+0x4], 0x4 | |
0bcbf20e jz 0x0bcbf225 | |
0bcbf210 and byte [rsi+0x4], 0xfb | |
0bcbf214 mov edx, [0x40eb33f4] | |
0bcbf21b mov [0x40eb33f4], esi | |
0bcbf222 mov [rsi+0xc], edx | |
0bcbf225 mov byte [rsi+0x6], 0x0 | |
0bcbf229 addsd xmm7, [0x41bafd78] | |
0bcbf232 movsd [rsp+0x50], xmm7 | |
0bcbf238 movsd [rdi], xmm7 | |
0bcbf23c mov edi, 0x40eb3414 | |
0bcbf241 mov esi, [rdi+0x8] | |
0bcbf244 mov [rdi], esi | |
0bcbf246 mov esi, 0x4c | |
0bcbf24b call 0x00421b60 ->lj_buf_putchar | |
0bcbf250 mov edi, eax | |
0bcbf252 lea rsi, [rsp+0x50] | |
0bcbf257 call 0x0040a3c0 ->lj_strfmt_putnum | |
0bcbf25c mov edi, eax | |
0bcbf25e call 0x00421ff0 ->lj_buf_tostr | |
0bcbf263 mov [rsp+0x4c], eax | |
0bcbf267 mov edi, [0x40eb34b0] | |
0bcbf26e mov esi, 0x41f902b8 | |
0bcbf273 call 0x004223c0 ->lj_tab_dup | |
0bcbf278 mov [rsp+0x28], eax | |
0bcbf27c mov edi, [0x40eb34b0] | |
0bcbf283 xor esi, esi | |
0bcbf285 call 0x00422350 ->lj_tab_new1 | |
0bcbf28a mov esi, eax | |
0bcbf28c mov edi, [0x40eb34b0] | |
0bcbf293 mov ecx, [rsp+0x28] | |
0bcbf297 mov eax, [rsp+0x4c] | |
0bcbf29b mov r8d, [rcx+0x14] | |
0bcbf29f mov [rsp+0x1c], r8d | |
0bcbf2a4 mov dword [r8+0x34], 0xfffffff4 | |
0bcbf2ac mov [r8+0x30], esi | |
0bcbf2b0 mov dword [r8+0x4c], 0xfffffffb | |
0bcbf2b8 mov [r8+0x48], eax | |
0bcbf2bc cmp dword [r12+0x1c], +0x01 | |
0bcbf2c2 jnz 0x0bcb007c ->27 | |
0bcbf2c8 mov r12d, [r12+0x14] | |
0bcbf2cd mov rsi, 0xfffffffb41f8f530 | |
0bcbf2d7 cmp rsi, [r12+0x8] | |
0bcbf2dc jnz 0x0bcb007c ->27 | |
0bcbf2e2 cmp dword [r12+0x4], -0x0c | |
0bcbf2e8 jnz 0x0bcb007c ->27 | |
0bcbf2ee mov r12d, [r12] | |
0bcbf2f2 mov esi, [r12+0x1c] | |
0bcbf2f7 and esi, [rax+0x8] | |
0bcbf2fa lea esi, [rsi+rsi*2] | |
0bcbf2fd shl esi, 0x03 | |
0bcbf300 add esi, [r12+0x14] | |
0bcbf305 cmp dword [rsi+0xc], -0x05 | |
0bcbf309 jnz 0x0bcbf314 | |
0bcbf30b cmp eax, [rsi+0x8] | |
0bcbf30e jz 0x0bcb007c ->27 | |
0bcbf314 mov esi, [rsi+0x10] | |
0bcbf317 test esi, esi | |
0bcbf319 jnz 0x0bcbf305 | |
0bcbf31b cmp dword [r12+0x10], +0x00 | |
0bcbf321 jnz 0x0bcb007c ->27 | |
0bcbf327 mov edx, 0x40eb3448 | |
0bcbf32c mov dword [rdx+0x4], 0xfffffffb | |
0bcbf333 mov [rdx], eax | |
0bcbf335 mov esi, r12d | |
0bcbf338 call 0x00422cf0 ->lj_tab_newkey | |
0bcbf33d mov r11d, [rsp+0x48] | |
0bcbf342 mov edi, [0x40eb34b0] | |
0bcbf349 mov esi, [rsp+0x3c] | |
0bcbf34d mov edx, [rsp+0x40] | |
0bcbf351 mov ecx, [rsp+0x28] | |
0bcbf355 mov dword [rax+0x4], 0xfffffff4 | |
0bcbf35c mov [rax], ecx | |
0bcbf35e test byte [r12+0x4], 0x4 | |
0bcbf364 jz 0x0bcbf380 | |
0bcbf366 and byte [r12+0x4], 0xfb | |
0bcbf36c mov ecx, [0x40eb33f4] | |
0bcbf373 mov [0x40eb33f4], r12d | |
0bcbf37b mov [r12+0xc], ecx | |
0bcbf380 mov byte [r12+0x6], 0x0 | |
0bcbf386 cmp dword [r13+0x18], +0x02 | |
0bcbf38b jbe 0x0bcb0080 ->28 | |
0bcbf391 mov r12d, [r13+0x8] | |
0bcbf395 cmp dword [r12+0x14], -0x0c | |
0bcbf39b jnz 0x0bcb0080 ->28 | |
0bcbf3a1 mov r12d, [r12+0x10] | |
0bcbf3a6 mov ecx, [r11+0x1c] | |
0bcbf3aa and ecx, 0xce2b6183 | |
0bcbf3b0 lea ecx, [rcx+rcx*2] | |
0bcbf3b3 shl ecx, 0x03 | |
0bcbf3b6 add ecx, [r11+0x14] | |
0bcbf3ba cmp dword [rcx+0xc], -0x05 | |
0bcbf3be jnz 0x0bcbf3cd | |
0bcbf3c0 cmp dword [rcx+0x8], 0x40eb5db0 | |
0bcbf3c7 jz 0x0bcb0080 ->28 | |
0bcbf3cd mov ecx, [rcx+0x10] | |
0bcbf3d0 test ecx, ecx | |
0bcbf3d2 jnz 0x0bcbf3ba | |
0bcbf3d4 cmp dword [rsi+0x1c], +0x01 | |
0bcbf3d8 jnz 0x0bcb0080 ->28 | |
0bcbf3de mov esi, [rsi+0x14] | |
0bcbf3e1 mov rcx, 0xfffffffb40eb54c8 | |
0bcbf3eb cmp rcx, [rsi+0x20] | |
0bcbf3ef jnz 0x0bcb0080 ->28 | |
0bcbf3f5 cmp dword [rsi+0x1c], -0x0c | |
0bcbf3f9 jnz 0x0bcb0080 ->28 | |
0bcbf3ff mov esi, [rsi+0x18] | |
0bcbf402 cmp dword [rsi+0x1c], +0x3f | |
0bcbf406 jnz 0x0bcb0080 ->28 | |
0bcbf40c mov esi, [rsi+0x14] | |
0bcbf40f mov rcx, 0xfffffffb40eb5db0 | |
0bcbf419 cmp rcx, [rsi+0x50] | |
0bcbf41d jnz 0x0bcb0080 ->28 | |
0bcbf423 cmp dword [rsi+0x4c], -0x09 | |
0bcbf427 jnz 0x0bcb0080 ->28 | |
0bcbf42d mov ecx, [r11+0x1c] | |
0bcbf431 and ecx, 0x798a813c | |
0bcbf437 lea ecx, [rcx+rcx*2] | |
0bcbf43a shl ecx, 0x03 | |
0bcbf43d add ecx, [r11+0x14] | |
0bcbf441 cmp dword [rcx+0xc], -0x05 | |
0bcbf445 jnz 0x0bcbf454 | |
0bcbf447 cmp dword [rcx+0x8], 0x40eb5fb0 | |
0bcbf44e jz 0x0bcb0080 ->28 | |
0bcbf454 mov ecx, [rcx+0x10] | |
0bcbf457 test ecx, ecx | |
0bcbf459 jnz 0x0bcbf441 | |
0bcbf45b mov rcx, 0xfffffffb40eb5fb0 | |
0bcbf465 cmp rcx, [rsi+0x5a8] | |
0bcbf46c jnz 0x0bcb0080 ->28 | |
0bcbf472 cmp dword [rsi+0x5a4], -0x09 | |
0bcbf479 jnz 0x0bcb0080 ->28 | |
0bcbf47f cmp dword [rsi+0x5a0], 0x40eb5f18 | |
0bcbf489 jnz 0x0bcb0080 ->28 | |
0bcbf48f cmp dword [rsi+0x48], 0x40eb5d88 | |
0bcbf496 jnz 0x0bcb0080 ->28 | |
0bcbf49c cmp dword [r12+0x18], +0x01 | |
0bcbf4a2 jbe 0x0bcb0080 ->28 | |
0bcbf4a8 mov esi, [r12+0x8] | |
0bcbf4ad cmp dword [rsi+0xc], -0x05 | |
0bcbf4b1 jnz 0x0bcb0080 ->28 | |
0bcbf4b7 mov ecx, [rsi+0x8] | |
0bcbf4ba mov [rsp+0x38], ecx | |
0bcbf4be cmp ecx, 0x40eb58f8 | |
0bcbf4c4 jz 0x0bcb0084 ->29 | |
0bcbf4ca cmp ecx, 0x41f91978 | |
0bcbf4d0 jz 0x0bcb0088 ->30 | |
0bcbf4d6 cmp ecx, 0x40eb5a18 | |
0bcbf4dc jz 0x0bcb008c ->31 | |
0bcbf4e2 cmp ecx, 0x40eb5870 | |
0bcbf4e8 jz 0x0bcb009d ->32 | |
0bcbf4ee cmp ecx, 0x40eb8cb0 | |
0bcbf4f4 jz 0x0bcb00a1 ->33 | |
0bcbf4fa cmp ecx, 0x41f91a50 | |
0bcbf500 jz 0x0bcb00a5 ->34 | |
0bcbf506 mov esi, [rdx+0x1c] | |
0bcbf509 and esi, [rcx+0x8] | |
0bcbf50c lea esi, [rsi+rsi*2] | |
0bcbf50f shl esi, 0x03 | |
0bcbf512 add esi, [rdx+0x14] | |
0bcbf515 cmp dword [rsi+0xc], -0x05 | |
0bcbf519 jnz 0x0bcbf520 | |
0bcbf51b cmp ecx, [rsi+0x8] | |
0bcbf51e jz 0x0bcbf52c | |
0bcbf520 mov esi, [rsi+0x10] | |
0bcbf523 test esi, esi | |
0bcbf525 jnz 0x0bcbf515 | |
0bcbf527 mov esi, 0x40eb3458 | |
0bcbf52c cmp dword [rsi+0x4], -0x03 | |
0bcbf530 jnz 0x0bcb00a9 ->35 | |
0bcbf536 mov esi, 0x41f91468 | |
0bcbf53b call 0x004223c0 ->lj_tab_dup | |
0bcbf540 mov r10d, eax | |
0bcbf543 mov [rsp+0x44], r10d | |
0bcbf548 mov edi, [0x40eb34b0] | |
0bcbf54f mov esi, [rsp+0x14] | |
0bcbf553 mov ecx, [rsp+0xc] | |
0bcbf557 mov eax, [rsp+0x4c] | |
0bcbf55b mov edx, [r10+0x8] | |
0bcbf55f mov dword [rdx+0x14], 0xfffffff4 | |
0bcbf566 mov [rdx+0x10], r12d | |
0bcbf56a cmp dword [rcx+0x1c], +0x03 | |
0bcbf56e jnz 0x0bcb00ad ->36 | |
0bcbf574 mov ecx, [rcx+0x14] | |
0bcbf577 mov [rsp+0x2c], ecx | |
0bcbf57b mov r11, 0xfffffffb41f8f5d0 | |
0bcbf585 cmp r11, [rcx+0x50] | |
0bcbf589 jnz 0x0bcb00ad ->36 | |
0bcbf58f cmp dword [rcx+0x4c], -0x05 | |
0bcbf593 jnz 0x0bcb00ad ->36 | |
0bcbf599 mov ecx, [rcx+0x48] | |
0bcbf59c mov dword [rdx+0x1c], 0xfffffffb | |
0bcbf5a3 mov [rdx+0x18], ecx | |
0bcbf5a6 mov dword [rdx+0x24], 0xfffffffb | |
0bcbf5ad mov [rdx+0x20], eax | |
0bcbf5b0 mov edx, [rsi+0x1c] | |
0bcbf5b3 and edx, 0x2a54dc55 | |
0bcbf5b9 lea edx, [rdx+rdx*2] | |
0bcbf5bc shl edx, 0x03 | |
0bcbf5bf add edx, [rsi+0x14] | |
0bcbf5c2 cmp dword [rdx+0xc], -0x05 | |
0bcbf5c6 jnz 0x0bcbf5d5 | |
0bcbf5c8 cmp dword [rdx+0x8], 0x41f8fd38 | |
0bcbf5cf jz 0x0bcb00b1 ->37 | |
0bcbf5d5 mov edx, [rdx+0x10] | |
0bcbf5d8 test edx, edx | |
0bcbf5da jnz 0x0bcbf5c2 | |
0bcbf5dc cmp dword [rsi+0x10], +0x00 | |
0bcbf5e0 jnz 0x0bcb00b1 ->37 | |
0bcbf5e6 mov edx, 0x40eb3448 | |
0bcbf5eb mov dword [rdx+0x4], 0xfffffffb | |
0bcbf5f2 mov dword [rdx], 0x41f8fd38 | |
0bcbf5f8 call 0x00422cf0 ->lj_tab_newkey | |
0bcbf5fd mov r9d, eax | |
0bcbf600 mov r11d, [rsp+0x48] | |
0bcbf605 mov r10d, [rsp+0x44] | |
0bcbf60a mov edi, [0x40eb34b0] | |
0bcbf611 mov esi, [rsp+0x40] | |
0bcbf615 mov edx, [rsp+0x3c] | |
0bcbf619 mov eax, [rsp+0x14] | |
0bcbf61d mov dword [r9+0x4], 0xfffffff4 | |
0bcbf625 mov [r9], r10d | |
0bcbf628 test byte [rax+0x4], 0x4 | |
0bcbf62c jz 0x0bcbf645 | |
0bcbf62e and byte [rax+0x4], 0xfb | |
0bcbf632 mov r10d, [0x40eb33f4] | |
0bcbf63a mov [0x40eb33f4], eax | |
0bcbf641 mov [rax+0xc], r10d | |
0bcbf645 cmp dword [r13+0x18], +0x04 | |
0bcbf64a jbe 0x0bcb00b5 ->38 | |
0bcbf650 mov r13d, [r13+0x8] | |
0bcbf654 mov [rsp+0x30], r13d | |
0bcbf659 cmp dword [r13+0x1c], -0x0c | |
0bcbf65e jnz 0x0bcb00b5 ->38 | |
0bcbf664 mov r13d, [r13+0x18] | |
0bcbf668 mov eax, [r11+0x1c] | |
0bcbf66c and eax, 0xce2b6183 | |
0bcbf672 lea eax, [rax+rax*2] | |
0bcbf675 shl eax, 0x03 | |
0bcbf678 add eax, [r11+0x14] | |
0bcbf67c cmp dword [rax+0xc], -0x05 | |
0bcbf680 jnz 0x0bcbf68f | |
0bcbf682 cmp dword [rax+0x8], 0x40eb5db0 | |
0bcbf689 jz 0x0bcb00b5 ->38 | |
0bcbf68f mov eax, [rax+0x10] | |
0bcbf692 test eax, eax | |
0bcbf694 jnz 0x0bcbf67c | |
0bcbf696 cmp dword [rdx+0x1c], +0x01 | |
0bcbf69a jnz 0x0bcb00b5 ->38 | |
0bcbf6a0 mov edx, [rdx+0x14] | |
0bcbf6a3 mov rax, 0xfffffffb40eb54c8 | |
0bcbf6ad cmp rax, [rdx+0x20] | |
0bcbf6b1 jnz 0x0bcb00b5 ->38 | |
0bcbf6b7 cmp dword [rdx+0x1c], -0x0c | |
0bcbf6bb jnz 0x0bcb00b5 ->38 | |
0bcbf6c1 mov edx, [rdx+0x18] | |
0bcbf6c4 cmp dword [rdx+0x1c], +0x3f | |
0bcbf6c8 jnz 0x0bcb00b5 ->38 | |
0bcbf6ce mov edx, [rdx+0x14] | |
0bcbf6d1 mov rax, 0xfffffffb40eb5db0 | |
0bcbf6db cmp rax, [rdx+0x50] | |
0bcbf6df jnz 0x0bcb00b5 ->38 | |
0bcbf6e5 cmp dword [rdx+0x4c], -0x09 | |
0bcbf6e9 jnz 0x0bcb00b5 ->38 | |
0bcbf6ef mov eax, [r11+0x1c] | |
0bcbf6f3 and eax, 0x798a813c | |
0bcbf6f9 lea eax, [rax |
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)