Skip to content

Instantly share code, notes, and snippets.

@pygy
Last active August 29, 2015 13:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pygy/10608268 to your computer and use it in GitHub Desktop.
Save pygy/10608268 to your computer and use it in GitHub Desktop.
---- TRACE 10 start t.lua:62
0011 MOV 9 0
0012 TGETS 8 0 3 ; "getint"
0000 . . FUNCC ; ffi.meta.__index
0013 MOV 10 1
0014 CALL 8 2 3
0000 . FUNCF 6 ; rng.lua:11
0001 . UGET 2 0 ; tonumber
0002 . UGET 3 1 ; gsl
0003 . TGETS 3 3 0 ; "gsl_rng_uniform_int"
0000 . . . FUNCC ; ffi.clib.__index
0004 . MOV 4 0
0005 . MOV 5 1
0006 . CALL 3 0 3
0000 . . FUNCC ; ffi.meta.__call
0007 . CALLMT 2 0
0000 . FUNCC ; tonumber
0015 MOV 2 8
0016 UGET 8 0 ; format
0017 KSTR 9 4 ; "0x%x"
0018 GGET 10 5 ; "tonumber"
0019 MOV 11 2
0020 CALL 10 0 2
0000 . FUNCC ; tonumber
0021 CALLM 8 2 1
0000 . FUNCC ; string.format
0022 GGET 9 5 ; "tonumber"
0023 MOV 10 8
0024 CALL 9 2 2
0000 . FUNCC ; tonumber
0025 MOV 3 9
0026 FORL 4 => 0011
---- TRACE 10 IR
0001 int SLOAD #5 CI
0002 > cdt SLOAD #1 T
0003 u16 FLOAD 0002 cdata.ctypeid
0004 > int EQ 0003 +1934
0005 p64 FLOAD 0002 cdata.ptr
0006 > num SLOAD #2 T
0007 > p32 UREFC rng.lua:11 #1
0008 > udt ULOAD 0007
0009 > p32 EQ 0008 [0x0af88020]
0010 u64 CONV 0006 u64.num
0012 u64 CALLXS [0x10b297bbc](0005 0010)
0013 } cdt CNEWI +12 0012
0014 + num CONV 0012 num.u64
0015 fun SLOAD #0 R
0016 > fun EQ 0015 t.lua:58
0017 tab FLOAD t.lua:58 func.env
0018 int FLOAD 0017 tab.hmask
0019 > int EQ 0018 +127
0020 p32 FLOAD 0017 tab.node
0021 > p32 HREFK 0020 "tonumber" @8
0022 > fun HLOAD 0021
0023 > fun EQ 0022 tonumber
0024 p32 BUFHDR [0x0af31414] RESET
0025 p32 BUFPUT 0024 "0x"
0028 p32 CALLL lj_strfmt_putfnum_uint (0025 +20 0014)
0029 str BUFSTR 0028 0024
0030 >+ num STRTO 0029
0031 + int ADD 0001 +1
0032 > int LE 0031 +1000
0033 ------ LOOP ------------
0034 u64 CALLXS [0x10b297bbc](0005 0010)
0035 } cdt CNEWI +12 0034
0036 + num CONV 0034 num.u64
0037 p32 BUFHDR [0x0af31414] RESET
0038 p32 BUFPUT 0037 "0x"
0041 p32 CALLL lj_strfmt_putfnum_uint (0038 +20 0036)
0042 str BUFSTR 0041 0037
0043 >+ num STRTO 0042
0044 + int ADD 0031 +1
0045 > int LE 0044 +1000
0046 int PHI 0031 0044
0047 num PHI 0014 0036
0048 num PHI 0030 0043
---- TRACE 10 mcode 619
11679ce02 add rsp, -0x40
11679ce06 mov dword [0x0af31410], 0xa
11679ce11 mov edi, [0x0af313d8]
11679ce18 cmp edi, [0x0af313dc]
11679ce1f jb 0x11679ce38
11679ce21 mov esi, 0x1
11679ce26 mov edi, 0x0af313b8
11679ce2b call 0x10af11060 ->lj_gc_step_jit
11679ce30 test eax, eax
11679ce32 jnz 0x116790010 ->0
11679ce38 mov edx, [0x0af314b4]
11679ce3f cvttsd2si ebp, [rdx+0x20]
11679ce44 cmp dword [rdx+0x4], -0x0b
11679ce48 jnz 0x116790010 ->0
11679ce4e mov r13d, [rdx]
11679ce51 movzx r14d, word [r13+0x6]
11679ce56 cmp r14d, 0x78e
11679ce5d jnz 0x116790010 ->0
11679ce63 mov rdi, [r13+0x8]
11679ce67 mov [rsp+0x38], rdi
11679ce6c cmp dword [rdx+0xc], 0xfffeffff
11679ce73 jnb 0x116790010 ->0
11679ce79 movsd xmm0, [rdx+0x8]
11679ce7e cmp dword [0x0afd526c], -0x0d
11679ce86 jnz 0x116790010 ->0
11679ce8c cmp dword [0x0afd5268], 0x0af88020
11679ce97 jnz 0x116790010 ->0
11679ce9d cvttsd2si rsi, xmm0
11679cea2 test rsi, rsi
11679cea5 jns 0x11679ceb5
11679cea7 addsd xmm0, [0x0afe4b10]
11679ceb0 cvttsd2si rsi, xmm0
11679ceb5 mov [rsp+0x30], rsi
11679ceba call 0x10b297bbc
11679cebf mov [rsp+0x40], rax
11679cec4 mov edx, [0x0af314b4]
11679cecb xorps xmm0, xmm0
11679cece cvtsi2sd xmm0, rax
11679ced3 test rax, rax
11679ced6 jns 0x11679cee1
11679ced8 addsd xmm0, [0x0afe4b08]
11679cee1 movsd [rsp+0x10], xmm0
11679cee7 cmp dword [rdx-0x8], 0x0b00e4c8
11679ceee jnz 0x116790014 ->1
11679cef4 mov r12d, [0x0b00e4d0]
11679cefc cmp dword [r12+0x1c], +0x7f
11679cf02 jnz 0x116790014 ->1
11679cf08 mov ebx, [r12+0x14]
11679cf0d mov rdi, 0xfffffffb0af34338
11679cf17 cmp rdi, [rbx+0xc8]
11679cf1e jnz 0x116790014 ->1
11679cf24 cmp dword [rbx+0xc4], -0x09
11679cf2b jnz 0x116790014 ->1
11679cf31 cmp dword [rbx+0xc0], 0x0af34310
11679cf3b jnz 0x116790014 ->1
11679cf41 mov edi, 0x0af31414
11679cf46 mov esi, [rdi+0x8]
11679cf49 mov [rdi], esi
11679cf4b mov esi, 0x0af8c2f8
11679cf50 call 0x10af68a40 ->lj_buf_putstr
11679cf55 mov edi, eax
11679cf57 movsd xmm0, [rsp+0x10]
11679cf5d mov esi, 0x14
11679cf62 call 0x10af69c70 ->lj_strfmt_putfnum_uint
11679cf67 mov edi, eax
11679cf69 call 0x10af68e30 ->lj_buf_tostr
11679cf6e mov edi, eax
11679cf70 lea rsi, [rsp+0x8]
11679cf75 call 0x10af19470 ->lj_strscan_num
11679cf7a test eax, eax
11679cf7c jz 0x116790014 ->1
11679cf82 movsd xmm7, [rsp+0x8]
11679cf88 movsd xmm6, [rsp+0x10]
11679cf8e add ebp, +0x01
11679cf91 cmp ebp, 0x3e8
11679cf97 jg 0x116790018 ->2
->LOOP:
11679cf9d movsd [rsp+0x10], xmm6
11679cfa3 movsd [rsp+0x8], xmm7
11679cfa9 mov edi, [0x0af313d8]
11679cfb0 cmp edi, [0x0af313dc]
11679cfb7 jb 0x11679cfd0
11679cfb9 mov esi, 0x1
11679cfbe mov edi, 0x0af313b8
11679cfc3 call 0x10af11060 ->lj_gc_step_jit
11679cfc8 test eax, eax
11679cfca jnz 0x11679001c ->3
11679cfd0 mov rdi, [rsp+0x38]
11679cfd5 mov rsi, [rsp+0x30]
11679cfda call 0x10b297bbc
11679cfdf mov [rsp+0x28], rax
11679cfe4 xorps xmm0, xmm0
11679cfe7 cvtsi2sd xmm0, rax
11679cfec test rax, rax
11679cfef jns 0x11679cffa
11679cff1 addsd xmm0, [0x0afe4b08]
11679cffa movsd [rsp+0x18], xmm0
11679d000 mov edi, 0x0af31414
11679d005 mov esi, [rdi+0x8]
11679d008 mov [rdi], esi
11679d00a mov esi, 0x0af8c2f8
11679d00f call 0x10af68a40 ->lj_buf_putstr
11679d014 mov edi, eax
11679d016 movsd xmm0, [rsp+0x18]
11679d01c mov esi, 0x14
11679d021 call 0x10af69c70 ->lj_strfmt_putfnum_uint
11679d026 mov edi, eax
11679d028 call 0x10af68e30 ->lj_buf_tostr
11679d02d mov edi, eax
11679d02f lea rsi, [rsp+0x20]
11679d034 call 0x10af19470 ->lj_strscan_num
11679d039 test eax, eax
11679d03b jz 0x116790020 ->4
11679d041 movsd xmm7, [rsp+0x20]
11679d047 movsd xmm6, [rsp+0x18]
11679d04d movsd xmm5, [rsp+0x10]
11679d053 movsd xmm4, [rsp+0x8]
11679d059 add ebp, +0x01
11679d05c cmp ebp, 0x3e8
11679d062 jle 0x11679cf9d ->LOOP
11679d068 jmp 0x116790024 ->5
---- TRACE 10 stop -> loop
---- TRACE 11 start rng.lua:32
0010 TGETB 2 1 0
0000 . . FUNCC ; ffi.meta.__index
0011 UGET 3 1 ; ffi
0012 TGETS 3 3 1 ; "string"
0013 TGETS 4 2 2 ; "name"
0000 . . FUNCC ; ffi.meta.__index
0014 CALL 3 2 2
0000 . FUNCC ; ffi.string
0015 ISNEV 3 0
0016 JMP 3 => 0018
0018 ADDVN 1 1 0 ; 1
0000 . . FUNCC ; ffi.meta.__add
0019 JMP 2 => 0006
0006 TGETB 2 1 0
0000 . . FUNCC ; ffi.meta.__index
0007 ISEQP 2 0
0008 JMP 2 => 0020
0000 . . FUNCC ; ffi.meta.__eq
0009 LOOP 2 => 0020
---- TRACE 11 IR
0001 > cdt SLOAD #2 T
0002 u16 FLOAD 0001 cdata.ctypeid
0003 > int EQ 0002 +1929
0004 p64 FLOAD 0001 cdata.ptr
0005 p64 XLOAD 0004
0006 } cdt CNEWI +1925 0005
0007 fun SLOAD #0 R
0008 > p32 UREFC 0007 #1
0009 > tab ULOAD 0008
0010 int FLOAD 0009 tab.hmask
0011 > int EQ 0010 +31
0012 p32 FLOAD 0009 tab.node
0013 > p32 HREFK 0012 "string" @27
0014 > fun HLOAD 0013
0015 p64 XLOAD 0005
0017 > fun EQ 0014 ffi.string
0018 i64 CALLL strlen (0015)
0019 str XSNEW 0015 0018
0020 > str SLOAD #1 T
0021 > str NE 0020 0019
0022 + p64 ADD 0004 +8
0023 }+ cdt CNEWI +1929 0022
0024 + p64 XLOAD 0022
0026 > p64 NE 0024 [NULL]
0027 ------ LOOP ------------
0028 } cdt CNEWI +1925 0024
0029 p64 XLOAD 0024
0030 i64 CALLL strlen (0029)
0031 str XSNEW 0029 0030
0032 > str NE 0031 0020
0033 + p64 ADD 0022 +8
0034 }+ cdt CNEWI +1929 0033
0035 + p64 XLOAD 0033
0036 > p64 NE 0035 [NULL]
0037 } cdt PHI 0023 0034
0038 p64 PHI 0022 0033
0039 p64 PHI 0024 0035
---- TRACE 11 mcode 391
11679cc76 add rsp, -0x10
11679cc7a mov dword [0x0af31410], 0xb
11679cc85 mov edi, [0x0af313d8]
11679cc8c cmp edi, [0x0af313dc]
11679cc93 jb 0x11679ccac
11679cc95 mov esi, 0x1
11679cc9a mov edi, 0x0af313b8
11679cc9f call 0x10af11060 ->lj_gc_step_jit
11679cca4 test eax, eax
11679cca6 jnz 0x116790010 ->0
11679ccac mov edx, [0x0af314b4]
11679ccb3 cmp dword [rdx+0xc], -0x0b
11679ccb7 jnz 0x116790010 ->0
11679ccbd mov eax, [rdx+0x8]
11679ccc0 movzx ecx, word [rax+0x6]
11679ccc4 cmp ecx, 0x789
11679ccca jnz 0x116790010 ->0
11679ccd0 mov rbx, [rax+0x8]
11679ccd4 mov r13, [rbx]
11679ccd7 mov eax, [rdx-0x8]
11679ccda mov edi, [rax+0x18]
11679ccdd cmp byte [rdi+0x6], 0x1
11679cce1 jnz 0x116790010 ->0
11679cce7 lea eax, [rdi+0x8]
11679ccea cmp dword [rax+0x4], -0x0c
11679ccee jnz 0x116790010 ->0
11679ccf4 mov eax, [rax]
11679ccf6 cmp dword [rax+0x1c], +0x1f
11679ccfa jnz 0x116790010 ->0
11679cd00 mov r14d, [rax+0x14]
11679cd04 mov rdi, 0xfffffffb0af33da8
11679cd0e cmp rdi, [r14+0x290]
11679cd15 jnz 0x116790010 ->0
11679cd1b cmp dword [r14+0x28c], -0x09
11679cd23 jnz 0x116790010 ->0
11679cd29 mov rdi, [r13+0x0]
11679cd2d mov [rsp+0x10], rdi
11679cd32 cmp dword [r14+0x288], 0x0af42630
11679cd3d jnz 0x116790010 ->0
11679cd43 mov rax, 0x00007fff89fe3660
11679cd4d call rax
11679cd4f mov rdx, rax
11679cd52 mov edi, [0x0af314b0]
11679cd59 mov rsi, [rsp+0x10]
11679cd5e call 0x10af12b20 ->lj_str_new
11679cd63 mov edx, [0x0af314b4]
11679cd6a cmp dword [rdx+0x4], -0x05
11679cd6e jnz 0x116790010 ->0
11679cd74 mov r12d, [rdx]
11679cd77 cmp eax, r12d
11679cd7a jz 0x116790014 ->1
11679cd80 add rbx, +0x08
11679cd84 mov rbp, [rbx]
11679cd87 test rbp, rbp
11679cd8a jz 0x11679001c ->3
->LOOP:
11679cd90 mov edi, [0x0af313d8]
11679cd97 cmp edi, [0x0af313dc]
11679cd9e jb 0x11679cdb7
11679cda0 mov esi, 0x1
11679cda5 mov edi, 0x0af313b8
11679cdaa call 0x10af11060 ->lj_gc_step_jit
11679cdaf test eax, eax
11679cdb1 jnz 0x116790020 ->4
11679cdb7 mov rdi, [rbp+0x0]
11679cdbb mov [rsp+0x8], rdi
11679cdc0 mov rax, 0x00007fff89fe3660
11679cdca call rax
11679cdcc mov rdx, rax
11679cdcf mov edi, [0x0af314b0]
11679cdd6 mov rsi, [rsp+0x8]
11679cddb call 0x10af12b20 ->lj_str_new
11679cde0 cmp eax, r12d
11679cde3 jz 0x116790024 ->5
11679cde9 mov r15, rbx
11679cdec add rbx, +0x08
11679cdf0 mov rbp, [rbx]
11679cdf3 test rbp, rbp
11679cdf6 jnz 0x11679cd90 ->LOOP
11679cdf8 jmp 0x11679002c ->7
---- TRACE 11 stop -> loop
lua,parse_int,0.133
---- TRACE 10 start check.lua:15
0001 UGET 1 0 ; type
0002 MOV 2 0
0003 CALL 1 2 2
0000 . FUNCC ; type
0004 ISEQS 1 0 ; "number"
0005 JMP 1 => 0008
0006 KPRI 1 1
0007 JMP 2 => 0009
0009 RET1 1 2
---- TRACE 10 IR
0001 fun SLOAD #0 R
0002 > fun EQ 0001 check.lua:15
0003 > cdt SLOAD #1 T
---- TRACE 10 mcode 87
11721d76a mov dword [0x0b9b1410], 0xa
11721d775 cmp dword [rdx-0x8], 0x0ba09568
11721d77c jnz 0x117210010 ->0
11721d782 cmp dword [rdx+0x4], -0x0b
11721d786 jnz 0x117210010 ->0
11721d78c mov eax, [0x0b9b14b0]
11721d793 mov eax, [rax+0x20]
11721d796 sub eax, edx
11721d798 cmp eax, +0x18
11721d79b jb 0x117210014 ->1
11721d7a1 mov dword [rdx+0xc], 0xfffffffe
11721d7a8 mov dword [rdx-0x8], 0x0ba09568
11721d7af xor eax, eax
11721d7b1 mov ebx, 0x0ba0928c
11721d7b6 mov r14d, 0x0b9b1f98
11721d7bc jmp 0x10b98feb1
---- TRACE 10 stop -> return
---- TRACE 11 start matrix.lua:36
0001 UGET 1 0 ; is_real
0002 MOV 2 0
0003 CALL 1 2 2
0000 . JFUNCF 3 10 ; check.lua:15
0001 . UGET 1 0 ; type
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . FUNCC ; type
0004 . ISEQS 1 0 ; "number"
0005 . JMP 1 => 0008
0006 . KPRI 1 1
0007 . JMP 2 => 0009
0009 . RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0010 TGETB 1 0 0
0000 . . FUNCC ; ffi.meta.__index
0011 TGETB 2 0 1
0000 . . FUNCC ; ffi.meta.__index
0012 RET 1 3
---- TRACE 11 IR
0001 fun SLOAD #0 R
0002 > fun EQ 0001 matrix.lua:36
0003 > cdt SLOAD #1 T
0004 u16 FLOAD 0003 cdata.ctypeid
0005 > int EQ 0004 +16
0006 p64 ADD 0003 +8
0007 num XLOAD 0006
0008 p64 ADD 0003 +16
0009 num XLOAD 0008
---- TRACE 11 mcode 113
11721d6f2 mov dword [0x0b9b1410], 0xb
11721d6fd cmp dword [rdx-0x8], 0x0ba09ce8
11721d704 jnz 0x117210010 ->0
11721d70a cmp dword [rdx+0x4], -0x0b
11721d70e jnz 0x117210010 ->0
11721d714 mov ebp, [rdx]
11721d716 cmp word [rbp+0x6], +0x10
11721d71b jnz 0x117210010 ->0
11721d721 movsd xmm7, [rbp+0x8]
11721d726 movsd xmm6, [rbp+0x10]
11721d72b mov eax, [0x0b9b14b0]
11721d732 mov eax, [rax+0x20]
11721d735 sub eax, edx
11721d737 cmp eax, +0x18
11721d73a jb 0x117210014 ->1
11721d740 movsd [rdx+0x10], xmm6
11721d745 movsd [rdx+0x8], xmm7
11721d74a mov dword [rdx-0x8], 0x0ba09ce8
11721d751 xor eax, eax
11721d753 mov ebx, 0x0b9c4178
11721d758 mov r14d, 0x0b9b1f98
11721d75e jmp 0x10b98feb1
---- TRACE 11 stop -> return
---- TRACE 12 start matrix.lua:23
0001 UGET 1 0 ; is_real
0002 MOV 2 0
0003 CALL 1 2 2
0000 . JFUNCF 3 10 ; check.lua:15
0001 . UGET 1 0 ; type
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . FUNCC ; type
0004 . ISEQS 1 0 ; "number"
0005 . JMP 1 => 0008
0006 . KPRI 1 1
0007 . JMP 2 => 0009
0009 . RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0010 UGET 1 1 ; ffi
0011 TGETS 1 1 0 ; "istype"
0012 UGET 2 2 ; gsl_complex
0013 MOV 3 0
0014 CALL 1 2 3
0000 . FUNCC ; ffi.istype
0015 ISF 1
0016 JMP 2 => 0021
0017 KPRI 1 1
0018 KPRI 2 2
0019 RET 1 3
---- TRACE 12 IR
0001 fun SLOAD #0 R
0002 > fun EQ 0001 matrix.lua:23
0003 > cdt SLOAD #1 T
0004 > p32 UREFC matrix.lua:23 #1
0005 > tab ULOAD 0004
0006 int FLOAD 0005 tab.hmask
0007 > int EQ 0006 +31
0008 p32 FLOAD 0005 tab.node
0009 > p32 HREFK 0008 "istype" @13
0010 > fun HLOAD 0009
0011 > fun EQ 0010 ffi.istype
0012 u16 FLOAD 0003 cdata.ctypeid
0013 > int EQ 0012 +16
---- TRACE 12 mcode 193
11721d62a mov dword [0x0b9b1410], 0xc
11721d635 cmp dword [rdx-0x8], 0x0b9b9b00
11721d63c jnz 0x117210010 ->0
11721d642 cmp dword [rdx+0x4], -0x0b
11721d646 jnz 0x117210010 ->0
11721d64c mov ebp, [rdx]
11721d64e cmp dword [0x0ba09c34], -0x0c
11721d656 jnz 0x117210010 ->0
11721d65c mov ebx, [0x0ba09c30]
11721d663 cmp dword [rbx+0x1c], +0x1f
11721d667 jnz 0x117210010 ->0
11721d66d mov ebx, [rbx+0x14]
11721d670 mov rdi, 0xfffffffb0b9b28c8
11721d67a cmp rdi, [rbx+0x140]
11721d681 jnz 0x117210010 ->0
11721d687 cmp dword [rbx+0x13c], -0x09
11721d68e jnz 0x117210010 ->0
11721d694 cmp dword [rbx+0x138], 0x0b9c2500
11721d69e jnz 0x117210010 ->0
11721d6a4 cmp word [rbp+0x6], +0x10
11721d6a9 jnz 0x117210010 ->0
11721d6af mov eax, [0x0b9b14b0]
11721d6b6 mov eax, [rax+0x20]
11721d6b9 sub eax, edx
11721d6bb cmp eax, +0x20
11721d6be jb 0x117210014 ->1
11721d6c4 mov dword [rdx+0x14], 0xfffffffd
11721d6cb mov dword [rdx+0xc], 0xfffffffe
11721d6d2 mov dword [rdx-0x8], 0x0b9b9b00
11721d6d9 xor eax, eax
11721d6db mov ebx, 0x0b9c366c
11721d6e0 mov r14d, 0x0b9b1f98
11721d6e6 jmp 0x10b98feb1
---- TRACE 12 stop -> return
---- TRACE 13 start matrix.lua:469
0001 UGET 2 0 ; get_typeid
0002 MOV 3 0
0003 CALL 2 3 2
0000 . JFUNCF 4 12 ; matrix.lua:23
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . UGET 1 1 ; ffi
0011 . TGETS 1 1 0 ; "istype"
0012 . UGET 2 2 ; gsl_complex
0013 . MOV 3 0
0014 . CALL 1 2 3
0000 . . FUNCC ; ffi.istype
0015 . ISF 1
0016 . JMP 2 => 0021
0017 . KPRI 1 1
0018 . KPRI 2 2
0019 . RET 1 3
0004 UGET 4 0 ; get_typeid
0005 MOV 5 1
0006 CALL 4 3 2
0000 . JFUNCF 4 12 ; matrix.lua:23
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . UGET 1 1 ; ffi
0011 . TGETS 1 1 0 ; "istype"
0012 . UGET 2 2 ; gsl_complex
0013 . MOV 3 0
0014 . CALL 1 2 3
0000 . . FUNCC ; ffi.istype
0015 . ISF 1
0016 . JMP 2 => 0021
0017 . KPRI 1 1
0018 . KPRI 2 2
0019 . RET 1 3
0007 IST 5
0008 JMP 6 => 0015
0015 ISF 3
0016 JMP 6 => 0036
0017 ISF 5
0018 JMP 6 => 0036
0019 UGET 6 2 ; cartesian
0020 MOV 7 0
0021 CALL 6 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0022 UGET 8 2 ; cartesian
0023 MOV 9 1
0024 CALL 8 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 7 ; matrix.lua:455
0001 . ISF 2
0002 . JMP 4 => 0011
0003 . MULVV 4 0 1
0004 . MULVV 5 2 3
0005 . SUBVV 4 4 5
0006 . MULVV 5 0 3
0007 . MULVV 6 2 1
0008 . ADDVV 5 5 6
0009 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 13 abort t.lua:80 -- NYI: return to lower frame
---- TRACE 13 start matrix.lua:469
0001 UGET 2 0 ; get_typeid
0002 MOV 3 0
0003 CALL 2 3 2
0000 . JFUNCF 4 12 ; matrix.lua:23
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . UGET 1 1 ; ffi
0011 . TGETS 1 1 0 ; "istype"
0012 . UGET 2 2 ; gsl_complex
0013 . MOV 3 0
0014 . CALL 1 2 3
0000 . . FUNCC ; ffi.istype
0015 . ISF 1
0016 . JMP 2 => 0021
0017 . KPRI 1 1
0018 . KPRI 2 2
0019 . RET 1 3
0004 UGET 4 0 ; get_typeid
0005 MOV 5 1
0006 CALL 4 3 2
0000 . JFUNCF 4 12 ; matrix.lua:23
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . UGET 1 1 ; ffi
0011 . TGETS 1 1 0 ; "istype"
0012 . UGET 2 2 ; gsl_complex
0013 . MOV 3 0
0014 . CALL 1 2 3
0000 . . FUNCC ; ffi.istype
0015 . ISF 1
0016 . JMP 2 => 0021
0017 . KPRI 1 1
0018 . KPRI 2 2
0019 . RET 1 3
0007 IST 5
0008 JMP 6 => 0015
0015 ISF 3
0016 JMP 6 => 0036
0017 ISF 5
0018 JMP 6 => 0036
0019 UGET 6 2 ; cartesian
0020 MOV 7 0
0021 CALL 6 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0022 UGET 8 2 ; cartesian
0023 MOV 9 1
0024 CALL 8 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 6 ; matrix.lua:447
0001 . ISF 2
0002 . JMP 4 => 0007
0003 . ADDVV 4 0 1
0004 . ADDVV 5 2 3
0005 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 13 abort t.lua:80 -- NYI: return to lower frame
---- TRACE 13 start t.lua:76
0007 UGET 7 0 ; cabs
0008 MOV 8 0
0009 CALL 7 2 2
0000 . FUNCF 6 ; matrix.lua:205
0001 . UGET 1 0 ; cartesian
0002 . MOV 2 0
0003 . CALL 1 3 2
0000 . . JFUNCF 3 11 ; matrix.lua:36
0001 . . UGET 1 0 ; is_real
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . JFUNCF 3 10 ; check.lua:15
0001 . . . UGET 1 0 ; type
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . FUNCC ; type
0004 . . . ISEQS 1 0 ; "number"
0005 . . . JMP 1 => 0008
0006 . . . KPRI 1 1
0007 . . . JMP 2 => 0009
0009 . . . RET1 1 2
0004 . . ISF 1
0005 . . JMP 2 => 0010
0010 . . TGETB 1 0 0
0000 . . . . FUNCC ; ffi.meta.__index
0011 . . TGETB 2 0 1
0000 . . . . FUNCC ; ffi.meta.__index
0012 . . RET 1 3
0004 . UGET 3 1 ; sqrt
0005 . MULVV 4 1 1
0006 . MULVV 5 2 2
0007 . ADDVV 4 4 5
0008 . CALLT 3 2
0000 . FUNCC ; math.sqrt
0010 KSHORT 8 2
0011 ISGE 8 7
0012 JMP 7 => 0015
0015 MULVV 7 0 0
0000 . . FUNCC ; ffi.meta.__mul
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 7 ; matrix.lua:455
0001 . . . ISF 2
0002 . . . JMP 4 => 0011
0003 . . . MULVV 4 0 1
0004 . . . MULVV 5 2 3
0005 . . . SUBVV 4 4 5
0006 . . . MULVV 5 0 3
0007 . . . MULVV 6 2 1
0008 . . . ADDVV 5 5 6
0009 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0016 ADDVV 0 7 1
0000 . . FUNCC ; ffi.meta.__add
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 6 ; matrix.lua:447
0001 . . . ISF 2
0002 . . . JMP 4 => 0007
0003 . . . ADDVV 4 0 1
0004 . . . ADDVV 5 2 3
0005 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0017 FORL 3 => 0007
---- TRACE 13 IR
0001 > int SLOAD #5 CRI
0002 > int LE 0001 +2147483646
0003 int SLOAD #4 CI
0004 fun SLOAD #0 R
0005 > fun EQ 0004 t.lua:73
0006 > cdt SLOAD #1 T
0007 u16 FLOAD 0006 cdata.ctypeid
0008 > int EQ 0007 +16
0009 p64 ADD 0006 +8
0010 num XLOAD 0009
0011 p64 ADD 0006 +16
0012 num XLOAD 0011
0013 num MUL 0010 0010
0014 num MUL 0012 0012
0015 num ADD 0014 0013
0016 num FPMATH 0015 sqrt
0017 > num ULE 0016 +2
0018 > p32 UREFC matrix.lua:23 #1
0019 > tab ULOAD 0018
0020 int FLOAD 0019 tab.hmask
0021 > int EQ 0020 +31
0022 p32 FLOAD 0019 tab.node
0023 > p32 HREFK 0022 "istype" @13
0024 > fun HLOAD 0023
0025 > fun EQ 0024 ffi.istype
0026 num SUB 0013 0014
0027 num MUL 0012 0010
0028 num ADD 0027 0027
0029 } cdt CNEW +16
0030 p64 ADD 0029 +8
0031 } num XSTORE 0030 0026
0032 p64 ADD 0029 +16
0033 } num XSTORE 0032 0028
0034 > cdt SLOAD #2 T
0035 u16 FLOAD 0034 cdata.ctypeid
0036 > int EQ 0035 +16
0037 p64 ADD 0034 +8
0038 num XLOAD 0037
0039 p64 ADD 0034 +16
0040 num XLOAD 0039
0041 + num ADD 0038 0026
0042 + num ADD 0040 0028
0043 }+ cdt CNEW +16
0044 p64 ADD 0043 +8
0045 } num XSTORE 0044 0041
0046 p64 ADD 0043 +16
0047 } num XSTORE 0046 0042
0048 + int ADD 0003 +1
0049 > int LE 0048 0001
0050 ------ LOOP ------------
0051 num MUL 0041 0041
0052 num MUL 0042 0042
0053 num ADD 0052 0051
0054 num FPMATH 0053 sqrt
0055 > num ULE 0054 +2
0056 num SUB 0051 0052
0057 num MUL 0042 0041
0058 num ADD 0057 0057
0059 } cdt CNEW +16
0060 p64 ADD 0059 +8
0061 } num XSTORE 0060 0056
0062 p64 ADD 0059 +16
0063 } num XSTORE 0062 0058
0064 + num ADD 0056 0038
0065 + num ADD 0058 0040
0066 }+ cdt CNEW +16
0067 p64 ADD 0066 +8
0068 } num XSTORE 0067 0064
0069 p64 ADD 0066 +16
0070 } num XSTORE 0069 0065
0071 + int ADD 0048 +1
0072 > int LE 0071 0001
0073 int PHI 0048 0071
0074 } cdt PHI 0043 0066
0075 num PHI 0041 0064
0076 num PHI 0042 0065
---- TRACE 13 mcode 380
11721d4a7 mov dword [0x0b9b1410], 0xd
11721d4b2 movsd xmm2, [0x0ba64ab0]
11721d4bb movsd xmm7, [rdx+0x20]
11721d4c0 cvttsd2si eax, xmm7
11721d4c4 xorps xmm6, xmm6
11721d4c7 cvtsi2sd xmm6, eax
11721d4cb ucomisd xmm7, xmm6
11721d4cf jnz 0x117210010 ->0
11721d4d5 jpe 0x117210010 ->0
11721d4db cmp eax, 0x7ffffffe
11721d4e1 jg 0x117210010 ->0
11721d4e7 cvttsd2si ebp, [rdx+0x18]
11721d4ec cmp dword [rdx-0x8], 0x0bac9148
11721d4f3 jnz 0x117210010 ->0
11721d4f9 cmp dword [rdx+0x4], -0x0b
11721d4fd jnz 0x117210010 ->0
11721d503 mov r8d, [rdx]
11721d506 cmp word [r8+0x6], +0x10
11721d50c jnz 0x117210010 ->0
11721d512 movsd xmm7, [r8+0x8]
11721d518 movsd xmm8, [r8+0x10]
11721d51e movaps xmm6, xmm7
11721d521 mulsd xmm6, xmm6
11721d525 movaps xmm9, xmm8
11721d529 mulsd xmm9, xmm9
11721d52e movaps xmm11, xmm9
11721d532 addsd xmm11, xmm6
11721d537 sqrtsd xmm10, xmm11
11721d53c ucomisd xmm10, xmm2
11721d541 ja 0x117210014 ->1
11721d547 cmp dword [0x0ba09c34], -0x0c
11721d54f jnz 0x117210018 ->2
11721d555 mov esi, [0x0ba09c30]
11721d55c cmp dword [rsi+0x1c], +0x1f
11721d560 jnz 0x117210018 ->2
11721d566 mov ebx, [rsi+0x14]
11721d569 mov rdi, 0xfffffffb0b9b28c8
11721d573 cmp rdi, [rbx+0x140]
11721d57a jnz 0x117210018 ->2
11721d580 cmp dword [rbx+0x13c], -0x09
11721d587 jnz 0x117210018 ->2
11721d58d cmp dword [rbx+0x138], 0x0b9c2500
11721d597 jnz 0x117210018 ->2
11721d59d subsd xmm6, xmm9
11721d5a2 mulsd xmm7, xmm8
11721d5a7 addsd xmm7, xmm7
11721d5ab cmp dword [rdx+0xc], -0x0b
11721d5af jnz 0x117210018 ->2
11721d5b5 mov ecx, [rdx+0x8]
11721d5b8 cmp word [rcx+0x6], +0x10
11721d5bd jnz 0x117210018 ->2
11721d5c3 movsd xmm1, [rcx+0x8]
11721d5c8 movsd xmm0, [rcx+0x10]
11721d5cd addsd xmm6, xmm1
11721d5d1 addsd xmm7, xmm0
11721d5d5 add ebp, +0x01
11721d5d8 cmp ebp, eax
11721d5da jg 0x11721001c ->3
->LOOP:
11721d5e0 movaps xmm5, xmm6
11721d5e3 mulsd xmm6, xmm6
11721d5e7 movaps xmm4, xmm7
11721d5ea mulsd xmm4, xmm4
11721d5ee movaps xmm3, xmm4
11721d5f1 addsd xmm3, xmm6
11721d5f5 sqrtsd xmm3, xmm3
11721d5f9 ucomisd xmm3, xmm2
11721d5fd ja 0x117210024 ->5
11721d603 subsd xmm6, xmm4
11721d607 mulsd xmm7, xmm5
11721d60b addsd xmm7, xmm7
11721d60f addsd xmm6, xmm1
11721d613 addsd xmm7, xmm0
11721d617 add ebp, +0x01
11721d61a cmp ebp, eax
11721d61c jle 0x11721d5e0 ->LOOP
11721d61e jmp 0x11721002c ->7
---- TRACE 13 stop -> loop
---- TRACE 14 start 10/0 check.lua:16
0001 UGET 1 0 ; type
0002 MOV 2 0
0003 CALL 1 2 2
0000 . FUNCC ; type
0004 ISEQS 1 0 ; "number"
0005 JMP 1 => 0008
0008 KPRI 1 2
0009 RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 MOV 1 0
0007 KSHORT 2 0
0008 RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 7 ; matrix.lua:455
0001 . ISF 2
0002 . JMP 4 => 0011
0003 . MULVV 4 0 1
0004 . MULVV 5 2 3
0005 . SUBVV 4 4 5
0006 . MULVV 5 0 3
0007 . MULVV 6 2 1
0008 . ADDVV 5 5 6
0009 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 14 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 14 start 10/0 check.lua:16
0001 UGET 1 0 ; type
0002 MOV 2 0
0003 CALL 1 2 2
0000 . FUNCC ; type
0004 ISEQS 1 0 ; "number"
0005 JMP 1 => 0008
0008 KPRI 1 2
0009 RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 KPRI 1 2
0007 KPRI 2 2
0008 RET 1 3
0004 UGET 4 0 ; get_typeid
0005 MOV 5 1
0006 CALL 4 3 2
0000 . JFUNCF 4 12 ; matrix.lua:23
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . UGET 1 1 ; ffi
0011 . TGETS 1 1 0 ; "istype"
0012 . UGET 2 2 ; gsl_complex
0013 . MOV 3 0
0014 . CALL 1 2 3
0000 . . FUNCC ; ffi.istype
0015 . ISF 1
0016 . JMP 2 => 0021
0017 . KPRI 1 1
0018 . KPRI 2 2
0019 . RET 1 3
0007 IST 5
0008 JMP 6 => 0015
0015 ISF 3
0016 JMP 6 => 0036
0017 ISF 5
0018 JMP 6 => 0036
0019 UGET 6 2 ; cartesian
0020 MOV 7 0
0021 CALL 6 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0008 . . KPRI 1 2
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0006 . MOV 1 0
0007 . KSHORT 2 0
0008 . RET 1 3
0022 UGET 8 2 ; cartesian
0023 MOV 9 1
0024 CALL 8 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 6 ; matrix.lua:447
0001 . ISF 2
0002 . JMP 4 => 0007
0003 . ADDVV 4 0 1
0004 . ADDVV 5 2 3
0005 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 14 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 14 start 10/0 check.lua:16
0001 UGET 1 0 ; type
0002 MOV 2 0
0003 CALL 1 2 2
0000 . FUNCC ; type
0004 ISEQS 1 0 ; "number"
0005 JMP 1 => 0008
0008 KPRI 1 2
0009 RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 KPRI 1 2
0007 KPRI 2 2
0008 RET 1 3
0007 IST 5
0008 JMP 6 => 0015
0015 ISF 3
0016 JMP 6 => 0036
0017 ISF 5
0018 JMP 6 => 0036
0019 UGET 6 2 ; cartesian
0020 MOV 7 0
0021 CALL 6 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0022 UGET 8 2 ; cartesian
0023 MOV 9 1
0024 CALL 8 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0008 . . KPRI 1 2
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0006 . MOV 1 0
0007 . KSHORT 2 0
0008 . RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 7 ; matrix.lua:455
0001 . ISF 2
0002 . JMP 4 => 0011
0003 . MULVV 4 0 1
0004 . MULVV 5 2 3
0005 . SUBVV 4 4 5
0006 . MULVV 5 0 3
0007 . MULVV 6 2 1
0008 . ADDVV 5 5 6
0009 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 14 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 14 start 10/0 check.lua:16
0001 UGET 1 0 ; type
0002 MOV 2 0
0003 CALL 1 2 2
0000 . FUNCC ; type
0004 ISEQS 1 0 ; "number"
0005 JMP 1 => 0008
0008 KPRI 1 2
0009 RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 KPRI 1 2
0007 KPRI 2 2
0008 RET 1 3
0004 UGET 4 0 ; get_typeid
0005 MOV 5 1
0006 CALL 4 3 2
0000 . JFUNCF 4 12 ; matrix.lua:23
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . UGET 1 1 ; ffi
0011 . TGETS 1 1 0 ; "istype"
0012 . UGET 2 2 ; gsl_complex
0013 . MOV 3 0
0014 . CALL 1 2 3
0000 . . FUNCC ; ffi.istype
0015 . ISF 1
0016 . JMP 2 => 0021
0017 . KPRI 1 1
0018 . KPRI 2 2
0019 . RET 1 3
0007 IST 5
0008 JMP 6 => 0015
0015 ISF 3
0016 JMP 6 => 0036
0017 ISF 5
0018 JMP 6 => 0036
0019 UGET 6 2 ; cartesian
0020 MOV 7 0
0021 CALL 6 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0008 . . KPRI 1 2
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0006 . MOV 1 0
0007 . KSHORT 2 0
0008 . RET 1 3
0022 UGET 8 2 ; cartesian
0023 MOV 9 1
0024 CALL 8 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 6 ; matrix.lua:447
0001 . ISF 2
0002 . JMP 4 => 0007
0003 . ADDVV 4 0 1
0004 . ADDVV 5 2 3
0005 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 14 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 14 start 10/0 check.lua:16
---- TRACE 14 IR
---- TRACE 14 mcode 29
11721d483 mov dword [0x0b9b1410], 0xe
11721d48e xor eax, eax
11721d490 mov ebx, 0x0ba0926c
11721d495 mov r14d, 0x0b9b1f98
11721d49b jmp 0x10b98feb1
---- TRACE 14 stop -> interpreter
---- TRACE 15 start 12/0 matrix.lua:24
0001 UGET 1 0 ; is_real
0002 MOV 2 0
0003 CALL 1 2 2
0000 . JFUNCF 3 10 ; check.lua:15
0001 . UGET 1 0 ; type
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . FUNCC ; type
0004 . ISEQS 1 0 ; "number"
0005 . JMP 1 => 0008
0008 . KPRI 1 2
0009 . RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 KPRI 1 2
0007 KPRI 2 2
0008 RET 1 3
0004 UGET 4 0 ; get_typeid
0005 MOV 5 1
0006 CALL 4 3 2
0000 . JFUNCF 4 12 ; matrix.lua:23
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . UGET 1 1 ; ffi
0011 . TGETS 1 1 0 ; "istype"
0012 . UGET 2 2 ; gsl_complex
0013 . MOV 3 0
0014 . CALL 1 2 3
0000 . . FUNCC ; ffi.istype
0015 . ISF 1
0016 . JMP 2 => 0021
0017 . KPRI 1 1
0018 . KPRI 2 2
0019 . RET 1 3
0007 IST 5
0008 JMP 6 => 0015
0015 ISF 3
0016 JMP 6 => 0036
0017 ISF 5
0018 JMP 6 => 0036
0019 UGET 6 2 ; cartesian
0020 MOV 7 0
0021 CALL 6 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0008 . . KPRI 1 2
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0006 . MOV 1 0
0007 . KSHORT 2 0
0008 . RET 1 3
0022 UGET 8 2 ; cartesian
0023 MOV 9 1
0024 CALL 8 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 6 ; matrix.lua:447
0001 . ISF 2
0002 . JMP 4 => 0007
0003 . ADDVV 4 0 1
0004 . ADDVV 5 2 3
0005 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 15 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 15 start 12/0 matrix.lua:24
0001 UGET 1 0 ; is_real
0002 MOV 2 0
0003 CALL 1 2 2
0000 . JFUNCF 3 10 ; check.lua:15
0001 . UGET 1 0 ; type
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . FUNCC ; type
0004 . ISEQS 1 0 ; "number"
0005 . JMP 1 => 0008
0008 . KPRI 1 2
0009 . RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 KPRI 1 2
0007 KPRI 2 2
0008 RET 1 3
0007 IST 5
0008 JMP 6 => 0015
0015 ISF 3
0016 JMP 6 => 0036
0017 ISF 5
0018 JMP 6 => 0036
0019 UGET 6 2 ; cartesian
0020 MOV 7 0
0021 CALL 6 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0022 UGET 8 2 ; cartesian
0023 MOV 9 1
0024 CALL 8 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0008 . . KPRI 1 2
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0006 . MOV 1 0
0007 . KSHORT 2 0
0008 . RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 7 ; matrix.lua:455
0001 . ISF 2
0002 . JMP 4 => 0011
0003 . MULVV 4 0 1
0004 . MULVV 5 2 3
0005 . SUBVV 4 4 5
0006 . MULVV 5 0 3
0007 . MULVV 6 2 1
0008 . ADDVV 5 5 6
0009 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 15 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 15 start 12/0 matrix.lua:24
0001 UGET 1 0 ; is_real
0002 MOV 2 0
0003 CALL 1 2 2
0000 . JFUNCF 3 10 ; check.lua:15
0001 . UGET 1 0 ; type
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . FUNCC ; type
0004 . ISEQS 1 0 ; "number"
0005 . JMP 1 => 0008
0008 . KPRI 1 2
0009 . RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 KPRI 1 2
0007 KPRI 2 2
0008 RET 1 3
0004 UGET 4 0 ; get_typeid
0005 MOV 5 1
0006 CALL 4 3 2
0000 . JFUNCF 4 12 ; matrix.lua:23
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . UGET 1 1 ; ffi
0011 . TGETS 1 1 0 ; "istype"
0012 . UGET 2 2 ; gsl_complex
0013 . MOV 3 0
0014 . CALL 1 2 3
0000 . . FUNCC ; ffi.istype
0015 . ISF 1
0016 . JMP 2 => 0021
0017 . KPRI 1 1
0018 . KPRI 2 2
0019 . RET 1 3
0007 IST 5
0008 JMP 6 => 0015
0015 ISF 3
0016 JMP 6 => 0036
0017 ISF 5
0018 JMP 6 => 0036
0019 UGET 6 2 ; cartesian
0020 MOV 7 0
0021 CALL 6 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0008 . . KPRI 1 2
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0006 . MOV 1 0
0007 . KSHORT 2 0
0008 . RET 1 3
0022 UGET 8 2 ; cartesian
0023 MOV 9 1
0024 CALL 8 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 6 ; matrix.lua:447
0001 . ISF 2
0002 . JMP 4 => 0007
0003 . ADDVV 4 0 1
0004 . ADDVV 5 2 3
0005 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 15 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 15 start 12/0 matrix.lua:24
0001 UGET 1 0 ; is_real
0002 MOV 2 0
0003 CALL 1 2 2
0000 . JFUNCF 3 10 ; check.lua:15
0001 . UGET 1 0 ; type
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . FUNCC ; type
0004 . ISEQS 1 0 ; "number"
0005 . JMP 1 => 0008
0008 . KPRI 1 2
0009 . RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 KPRI 1 2
0007 KPRI 2 2
0008 RET 1 3
0007 IST 5
0008 JMP 6 => 0015
0015 ISF 3
0016 JMP 6 => 0036
0017 ISF 5
0018 JMP 6 => 0036
0019 UGET 6 2 ; cartesian
0020 MOV 7 0
0021 CALL 6 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0022 UGET 8 2 ; cartesian
0023 MOV 9 1
0024 CALL 8 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0008 . . KPRI 1 2
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0006 . MOV 1 0
0007 . KSHORT 2 0
0008 . RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 7 ; matrix.lua:455
0001 . ISF 2
0002 . JMP 4 => 0011
0003 . MULVV 4 0 1
0004 . MULVV 5 2 3
0005 . SUBVV 4 4 5
0006 . MULVV 5 0 3
0007 . MULVV 6 2 1
0008 . ADDVV 5 5 6
0009 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 15 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 15 start 12/0 matrix.lua:24
---- TRACE 15 IR
---- TRACE 15 mcode 29
11721d45f mov dword [0x0b9b1410], 0xf
11721d46a xor eax, eax
11721d46c mov ebx, 0x0b9c3624
11721d471 mov r14d, 0x0b9b1f98
11721d477 jmp 0x10b98feb1
---- TRACE 15 stop -> interpreter
---- TRACE 16 start 11/0 matrix.lua:37
0001 UGET 1 0 ; is_real
0002 MOV 2 0
0003 CALL 1 2 2
0000 . JFUNCF 3 10 ; check.lua:15
0001 . UGET 1 0 ; type
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . FUNCC ; type
0004 . ISEQS 1 0 ; "number"
0005 . JMP 1 => 0008
0008 . KPRI 1 2
0009 . RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 MOV 1 0
0007 KSHORT 2 0
0008 RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 7 ; matrix.lua:455
0001 . ISF 2
0002 . JMP 4 => 0011
0003 . MULVV 4 0 1
0004 . MULVV 5 2 3
0005 . SUBVV 4 4 5
0006 . MULVV 5 0 3
0007 . MULVV 6 2 1
0008 . ADDVV 5 5 6
0009 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 16 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 16 start 11/0 matrix.lua:37
0001 UGET 1 0 ; is_real
0002 MOV 2 0
0003 CALL 1 2 2
0000 . JFUNCF 3 10 ; check.lua:15
0001 . UGET 1 0 ; type
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . FUNCC ; type
0004 . ISEQS 1 0 ; "number"
0005 . JMP 1 => 0008
0008 . KPRI 1 2
0009 . RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 MOV 1 0
0007 KSHORT 2 0
0008 RET 1 3
0022 UGET 8 2 ; cartesian
0023 MOV 9 1
0024 CALL 8 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 6 ; matrix.lua:447
0001 . ISF 2
0002 . JMP 4 => 0007
0003 . ADDVV 4 0 1
0004 . ADDVV 5 2 3
0005 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 16 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 16 start 11/0 matrix.lua:37
0001 UGET 1 0 ; is_real
0002 MOV 2 0
0003 CALL 1 2 2
0000 . JFUNCF 3 10 ; check.lua:15
0001 . UGET 1 0 ; type
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . FUNCC ; type
0004 . ISEQS 1 0 ; "number"
0005 . JMP 1 => 0008
0008 . KPRI 1 2
0009 . RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 MOV 1 0
0007 KSHORT 2 0
0008 RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 7 ; matrix.lua:455
0001 . ISF 2
0002 . JMP 4 => 0011
0003 . MULVV 4 0 1
0004 . MULVV 5 2 3
0005 . SUBVV 4 4 5
0006 . MULVV 5 0 3
0007 . MULVV 6 2 1
0008 . ADDVV 5 5 6
0009 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 16 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 16 start 11/0 matrix.lua:37
0001 UGET 1 0 ; is_real
0002 MOV 2 0
0003 CALL 1 2 2
0000 . JFUNCF 3 10 ; check.lua:15
0001 . UGET 1 0 ; type
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . FUNCC ; type
0004 . ISEQS 1 0 ; "number"
0005 . JMP 1 => 0008
0008 . KPRI 1 2
0009 . RET1 1 2
0004 ISF 1
0005 JMP 2 => 0010
0006 MOV 1 0
0007 KSHORT 2 0
0008 RET 1 3
0022 UGET 8 2 ; cartesian
0023 MOV 9 1
0024 CALL 8 3 2
0000 . JFUNCF 3 11 ; matrix.lua:36
0001 . UGET 1 0 ; is_real
0002 . MOV 2 0
0003 . CALL 1 2 2
0000 . . JFUNCF 3 10 ; check.lua:15
0001 . . UGET 1 0 ; type
0002 . . MOV 2 0
0003 . . CALL 1 2 2
0000 . . . FUNCC ; type
0004 . . ISEQS 1 0 ; "number"
0005 . . JMP 1 => 0008
0006 . . KPRI 1 1
0007 . . JMP 2 => 0009
0009 . . RET1 1 2
0004 . ISF 1
0005 . JMP 2 => 0010
0010 . TGETB 1 0 0
0000 . . . FUNCC ; ffi.meta.__index
0011 . TGETB 2 0 1
0000 . . . FUNCC ; ffi.meta.__index
0012 . RET 1 3
0025 UGET 10 3 ; scalar_op
0026 MOV 11 6
0027 MOV 12 8
0028 MOV 13 7
0029 MOV 14 9
0030 CALL 10 3 5
0000 . FUNCF 6 ; matrix.lua:447
0001 . ISF 2
0002 . JMP 4 => 0007
0003 . ADDVV 4 0 1
0004 . ADDVV 5 2 3
0005 . RET 4 3
0031 UGET 12 4 ; gsl_complex
0032 MOV 13 10
0033 MOV 14 11
0034 CALLT 12 3
0000 FUNCC ; ffi.meta.__call
---- TRACE 16 abort t.lua:92 -- NYI: return to lower frame
---- TRACE 16 start 13/1 t.lua:78
0013 SUBVN 7 6 0 ; 1
0014 RET1 7 2
0028 TSETV 13 0 12
0000 . . FUNCC ; ffi.meta.__newindex
0029 FORL 8 => 0019
0030 FORL 4 => 0014
0014 MULVN 1 7 0 ; 0.1
0015 KSHORT 8 -10
0016 KSHORT 9 10
0017 KSHORT 10 1
0018 FORI 8 => 0030
0019 MULVN 2 11 0 ; 0.1
0020 MULVN 12 7 1 ; 21
0021 ADDVV 12 12 11
0022 ADDVN 12 12 2 ; 430
0023 UGET 13 1 ; mandel
0024 KCDATA 14 3
0025 MULVV 14 14 2
0000 . . FUNCC ; ffi.meta.__mul
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . KPRI 1 2
0007 . . . KPRI 2 2
0008 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . MOV 1 0
0007 . . . KSHORT 2 0
0008 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 7 ; matrix.lua:455
0001 . . . ISF 2
0002 . . . JMP 4 => 0011
0003 . . . MULVV 4 0 1
0004 . . . MULVV 5 2 3
0005 . . . SUBVV 4 4 5
0006 . . . MULVV 5 0 3
0007 . . . MULVV 6 2 1
0008 . . . ADDVV 5 5 6
0009 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0026 ADDVV 14 1 14
0000 . . FUNCC ; ffi.meta.__add
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . KPRI 1 2
0007 . . . KPRI 2 2
0008 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . MOV 1 0
0007 . . . KSHORT 2 0
0008 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 6 ; matrix.lua:447
0001 . . . ISF 2
0002 . . . JMP 4 => 0007
0003 . . . ADDVV 4 0 1
0004 . . . ADDVV 5 2 3
0005 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0027 CALL 13 2 2
0000 . FUNCF 9 ; t.lua:73
0001 . MOV 1 0
0002 . KSHORT 2 80
0003 . KSHORT 3 1
0004 . MOV 4 2
0005 . KSHORT 5 1
0006 . JFORI 3 => 0018
---- TRACE 16 IR
0001 int SLOAD #7 PI
0002 > int SUBOV 0001 +1
0003 > p32 RETF proto: 0x0b9c6db0 [0x0b9c6e60]
0004 > cdt SLOAD #1 T
0005 > num SLOAD #13 T
0006 u16 FLOAD 0004 cdata.ctypeid
0007 > int EQ 0006 +4993
0008 i64 CONV 0005 i64.num
0009 i64 BSHL 0008 +3
0010 p64 ADD 0009 0004
0011 p64 ADD 0010 +8
0012 num CONV 0002 num.int
0013 num XSTORE 0011 0012
0014 num SLOAD #9 I
0015 num ADD 0014 +1
0016 > num GT 0015 +10
0017 num SLOAD #5 I
0018 num ADD 0017 +1
0019 > num LE 0018 +5
0020 num MUL 0018 +0.1
0021 num MUL 0018 +21
0022 num ADD 0021 -10
0023 num ADD 0022 +430
0024 fun SLOAD #0 R
0025 > fun EQ 0024 t.lua:84
0026 > p32 UREFC matrix.lua:23 #1
0027 > tab ULOAD 0026
0028 int FLOAD 0027 tab.hmask
0029 > int EQ 0028 +31
0030 p32 FLOAD 0027 tab.node
0031 > p32 HREFK 0030 "istype" @13
0032 > fun HLOAD 0031
0033 > fun EQ 0032 ffi.istype
0034 } cdt CNEW +16
0035 p64 ADD 0034 +8
0036 } num XSTORE 0035 -0
0037 p64 ADD 0034 +16
0038 } num XSTORE 0037 -1
0039 num ADD 0020 -0
0040 > cdt CNEW +16
0041 p64 ADD 0040 +8
0042 num XSTORE 0041 0039
0043 p64 ADD 0040 +16
0044 num XSTORE 0043 -1
---- TRACE 16 mcode 670
11721d1be add rsp, -0x20
11721d1c2 mov dword [0x0b9b1410], 0x10
11721d1cd mov edi, [0x0b9b13d8]
11721d1d4 cmp edi, [0x0b9b13dc]
11721d1db jb 0x11721d1f4
11721d1dd mov esi, 0x1
11721d1e2 mov edi, 0x0b9b13b8
11721d1e7 call 0x10b991060 ->lj_gc_step_jit
11721d1ec test eax, eax
11721d1ee jnz 0x117210010 ->0
11721d1f4 mov edi, [0x0b9b14b0]
11721d1fb mov edx, [0x0b9b14b4]
11721d202 movsd xmm7, [0x0ba64ad8]
11721d20b mov r15d, ebp
11721d20e sub r15d, +0x01
11721d212 jo 0x117210010 ->0
11721d218 cmp dword [rdx-0x4], 0x0b9c6e60
11721d21f jnz 0x117210014 ->1
11721d225 add edx, -0x70
11721d228 mov [0x0b9b14b4], edx
11721d22f cmp dword [rdx+0x4], -0x0b
11721d233 jnz 0x117210018 ->2
11721d239 mov ebx, [rdx]
11721d23b cmp dword [rdx+0x64], 0xfffeffff
11721d242 jnb 0x117210018 ->2
11721d248 movzx ebp, word [rbx+0x6]
11721d24c cmp ebp, 0x1381
11721d252 jnz 0x117210018 ->2
11721d258 cvttsd2si rbp, [rdx+0x60]
11721d25e xorps xmm6, xmm6
11721d261 cvtsi2sd xmm6, r15d
11721d266 movsd [rbx+rbp*8+0x8], xmm6
11721d26c movsd xmm6, [rdx+0x40]
11721d271 addsd xmm6, [0x0ba64a80]
11721d27a ucomisd xmm6, [0x0ba64ad0]
11721d283 jbe 0x11721001c ->3
11721d289 movsd xmm5, [rdx+0x20]
11721d28e addsd xmm5, [0x0ba64a80]
11721d297 movsd [rsp+0x10], xmm5
11721d29d ucomisd xmm7, xmm5
11721d2a1 jb 0x117210020 ->4
11721d2a7 movaps xmm7, xmm5
11721d2aa mulsd xmm7, [0x0ba64ae0]
11721d2b3 movsd [rsp+0x18], xmm7
11721d2b9 movaps xmm1, xmm5
11721d2bc mulsd xmm1, [0x0ba64af8]
11721d2c5 addsd xmm1, [0x0ba64ae8]
11721d2ce addsd xmm1, [0x0ba20420]
11721d2d7 movsd [rsp+0x8], xmm1
11721d2dd cmp dword [rdx-0x8], 0x0bac9188
11721d2e4 jnz 0x117210024 ->5
11721d2ea cmp dword [0x0ba09c34], -0x0c
11721d2f2 jnz 0x117210024 ->5
11721d2f8 mov ebp, [0x0ba09c30]
11721d2ff cmp dword [rbp+0x1c], +0x1f
11721d303 jnz 0x117210024 ->5
11721d309 mov ebp, [rbp+0x14]
11721d30c mov rsi, 0xfffffffb0b9b28c8
11721d316 cmp rsi, [rbp+0x140]
11721d31d jnz 0x117210024 ->5
11721d323 cmp dword [rbp+0x13c], -0x09
11721d32a jnz 0x117210024 ->5
11721d330 cmp dword [rbp+0x138], 0x0b9c2500
11721d33a jnz 0x117210024 ->5
11721d340 movaps xmm15, xmm7
11721d344 addsd xmm15, [0x0ba20428]
11721d34e movsd [rsp+0x20], xmm15
11721d355 mov esi, 0x18
11721d35a call 0x10b991370 ->lj_mem_newgco
11721d35f movzx ecx, byte [0x0b9b13e0]
11721d367 and ecx, +0x03
11721d36a or ecx, 0x00100a00
11721d370 mov [rax+0x4], ecx
11721d373 mov edx, [0x0b9b14b4]
11721d37a movsd xmm15, [rsp+0x20]
11721d381 movsd xmm7, [rsp+0x18]
11721d387 movsd xmm6, [0x0ba64af0]
11721d390 movsd xmm5, [rsp+0x10]
11721d396 movsd xmm4, [0x0ba64ae8]
11721d39f movsd xmm3, [0x0ba64ad0]
11721d3a8 movsd xmm2, [0x0ba64a80]
11721d3b1 movsd xmm1, [rsp+0x8]
11721d3b7 movsd xmm0, [0x0ba20430]
11721d3c0 movsd [rax+0x8], xmm15
11721d3c6 movsd [rax+0x10], xmm6
11721d3cb movsd [rdx+0xa0], xmm2
11721d3d3 movsd [rdx+0x98], xmm2
11721d3db movsd [rdx+0x90], xmm0
11721d3e3 movsd [rdx+0x88], xmm2
11721d3eb movsd [rdx+0x80], xmm0
11721d3f3 mov dword [rdx+0x7c], 0xfffffff5
11721d3fa mov [rdx+0x78], eax
11721d3fd mov dword [rdx+0x74], 0xfffffff5
11721d404 mov [rdx+0x70], eax
11721d407 mov dword [rdx+0x6c], 0x0b9c6e60
11721d40e mov dword [rdx+0x68], 0x0bac9148
11721d415 movsd [rdx+0x60], xmm1
11721d41a movsd [rdx+0x58], xmm4
11721d41f movsd [rdx+0x50], xmm2
11721d424 movsd [rdx+0x48], xmm3
11721d429 movsd [rdx+0x40], xmm4
11721d42e movsd [rdx+0x38], xmm5
11721d433 movsd [rdx+0x20], xmm5
11721d438 movsd [rdx+0x10], xmm6
11721d43d movsd [rdx+0x8], xmm7
11721d442 mov dword [rdx-0x8], 0x0bac9188
11721d449 add edx, +0x70
11721d44c mov [0x0b9b14b4], edx
11721d453 add rsp, +0x20
11721d457 jmp 0x11721d4a7
---- TRACE 16 stop -> 13
---- TRACE 17 start 11/0 matrix.lua:37
---- TRACE 17 IR
---- TRACE 17 mcode 29
11721d19a mov dword [0x0b9b1410], 0x11
11721d1a5 xor eax, eax
11721d1a7 mov ebx, 0x0b9c414c
11721d1ac mov r14d, 0x0b9b1f98
11721d1b2 jmp 0x10b98feb1
---- TRACE 17 stop -> interpreter
---- TRACE 18 start 13/5 t.lua:78
0013 SUBVN 7 6 0 ; 1
0014 RET1 7 2
0028 TSETV 13 0 12
0000 . . FUNCC ; ffi.meta.__newindex
0029 FORL 8 => 0019
0019 MULVN 2 11 0 ; 0.1
0020 MULVN 12 7 1 ; 21
0021 ADDVV 12 12 11
0022 ADDVN 12 12 2 ; 430
0023 UGET 13 1 ; mandel
0024 KCDATA 14 3
0025 MULVV 14 14 2
0000 . . FUNCC ; ffi.meta.__mul
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . KPRI 1 2
0007 . . . KPRI 2 2
0008 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . MOV 1 0
0007 . . . KSHORT 2 0
0008 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 7 ; matrix.lua:455
0001 . . . ISF 2
0002 . . . JMP 4 => 0011
0003 . . . MULVV 4 0 1
0004 . . . MULVV 5 2 3
0005 . . . SUBVV 4 4 5
0006 . . . MULVV 5 0 3
0007 . . . MULVV 6 2 1
0008 . . . ADDVV 5 5 6
0009 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0026 ADDVV 14 1 14
0000 . . FUNCC ; ffi.meta.__add
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . KPRI 1 2
0007 . . . KPRI 2 2
0008 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . MOV 1 0
0007 . . . KSHORT 2 0
0008 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 6 ; matrix.lua:447
0001 . . . ISF 2
0002 . . . JMP 4 => 0007
0003 . . . ADDVV 4 0 1
0004 . . . ADDVV 5 2 3
0005 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0027 CALL 13 2 2
0000 . FUNCF 9 ; t.lua:73
0001 . MOV 1 0
0002 . KSHORT 2 80
0003 . KSHORT 3 1
0004 . MOV 4 2
0005 . KSHORT 5 1
0006 . JFORI 3 => 0018
---- TRACE 18 IR
0001 int SLOAD #4 PI
0002 int SLOAD #5 PRI
0003 num PVAL #41
0004 num PVAL #42
0005 + cdt CNEW +16
0006 p64 ADD 0005 +8
0007 num XSTORE 0006 0003
0008 p64 ADD 0005 +16
0009 num XSTORE 0008 0004
0010 > nil GCSTEP
0011 > int SUBOV 0001 +1
0012 > p32 RETF proto: 0x0b9c6db0 [0x0b9c6e60]
0013 > cdt SLOAD #1 T
0014 > num SLOAD #13 T
0015 u16 FLOAD 0013 cdata.ctypeid
0016 > int EQ 0015 +4993
0017 i64 CONV 0014 i64.num
0018 i64 BSHL 0017 +3
0019 p64 ADD 0018 0013
0020 p64 ADD 0019 +8
0021 num CONV 0011 num.int
0022 num XSTORE 0020 0021
0023 num SLOAD #9 I
0024 num ADD 0023 +1
0025 > num LE 0024 +10
0026 num MUL 0024 +0.1
0027 > num SLOAD #8 T
0028 num MUL 0027 +21
0029 num ADD 0028 0024
0030 num ADD 0029 +430
0031 fun SLOAD #0 R
0032 > fun EQ 0031 t.lua:84
0033 > p32 UREFC matrix.lua:23 #1
0034 > tab ULOAD 0033
0035 int FLOAD 0034 tab.hmask
0036 > int EQ 0035 +31
0037 p32 FLOAD 0034 tab.node
0038 > p32 HREFK 0037 "istype" @13
0039 > fun HLOAD 0038
0040 > fun EQ 0039 ffi.istype
0041 num MUL 0026 +0
0042 num ADD 0026 +0
0043 } cdt CNEW +16
0044 p64 ADD 0043 +8
0045 } num XSTORE 0044 0041
0046 p64 ADD 0043 +16
0047 } num XSTORE 0046 0042
0048 > num SLOAD #2 T
0049 num ADD 0048 0041
0050 num ADD 0042 +0
0051 > cdt CNEW +16
0052 p64 ADD 0051 +8
0053 num XSTORE 0052 0049
0054 p64 ADD 0051 +16
0055 num XSTORE 0054 0050
---- TRACE 18 mcode 726
11721cec1 mov ebx, eax
11721cec3 add rsp, -0x40
11721cec7 mov dword [0x0b9b1410], 0x12
11721ced2 movsd [rsp+0x38], xmm5
11721ced8 movsd [rsp+0x40], xmm7
11721cede mov edi, [0x0b9b14b0]
11721cee5 mov esi, 0x18
11721ceea call 0x10b991370 ->lj_mem_newgco
11721ceef movzx ecx, byte [0x0b9b13e0]
11721cef7 and ecx, +0x03
11721cefa or ecx, 0x00100a00
11721cf00 mov [rax+0x4], ecx
11721cf03 mov [rsp+0x30], eax
11721cf07 movsd xmm7, [rsp+0x40]
11721cf0d movsd xmm5, [rsp+0x38]
11721cf13 movsd [rax+0x8], xmm5
11721cf18 movsd [rax+0x10], xmm7
11721cf1d mov edi, [0x0b9b13d8]
11721cf24 cmp edi, [0x0b9b13dc]
11721cf2b jb 0x11721cf44
11721cf2d mov esi, 0x2
11721cf32 mov edi, 0x0b9b13b8
11721cf37 call 0x10b991060 ->lj_gc_step_jit
11721cf3c test eax, eax
11721cf3e jnz 0x117210010 ->0
11721cf44 mov edi, [0x0b9b14b0]
11721cf4b mov edx, [0x0b9b14b4]
11721cf52 mov eax, [rsp+0x30]
11721cf56 movsd xmm7, [0x0ba64ad0]
11721cf5f mov r15d, ebp
11721cf62 sub r15d, +0x01
11721cf66 jo 0x117210010 ->0
11721cf6c cmp dword [rdx-0x4], 0x0b9c6e60
11721cf73 jnz 0x117210014 ->1
11721cf79 add edx, -0x70
11721cf7c mov [0x0b9b14b4], edx
11721cf83 cmp dword [rdx+0x4], -0x0b
11721cf87 jnz 0x117210018 ->2
11721cf8d mov ebx, [rdx]
11721cf8f cmp dword [rdx+0x64], 0xfffeffff
11721cf96 jnb 0x117210018 ->2
11721cf9c movzx ebp, word [rbx+0x6]
11721cfa0 cmp ebp, 0x1381
11721cfa6 jnz 0x117210018 ->2
11721cfac cvttsd2si rbp, [rdx+0x60]
11721cfb2 xorps xmm6, xmm6
11721cfb5 cvtsi2sd xmm6, r15d
11721cfba movsd [rbx+rbp*8+0x8], xmm6
11721cfc0 movsd xmm6, [rdx+0x40]
11721cfc5 addsd xmm6, [0x0ba64a80]
11721cfce movsd [rsp+0x20], xmm6
11721cfd4 ucomisd xmm7, xmm6
11721cfd8 jb 0x11721001c ->3
11721cfde movaps xmm7, xmm6
11721cfe1 mulsd xmm7, [0x0ba64ae0]
11721cfea movsd [rsp+0x28], xmm7
11721cff0 cmp dword [rdx+0x3c], 0xfffeffff
11721cff7 jnb 0x117210020 ->4
11721cffd movsd xmm5, [rdx+0x38]
11721d002 mulsd xmm5, [0x0ba64af8]
11721d00b addsd xmm5, xmm6
11721d00f addsd xmm5, [0x0ba20420]
11721d018 movsd [rsp+0x18], xmm5
11721d01e cmp dword [rdx-0x8], 0x0bac9188
11721d025 jnz 0x117210020 ->4
11721d02b cmp dword [0x0ba09c34], -0x0c
11721d033 jnz 0x117210020 ->4
11721d039 mov ebp, [0x0ba09c30]
11721d040 cmp dword [rbp+0x1c], +0x1f
11721d044 jnz 0x117210020 ->4
11721d04a mov ebp, [rbp+0x14]
11721d04d mov rsi, 0xfffffffb0b9b28c8
11721d057 cmp rsi, [rbp+0x140]
11721d05e jnz 0x117210020 ->4
11721d064 cmp dword [rbp+0x13c], -0x09
11721d06b jnz 0x117210020 ->4
11721d071 cmp dword [rbp+0x138], 0x0b9c2500
11721d07b jnz 0x117210020 ->4
11721d081 movaps xmm1, xmm7
11721d084 mulsd xmm1, [0x0ba64ac0]
11721d08d movaps xmm2, xmm7
11721d090 addsd xmm2, [0x0ba64ac0]
11721d099 cmp dword [rdx+0xc], 0xfffeffff
11721d0a0 jnb 0x117210020 ->4
11721d0a6 addsd xmm1, [rdx+0x8]
11721d0ab movsd [rsp+0x8], xmm1
11721d0b1 addsd xmm2, [0x0ba64ac0]
11721d0ba movsd [rsp+0x10], xmm2
11721d0c0 mov esi, 0x18
11721d0c5 call 0x10b991370 ->lj_mem_newgco
11721d0ca movzx ecx, byte [0x0b9b13e0]
11721d0d2 and ecx, +0x03
11721d0d5 or ecx, 0x00100a00
11721d0db mov [rax+0x4], ecx
11721d0de mov edx, [0x0b9b14b4]
11721d0e5 movsd xmm7, [rsp+0x28]
11721d0eb movsd xmm6, [rsp+0x20]
11721d0f1 movsd xmm5, [rsp+0x18]
11721d0f7 movsd xmm4, [0x0ba20430]
11721d100 movsd xmm3, [0x0ba64a80]
11721d109 movsd xmm2, [rsp+0x10]
11721d10f movsd xmm1, [rsp+0x8]
11721d115 movsd [rax+0x8], xmm1
11721d11a movsd [rax+0x10], xmm2
11721d11f movsd [rdx+0xa0], xmm3
11721d127 movsd [rdx+0x98], xmm3
11721d12f movsd [rdx+0x90], xmm4
11721d137 movsd [rdx+0x88], xmm3
11721d13f movsd [rdx+0x80], xmm4
11721d147 mov dword [rdx+0x7c], 0xfffffff5
11721d14e mov [rdx+0x78], eax
11721d151 mov dword [rdx+0x74], 0xfffffff5
11721d158 mov [rdx+0x70], eax
11721d15b mov dword [rdx+0x6c], 0x0b9c6e60
11721d162 mov dword [rdx+0x68], 0x0bac9148
11721d169 movsd [rdx+0x60], xmm5
11721d16e movsd [rdx+0x58], xmm6
11721d173 movsd [rdx+0x40], xmm6
11721d178 movsd [rdx+0x10], xmm7
11721d17d mov dword [rdx-0x8], 0x0bac9188
11721d184 add edx, +0x70
11721d187 mov [0x0b9b14b4], edx
11721d18e add rsp, +0x40
11721d192 jmp 0x11721d4a7
---- TRACE 18 stop -> 13
---- TRACE 19 start 16/3 t.lua:91
0019 MULVN 2 11 0 ; 0.1
0020 MULVN 12 7 1 ; 21
0021 ADDVV 12 12 11
0022 ADDVN 12 12 2 ; 430
0023 UGET 13 1 ; mandel
0024 KCDATA 14 3
0025 MULVV 14 14 2
0000 . . FUNCC ; ffi.meta.__mul
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . KPRI 1 2
0007 . . . KPRI 2 2
0008 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . MOV 1 0
0007 . . . KSHORT 2 0
0008 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 7 ; matrix.lua:455
0001 . . . ISF 2
0002 . . . JMP 4 => 0011
0003 . . . MULVV 4 0 1
0004 . . . MULVV 5 2 3
0005 . . . SUBVV 4 4 5
0006 . . . MULVV 5 0 3
0007 . . . MULVV 6 2 1
0008 . . . ADDVV 5 5 6
0009 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0026 ADDVV 14 1 14
0000 . . FUNCC ; ffi.meta.__add
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . KPRI 1 2
0007 . . . KPRI 2 2
0008 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . MOV 1 0
0007 . . . KSHORT 2 0
0008 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 6 ; matrix.lua:447
0001 . . . ISF 2
0002 . . . JMP 4 => 0007
0003 . . . ADDVV 4 0 1
0004 . . . ADDVV 5 2 3
0005 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0027 CALL 13 2 2
0000 . FUNCF 9 ; t.lua:73
0001 . MOV 1 0
0002 . KSHORT 2 80
0003 . KSHORT 3 1
0004 . MOV 4 2
0005 . KSHORT 5 1
0006 . JFORI 3 => 0018
---- TRACE 19 IR
0001 num SLOAD #9 PI
0002 num MUL 0001 +0.1
0003 > num SLOAD #8 T
0004 num MUL 0003 +21
0005 num ADD 0004 0001
0006 num ADD 0005 +430
0007 fun SLOAD #0 R
0008 > fun EQ 0007 t.lua:84
0009 > p32 UREFC matrix.lua:23 #1
0010 > tab ULOAD 0009
0011 int FLOAD 0010 tab.hmask
0012 > int EQ 0011 +31
0013 p32 FLOAD 0010 tab.node
0014 > p32 HREFK 0013 "istype" @13
0015 > fun HLOAD 0014
0016 > fun EQ 0015 ffi.istype
0017 num MUL 0002 +0
0018 num ADD 0002 +0
0019 } cdt CNEW +16
0020 p64 ADD 0019 +8
0021 } num XSTORE 0020 0017
0022 p64 ADD 0019 +16
0023 } num XSTORE 0022 0018
0024 > num SLOAD #2 T
0025 num ADD 0024 0017
0026 num ADD 0018 +0
0027 > cdt CNEW +16
0028 p64 ADD 0027 +8
0029 num XSTORE 0028 0025
0030 p64 ADD 0027 +16
0031 num XSTORE 0030 0026
---- TRACE 19 mcode 549
11721cc99 mov eax, [0x0b9b14b0]
11721cca0 mov eax, [rax+0x20]
11721cca3 sub eax, [0x0b9b14b4]
11721ccaa cmp eax, 0xb8
11721ccb0 jb 0x11721001c ->3
11721ccb6 mov dword [0x0b9b1410], 0x13
11721ccc1 movsd [rsp+0x28], xmm6
11721ccc7 mov edi, [0x0b9b13d8]
11721ccce cmp edi, [0x0b9b13dc]
11721ccd5 jb 0x11721ccee
11721ccd7 mov esi, 0x1
11721ccdc mov edi, 0x0b9b13b8
11721cce1 call 0x10b991060 ->lj_gc_step_jit
11721cce6 test eax, eax
11721cce8 jnz 0x117210010 ->0
11721ccee mov edi, [0x0b9b14b0]
11721ccf5 mov edx, [0x0b9b14b4]
11721ccfc movsd xmm7, [rsp+0x28]
11721cd02 movaps xmm6, xmm7
11721cd05 mulsd xmm6, [0x0ba64ae0]
11721cd0e movsd [rsp+0x20], xmm6
11721cd14 cmp dword [rdx+0x3c], 0xfffeffff
11721cd1b jnb 0x117210010 ->0
11721cd21 movsd xmm5, [rdx+0x38]
11721cd26 mulsd xmm5, [0x0ba64af8]
11721cd2f addsd xmm5, xmm7
11721cd33 addsd xmm5, [0x0ba20420]
11721cd3c movsd [rsp+0x18], xmm5
11721cd42 cmp dword [rdx-0x8], 0x0bac9188
11721cd49 jnz 0x117210010 ->0
11721cd4f cmp dword [0x0ba09c34], -0x0c
11721cd57 jnz 0x117210010 ->0
11721cd5d mov ebp, [0x0ba09c30]
11721cd64 cmp dword [rbp+0x1c], +0x1f
11721cd68 jnz 0x117210010 ->0
11721cd6e mov ebp, [rbp+0x14]
11721cd71 mov rsi, 0xfffffffb0b9b28c8
11721cd7b cmp rsi, [rbp+0x140]
11721cd82 jnz 0x117210010 ->0
11721cd88 cmp dword [rbp+0x13c], -0x09
11721cd8f jnz 0x117210010 ->0
11721cd95 cmp dword [rbp+0x138], 0x0b9c2500
11721cd9f jnz 0x117210010 ->0
11721cda5 movaps xmm7, xmm6
11721cda8 mulsd xmm7, [0x0ba64ac0]
11721cdb1 addsd xmm6, [0x0ba64ac0]
11721cdba cmp dword [rdx+0xc], 0xfffeffff
11721cdc1 jnb 0x117210010 ->0
11721cdc7 movaps xmm1, xmm7
11721cdca addsd xmm1, [rdx+0x8]
11721cdcf movsd [rsp+0x8], xmm1
11721cdd5 movaps xmm2, xmm6
11721cdd8 addsd xmm2, [0x0ba64ac0]
11721cde1 movsd [rsp+0x10], xmm2
11721cde7 mov esi, 0x18
11721cdec call 0x10b991370 ->lj_mem_newgco
11721cdf1 movzx ecx, byte [0x0b9b13e0]
11721cdf9 and ecx, +0x03
11721cdfc or ecx, 0x00100a00
11721ce02 mov [rax+0x4], ecx
11721ce05 mov edx, [0x0b9b14b4]
11721ce0c movsd xmm7, [rsp+0x28]
11721ce12 movsd xmm6, [rsp+0x20]
11721ce18 movsd xmm5, [rsp+0x18]
11721ce1e movsd xmm4, [0x0ba20430]
11721ce27 movsd xmm3, [0x0ba64a80]
11721ce30 movsd xmm2, [rsp+0x10]
11721ce36 movsd xmm1, [rsp+0x8]
11721ce3c movsd [rax+0x8], xmm1
11721ce41 movsd [rax+0x10], xmm2
11721ce46 movsd [rdx+0xa0], xmm3
11721ce4e movsd [rdx+0x98], xmm3
11721ce56 movsd [rdx+0x90], xmm4
11721ce5e movsd [rdx+0x88], xmm3
11721ce66 movsd [rdx+0x80], xmm4
11721ce6e mov dword [rdx+0x7c], 0xfffffff5
11721ce75 mov [rdx+0x78], eax
11721ce78 mov dword [rdx+0x74], 0xfffffff5
11721ce7f mov [rdx+0x70], eax
11721ce82 mov dword [rdx+0x6c], 0x0b9c6e60
11721ce89 mov dword [rdx+0x68], 0x0bac9148
11721ce90 movsd [rdx+0x60], xmm5
11721ce95 movsd [rdx+0x58], xmm7
11721ce9a movsd [rdx+0x40], xmm7
11721ce9f movsd [rdx+0x10], xmm6
11721cea4 mov dword [rdx-0x8], 0x0bac9188
11721ceab add edx, +0x70
11721ceae mov [0x0b9b14b4], edx
11721ceb5 add rsp, +0x20
11721ceb9 jmp 0x11721d4a7
---- TRACE 19 stop -> 13
---- TRACE 20 start 13/7 t.lua:82
0018 RET1 2 2
0028 TSETV 13 0 12
0000 . . FUNCC ; ffi.meta.__newindex
0029 FORL 8 => 0019
0019 MULVN 2 11 0 ; 0.1
0020 MULVN 12 7 1 ; 21
0021 ADDVV 12 12 11
0022 ADDVN 12 12 2 ; 430
0023 UGET 13 1 ; mandel
0024 KCDATA 14 3
0025 MULVV 14 14 2
0000 . . FUNCC ; ffi.meta.__mul
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . KPRI 1 2
0007 . . . KPRI 2 2
0008 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . MOV 1 0
0007 . . . KSHORT 2 0
0008 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 7 ; matrix.lua:455
0001 . . . ISF 2
0002 . . . JMP 4 => 0011
0003 . . . MULVV 4 0 1
0004 . . . MULVV 5 2 3
0005 . . . SUBVV 4 4 5
0006 . . . MULVV 5 0 3
0007 . . . MULVV 6 2 1
0008 . . . ADDVV 5 5 6
0009 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0026 ADDVV 14 1 14
0000 . . FUNCC ; ffi.meta.__add
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . KPRI 1 2
0007 . . . KPRI 2 2
0008 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . MOV 1 0
0007 . . . KSHORT 2 0
0008 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 6 ; matrix.lua:447
0001 . . . ISF 2
0002 . . . JMP 4 => 0007
0003 . . . ADDVV 4 0 1
0004 . . . ADDVV 5 2 3
0005 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0027 CALL 13 2 2
0000 . FUNCF 9 ; t.lua:73
0001 . MOV 1 0
0002 . KSHORT 2 80
0003 . KSHORT 3 1
0004 . MOV 4 2
0005 . KSHORT 5 1
0006 . JFORI 3 => 0018
---- TRACE 20 IR
0001 num PVAL #64
0002 num PVAL #65
0003 + cdt CNEW +16
0004 p64 ADD 0003 +8
0005 num XSTORE 0004 0001
0006 p64 ADD 0003 +16
0007 num XSTORE 0006 0002
0008 > nil GCSTEP
0009 > num SLOAD #3 T
0010 > p32 RETF proto: 0x0b9c6db0 [0x0b9c6e60]
0011 > cdt SLOAD #1 T
0012 > num SLOAD #13 T
0013 u16 FLOAD 0011 cdata.ctypeid
0014 > int EQ 0013 +4993
0015 i64 CONV 0012 i64.num
0016 i64 BSHL 0015 +3
0017 p64 ADD 0016 0011
0018 p64 ADD 0017 +8
0019 num XSTORE 0018 0009
0020 num SLOAD #9 I
0021 num ADD 0020 +1
0022 > num LE 0021 +10
0023 num MUL 0021 +0.1
0024 > num SLOAD #8 T
0025 num MUL 0024 +21
0026 num ADD 0025 0021
0027 num ADD 0026 +430
0028 fun SLOAD #0 R
0029 > fun EQ 0028 t.lua:84
0030 > p32 UREFC matrix.lua:23 #1
0031 > tab ULOAD 0030
0032 int FLOAD 0031 tab.hmask
0033 > int EQ 0032 +31
0034 p32 FLOAD 0031 tab.node
0035 > p32 HREFK 0034 "istype" @13
0036 > fun HLOAD 0035
0037 > fun EQ 0036 ffi.istype
0038 num MUL 0023 +0
0039 num ADD 0023 +0
0040 } cdt CNEW +16
0041 p64 ADD 0040 +8
0042 } num XSTORE 0041 0038
0043 p64 ADD 0040 +16
0044 } num XSTORE 0043 0039
0045 > num SLOAD #2 T
0046 num ADD 0045 0038
0047 num ADD 0039 +0
0048 > cdt CNEW +16
0049 p64 ADD 0048 +8
0050 num XSTORE 0049 0046
0051 p64 ADD 0048 +16
0052 num XSTORE 0051 0047
---- TRACE 20 mcode 721
11721c9c5 add rsp, -0x40
11721c9c9 mov dword [0x0b9b1410], 0x14
11721c9d4 movsd [rsp+0x38], xmm6
11721c9da movsd [rsp+0x40], xmm7
11721c9e0 mov edi, [0x0b9b14b0]
11721c9e7 mov esi, 0x18
11721c9ec call 0x10b991370 ->lj_mem_newgco
11721c9f1 movzx ecx, byte [0x0b9b13e0]
11721c9f9 and ecx, +0x03
11721c9fc or ecx, 0x00100a00
11721ca02 mov [rax+0x4], ecx
11721ca05 mov [rsp+0x30], eax
11721ca09 movsd xmm7, [rsp+0x40]
11721ca0f movsd xmm6, [rsp+0x38]
11721ca15 movsd [rax+0x8], xmm6
11721ca1a movsd [rax+0x10], xmm7
11721ca1f mov edi, [0x0b9b13d8]
11721ca26 cmp edi, [0x0b9b13dc]
11721ca2d jb 0x11721ca46
11721ca2f mov esi, 0x2
11721ca34 mov edi, 0x0b9b13b8
11721ca39 call 0x10b991060 ->lj_gc_step_jit
11721ca3e test eax, eax
11721ca40 jnz 0x117210010 ->0
11721ca46 mov edi, [0x0b9b14b0]
11721ca4d mov edx, [0x0b9b14b4]
11721ca54 mov eax, [rsp+0x30]
11721ca58 movsd xmm7, [0x0ba64ad0]
11721ca61 cmp dword [rdx+0x14], 0xfffeffff
11721ca68 jnb 0x117210010 ->0
11721ca6e movsd xmm6, [rdx+0x10]
11721ca73 cmp dword [rdx-0x4], 0x0b9c6e60
11721ca7a jnz 0x117210014 ->1
11721ca80 add edx, -0x70
11721ca83 mov [0x0b9b14b4], edx
11721ca8a cmp dword [rdx+0x4], -0x0b
11721ca8e jnz 0x117210018 ->2
11721ca94 mov ebx, [rdx]
11721ca96 cmp dword [rdx+0x64], 0xfffeffff
11721ca9d jnb 0x117210018 ->2
11721caa3 movzx ebp, word [rbx+0x6]
11721caa7 cmp ebp, 0x1381
11721caad jnz 0x117210018 ->2
11721cab3 cvttsd2si rbp, [rdx+0x60]
11721cab9 movsd [rbx+rbp*8+0x8], xmm6
11721cabf movsd xmm6, [rdx+0x40]
11721cac4 addsd xmm6, [0x0ba64a80]
11721cacd movsd [rsp+0x20], xmm6
11721cad3 ucomisd xmm7, xmm6
11721cad7 jb 0x11721001c ->3
11721cadd movaps xmm7, xmm6
11721cae0 mulsd xmm7, [0x0ba64ae0]
11721cae9 movsd [rsp+0x28], xmm7
11721caef cmp dword [rdx+0x3c], 0xfffeffff
11721caf6 jnb 0x117210020 ->4
11721cafc movsd xmm5, [rdx+0x38]
11721cb01 mulsd xmm5, [0x0ba64af8]
11721cb0a addsd xmm5, xmm6
11721cb0e addsd xmm5, [0x0ba20420]
11721cb17 movsd [rsp+0x18], xmm5
11721cb1d cmp dword [rdx-0x8], 0x0bac9188
11721cb24 jnz 0x117210020 ->4
11721cb2a cmp dword [0x0ba09c34], -0x0c
11721cb32 jnz 0x117210020 ->4
11721cb38 mov ebp, [0x0ba09c30]
11721cb3f cmp dword [rbp+0x1c], +0x1f
11721cb43 jnz 0x117210020 ->4
11721cb49 mov ebp, [rbp+0x14]
11721cb4c mov rsi, 0xfffffffb0b9b28c8
11721cb56 cmp rsi, [rbp+0x140]
11721cb5d jnz 0x117210020 ->4
11721cb63 cmp dword [rbp+0x13c], -0x09
11721cb6a jnz 0x117210020 ->4
11721cb70 cmp dword [rbp+0x138], 0x0b9c2500
11721cb7a jnz 0x117210020 ->4
11721cb80 movaps xmm1, xmm7
11721cb83 mulsd xmm1, [0x0ba64ac0]
11721cb8c movaps xmm2, xmm7
11721cb8f addsd xmm2, [0x0ba64ac0]
11721cb98 cmp dword [rdx+0xc], 0xfffeffff
11721cb9f jnb 0x117210020 ->4
11721cba5 addsd xmm1, [rdx+0x8]
11721cbaa movsd [rsp+0x8], xmm1
11721cbb0 addsd xmm2, [0x0ba64ac0]
11721cbb9 movsd [rsp+0x10], xmm2
11721cbbf mov esi, 0x18
11721cbc4 call 0x10b991370 ->lj_mem_newgco
11721cbc9 movzx ecx, byte [0x0b9b13e0]
11721cbd1 and ecx, +0x03
11721cbd4 or ecx, 0x00100a00
11721cbda mov [rax+0x4], ecx
11721cbdd mov edx, [0x0b9b14b4]
11721cbe4 movsd xmm7, [rsp+0x28]
11721cbea movsd xmm6, [rsp+0x20]
11721cbf0 movsd xmm5, [rsp+0x18]
11721cbf6 movsd xmm4, [0x0ba20430]
11721cbff movsd xmm3, [0x0ba64a80]
11721cc08 movsd xmm2, [rsp+0x10]
11721cc0e movsd xmm1, [rsp+0x8]
11721cc14 movsd [rax+0x8], xmm1
11721cc19 movsd [rax+0x10], xmm2
11721cc1e movsd [rdx+0xa0], xmm3
11721cc26 movsd [rdx+0x98], xmm3
11721cc2e movsd [rdx+0x90], xmm4
11721cc36 movsd [rdx+0x88], xmm3
11721cc3e movsd [rdx+0x80], xmm4
11721cc46 mov dword [rdx+0x7c], 0xfffffff5
11721cc4d mov [rdx+0x78], eax
11721cc50 mov dword [rdx+0x74], 0xfffffff5
11721cc57 mov [rdx+0x70], eax
11721cc5a mov dword [rdx+0x6c], 0x0b9c6e60
11721cc61 mov dword [rdx+0x68], 0x0bac9148
11721cc68 movsd [rdx+0x60], xmm5
11721cc6d movsd [rdx+0x58], xmm6
11721cc72 movsd [rdx+0x40], xmm6
11721cc77 movsd [rdx+0x10], xmm7
11721cc7c mov dword [rdx-0x8], 0x0bac9188
11721cc83 add edx, +0x70
11721cc86 mov [0x0b9b14b4], edx
11721cc8d add rsp, +0x40
11721cc91 jmp 0x11721d4a7
---- TRACE 20 stop -> 13
---- TRACE 21 start 18/3 t.lua:88
0030 FORL 4 => 0014
0014 MULVN 1 7 0 ; 0.1
0015 KSHORT 8 -10
0016 KSHORT 9 10
0017 KSHORT 10 1
0018 FORI 8 => 0030
0019 MULVN 2 11 0 ; 0.1
0020 MULVN 12 7 1 ; 21
0021 ADDVV 12 12 11
0022 ADDVN 12 12 2 ; 430
0023 UGET 13 1 ; mandel
0024 KCDATA 14 3
0025 MULVV 14 14 2
0000 . . FUNCC ; ffi.meta.__mul
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . KPRI 1 2
0007 . . . KPRI 2 2
0008 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . MOV 1 0
0007 . . . KSHORT 2 0
0008 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 7 ; matrix.lua:455
0001 . . . ISF 2
0002 . . . JMP 4 => 0011
0003 . . . MULVV 4 0 1
0004 . . . MULVV 5 2 3
0005 . . . SUBVV 4 4 5
0006 . . . MULVV 5 0 3
0007 . . . MULVV 6 2 1
0008 . . . ADDVV 5 5 6
0009 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0026 ADDVV 14 1 14
0000 . . FUNCC ; ffi.meta.__add
0000 . . FUNCF 19 ; matrix.lua:469
0001 . . UGET 2 0 ; get_typeid
0002 . . MOV 3 0
0003 . . CALL 2 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . KPRI 1 2
0007 . . . KPRI 2 2
0008 . . . RET 1 3
0004 . . UGET 4 0 ; get_typeid
0005 . . MOV 5 1
0006 . . CALL 4 3 2
0000 . . . JFUNCF 4 12 ; matrix.lua:23
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . UGET 1 1 ; ffi
0011 . . . TGETS 1 1 0 ; "istype"
0012 . . . UGET 2 2 ; gsl_complex
0013 . . . MOV 3 0
0014 . . . CALL 1 2 3
0000 . . . . FUNCC ; ffi.istype
0015 . . . ISF 1
0016 . . . JMP 2 => 0021
0017 . . . KPRI 1 1
0018 . . . KPRI 2 2
0019 . . . RET 1 3
0007 . . IST 5
0008 . . JMP 6 => 0015
0015 . . ISF 3
0016 . . JMP 6 => 0036
0017 . . ISF 5
0018 . . JMP 6 => 0036
0019 . . UGET 6 2 ; cartesian
0020 . . MOV 7 0
0021 . . CALL 6 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0008 . . . . KPRI 1 2
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0006 . . . MOV 1 0
0007 . . . KSHORT 2 0
0008 . . . RET 1 3
0022 . . UGET 8 2 ; cartesian
0023 . . MOV 9 1
0024 . . CALL 8 3 2
0000 . . . JFUNCF 3 11 ; matrix.lua:36
0001 . . . UGET 1 0 ; is_real
0002 . . . MOV 2 0
0003 . . . CALL 1 2 2
0000 . . . . JFUNCF 3 10 ; check.lua:15
0001 . . . . UGET 1 0 ; type
0002 . . . . MOV 2 0
0003 . . . . CALL 1 2 2
0000 . . . . . FUNCC ; type
0004 . . . . ISEQS 1 0 ; "number"
0005 . . . . JMP 1 => 0008
0006 . . . . KPRI 1 1
0007 . . . . JMP 2 => 0009
0009 . . . . RET1 1 2
0004 . . . ISF 1
0005 . . . JMP 2 => 0010
0010 . . . TGETB 1 0 0
0000 . . . . . FUNCC ; ffi.meta.__index
0011 . . . TGETB 2 0 1
0000 . . . . . FUNCC ; ffi.meta.__index
0012 . . . RET 1 3
0025 . . UGET 10 3 ; scalar_op
0026 . . MOV 11 6
0027 . . MOV 12 8
0028 . . MOV 13 7
0029 . . MOV 14 9
0030 . . CALL 10 3 5
0000 . . . FUNCF 6 ; matrix.lua:447
0001 . . . ISF 2
0002 . . . JMP 4 => 0007
0003 . . . ADDVV 4 0 1
0004 . . . ADDVV 5 2 3
0005 . . . RET 4 3
0031 . . UGET 12 4 ; gsl_complex
0032 . . MOV 13 10
0033 . . MOV 14 11
0034 . . CALLT 12 3
0000 . . FUNCC ; ffi.meta.__call
0027 CALL 13 2 2
0000 . FUNCF 9 ; t.lua:73
0001 . MOV 1 0
0002 . KSHORT 2 80
0003 . KSHORT 3 1
0004 . MOV 4 2
0005 . KSHORT 5 1
0006 . JFORI 3 => 0018
---- TRACE 21 IR
0001 num SLOAD #5 I
0002 num ADD 0001 +1
0003 > num LE 0002 +5
0004 num MUL 0002 +0.1
0005 num MUL 0002 +21
0006 num ADD 0005 -10
0007 num ADD 0006 +430
0008 fun SLOAD #0 R
0009 > fun EQ 0008 t.lua:84
0010 > p32 UREFC matrix.lua:23 #1
0011 > tab ULOAD 0010
0012 int FLOAD 0011 tab.hmask
0013 > int EQ 0012 +31
0014 p32 FLOAD 0011 tab.node
0015 > p32 HREFK 0014 "istype" @13
0016 > fun HLOAD 0015
0017 > fun EQ 0016 ffi.istype
0018 } cdt CNEW +16
0019 p64 ADD 0018 +8
0020 } num XSTORE 0019 -0
0021 p64 ADD 0018 +16
0022 } num XSTORE 0021 -1
0023 num ADD 0004 -0
0024 > cdt CNEW +16
0025 p64 ADD 0024 +8
0026 num XSTORE 0025 0023
0027 p64 ADD 0024 +16
0028 num XSTORE 0027 -1
---- TRACE 21 mcode 569
11721c789 mov eax, [0x0b9b14b0]
11721c790 mov eax, [rax+0x20]
11721c793 sub eax, [0x0b9b14b4]
11721c79a cmp eax, 0xb8
11721c7a0 jb 0x11721001c ->3
11721c7a6 mov dword [0x0b9b1410], 0x15
11721c7b1 mov edi, [0x0b9b13d8]
11721c7b8 cmp edi, [0x0b9b13dc]
11721c7bf jb 0x11721c7d8
11721c7c1 mov esi, 0x1
11721c7c6 mov edi, 0x0b9b13b8
11721c7cb call 0x10b991060 ->lj_gc_step_jit
11721c7d0 test eax, eax
11721c7d2 jnz 0x117210010 ->0
11721c7d8 mov edi, [0x0b9b14b0]
11721c7df mov edx, [0x0b9b14b4]
11721c7e6 movsd xmm7, [0x0ba64ad8]
11721c7ef movsd xmm5, [rdx+0x20]
11721c7f4 addsd xmm5, [0x0ba64a80]
11721c7fd movsd [rsp+0x10], xmm5
11721c803 ucomisd xmm7, xmm5
11721c807 jb 0x117210014 ->1
11721c80d movaps xmm7, xmm5
11721c810 mulsd xmm7, [0x0ba64ae0]
11721c819 movsd [rsp+0x18], xmm7
11721c81f movaps xmm1, xmm5
11721c822 mulsd xmm1, [0x0ba64af8]
11721c82b addsd xmm1, [0x0ba64ae8]
11721c834 addsd xmm1, [0x0ba20420]
11721c83d movsd [rsp+0x8], xmm1
11721c843 cmp dword [rdx-0x8], 0x0bac9188
11721c84a jnz 0x117210018 ->2
11721c850 cmp dword [0x0ba09c34], -0x0c
11721c858 jnz 0x117210018 ->2
11721c85e mov ebp, [0x0ba09c30]
11721c865 cmp dword [rbp+0x1c], +0x1f
11721c869 jnz 0x117210018 ->2
11721c86f mov ebp, [rbp+0x14]
11721c872 mov rsi, 0xfffffffb0b9b28c8
11721c87c cmp rsi, [rbp+0x140]
11721c883 jnz 0x117210018 ->2
11721c889 cmp dword [rbp+0x13c], -0x09
11721c890 jnz 0x117210018 ->2
11721c896 cmp dword [rbp+0x138], 0x0b9c2500
11721c8a0 jnz 0x117210018 ->2
11721c8a6 movaps xmm15, xmm7
11721c8aa addsd xmm15, [0x0ba20428]
11721c8b4 movsd [rsp+0x20], xmm15
11721c8bb mov esi, 0x18
11721c8c0 call 0x10b991370 ->lj_mem_newgco
11721c8c5 movzx ecx, byte [0x0b9b13e0]
11721c8cd and ecx, +0x03
11721c8d0 or ecx, 0x00100a00
11721c8d6 mov [rax+0x4], ecx
11721c8d9 mov edx, [0x0b9b14b4]
11721c8e0 movsd xmm15, [rsp+0x20]
11721c8e7 movsd xmm7, [rsp+0x18]
11721c8ed movsd xmm6, [0x0ba64af0]
11721c8f6 movsd xmm5, [rsp+0x10]
11721c8fc movsd xmm4, [0x0ba64ae8]
11721c905 movsd xmm3, [0x0ba64ad0]
11721c90e movsd xmm2, [0x0ba64a80]
11721c917 movsd xmm1, [rsp+0x8]
11721c91d movsd xmm0, [0x0ba20430]
11721c926 movsd [rax+0x8], xmm15
11721c92c movsd [rax+0x10], xmm6
11721c931 movsd [rdx+0xa0], xmm2
11721c939 movsd [rdx+0x98], xmm2
11721c941 movsd [rdx+0x90], xmm0
11721c949 movsd [rdx+0x88], xmm2
11721c951 movsd [rdx+0x80], xmm0
11721c959 mov dword [rdx+0x7c], 0xfffffff5
11721c960 mov [rdx+0x78], eax
11721c963 mov dword [rdx+0x74], 0xfffffff5
11721c96a mov [rdx+0x70], eax
11721c96d mov dword [rdx+0x6c], 0x0b9c6e60
11721c974 mov dword [rdx+0x68], 0x0bac9148
11721c97b movsd [rdx+0x60], xmm1
11721c980 movsd [rdx+0x58], xmm4
11721c985 movsd [rdx+0x50], xmm2
11721c98a movsd [rdx+0x48], xmm3
11721c98f movsd [rdx+0x40], xmm4
11721c994 movsd [rdx+0x38], xmm5
11721c999 movsd [rdx+0x20], xmm5
11721c99e movsd [rdx+0x10], xmm6
11721c9a3 movsd [rdx+0x8], xmm7
11721c9a8 mov dword [rdx-0x8], 0x0bac9188
11721c9af add edx, +0x70
11721c9b2 mov [0x0b9b14b4], edx
11721c9b9 add rsp, +0x40
11721c9bd jmp 0x11721d4a7
---- TRACE 21 stop -> 13
---- TRACE 22 start matrix.lua:455
0001 ISF 2
0002 JMP 4 => 0011
0003 MULVV 4 0 1
0004 MULVV 5 2 3
0005 SUBVV 4 4 5
0006 MULVV 5 0 3
0007 MULVV 6 2 1
0008 ADDVV 5 5 6
0009 RET 4 3
---- TRACE 22 IR
0001 > num SLOAD #3 T
0002 > num SLOAD #1 T
0003 > num SLOAD #2 T
0004 num MUL 0003 0002
0005 > num SLOAD #4 T
0006 num MUL 0005 0001
0007 num SUB 0004 0006
0008 num MUL 0005 0002
0009 num MUL 0003 0001
0010 num ADD 0009 0008
---- TRACE 22 mcode 140
11721c6f6 mov dword [0x0b9b1410], 0x16
11721c701 cmp dword [rdx+0x14], 0xfffeffff
11721c708 jnb 0x117210010 ->0
11721c70e movsd xmm6, [rdx+0x10]
11721c713 cmp dword [rdx+0x4], 0xfffeffff
11721c71a jnb 0x117210010 ->0
11721c720 movsd xmm5, [rdx]
11721c724 cmp dword [rdx+0xc], 0xfffeffff
11721c72b jnb 0x117210010 ->0
11721c731 movsd xmm4, [rdx+0x8]
11721c736 movaps xmm7, xmm4
11721c739 mulsd xmm7, xmm5
11721c73d cmp dword [rdx+0x1c], 0xfffeffff
11721c744 jnb 0x117210010 ->0
11721c74a movsd xmm3, [rdx+0x18]
11721c74f movaps xmm2, xmm3
11721c752 mulsd xmm2, xmm6
11721c756 subsd xmm7, xmm2
11721c75a mulsd xmm5, xmm3
11721c75e mulsd xmm6, xmm4
11721c762 addsd xmm6, xmm5
11721c766 movsd [rdx+0x28], xmm6
11721c76b movsd [rdx+0x20], xmm7
11721c770 xor eax, eax
11721c772 mov ebx, 0x0b9c44ec
11721c777 mov r14d, 0x0b9b1f98
11721c77d jmp 0x10b98feb1
---- TRACE 22 stop -> return
---- TRACE 23 start t.lua:101
0048 TGETV 22 16 21
0000 . . FUNCC ; ffi.meta.__index
0049 ADDVV 17 17 22
0050 FORL 18 => 0048
---- TRACE 23 IR
0001 int SLOAD #19 CI
0002 > cdt SLOAD #17 T
0003 u16 FLOAD 0002 cdata.ctypeid
0004 > int EQ 0003 +4993
0005 i64 BSHL 0001 +3
0006 p64 ADD 0005 0002
0007 p64 ADD 0006 +8
0008 num XLOAD 0007
0009 > num SLOAD #18 T
0010 + num ADD 0009 0008
0011 + int ADD 0001 +1
0012 > int LE 0011 +545
0013 ------ LOOP ------------
0014 i64 BSHL 0011 +3
0015 p64 ADD 0014 0002
0016 p64 ADD 0015 +8
0017 num XLOAD 0016
0018 + num ADD 0017 0010
0019 + int ADD 0011 +1
0020 > int LE 0019 +545
0021 int PHI 0011 0019
0022 num PHI 0010 0018
---- TRACE 23 mcode 121
11721c67d mov dword [0x0b9b1410], 0x17
11721c688 cvttsd2si ebp, [rdx+0x90]
11721c690 cmp dword [rdx+0x84], -0x0b
11721c697 jnz 0x117210010 ->0
11721c69d mov eax, [rdx+0x80]
11721c6a3 movzx ecx, word [rax+0x6]
11721c6a7 cmp ecx, 0x1381
11721c6ad jnz 0x117210010 ->0
11721c6b3 movsd xmm7, [rax+rbp*8+0x8]
11721c6b9 cmp dword [rdx+0x8c], 0xfffeffff
11721c6c3 jnb 0x117210010 ->0
11721c6c9 addsd xmm7, [rdx+0x88]
11721c6d1 add ebp, +0x01
11721c6d4 cmp ebp, 0x221
11721c6da jg 0x117210014 ->1
->LOOP:
11721c6e0 addsd xmm7, [rax+rbp*8+0x8]
11721c6e6 add ebp, +0x01
11721c6e9 cmp ebp, 0x221
11721c6ef jle 0x11721c6e0 ->LOOP
11721c6f1 jmp 0x11721001c ->3
---- TRACE 23 stop -> loop
---- TRACE 24 start matrix.lua:447
0001 ISF 2
0002 JMP 4 => 0007
0003 ADDVV 4 0 1
0004 ADDVV 5 2 3
0005 RET 4 3
---- TRACE 24 IR
0001 > num SLOAD #3 T
0002 > num SLOAD #1 T
0003 > num SLOAD #2 T
0004 num ADD 0003 0002
0005 > num SLOAD #4 T
0006 num ADD 0005 0001
---- TRACE 24 mcode 110
11721c608 mov dword [0x0b9b1410], 0x18
11721c613 cmp dword [rdx+0x14], 0xfffeffff
11721c61a jnb 0x117210010 ->0
11721c620 movsd xmm6, [rdx+0x10]
11721c625 cmp dword [rdx+0x4], 0xfffeffff
11721c62c jnb 0x117210010 ->0
11721c632 movsd xmm7, [rdx]
11721c636 cmp dword [rdx+0xc], 0xfffeffff
11721c63d jnb 0x117210010 ->0
11721c643 addsd xmm7, [rdx+0x8]
11721c648 cmp dword [rdx+0x1c], 0xfffeffff
11721c64f jnb 0x117210010 ->0
11721c655 addsd xmm6, [rdx+0x18]
11721c65a movsd [rdx+0x28], xmm6
11721c65f movsd [rdx+0x20], xmm7
11721c664 xor eax, eax
11721c666 mov ebx, 0x0b9c77a4
11721c66b mov r14d, 0x0b9b1f98
11721c671 jmp 0x10b98feb1
---- TRACE 24 stop -> return
lua,mandel,0.24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment