Skip to content

Instantly share code, notes, and snippets.

@yongkangchen
Last active January 6, 2016 01:57
Show Gist options
  • Select an option

  • Save yongkangchen/51be7b9b70fc73dc43d4 to your computer and use it in GitHub Desktop.

Select an option

Save yongkangchen/51be7b9b70fc73dc43d4 to your computer and use it in GitHub Desktop.

Revisions

  1. yongkangchen revised this gist Jan 6, 2016. 4 changed files with 1172 additions and 0 deletions.
    585 changes: 585 additions & 0 deletions bad_output_linux.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,585 @@
    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    test2/lua 0.05
    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    test3/lua 0.2
    File renamed without changes.
    587 changes: 587 additions & 0 deletions good_output_linux.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,587 @@
    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 FORL 1 => 0008
    ---- TRACE 1 IR
    0001 int SLOAD #2 CI
    0002 fun SLOAD #0 R
    0003 > p32 UREFC 0002 #0
    0004 > tab ULOAD 0003
    0005 tab FLOAD 0004 tab.meta
    0006 > tab NE 0005 [NULL]
    0007 int FLOAD 0005 tab.hmask
    0008 > int EQ 0007 +1
    0009 p32 FLOAD 0005 tab.node
    0010 > p32 HREFK 0009 "__call" @0
    0011 > fun HLOAD 0010
    0012 > fun EQ 0011 vector3.lua:6
    0013 } tab TNEW #4 #0
    0014 p32 FLOAD 0013 tab.array
    0015 p32 AREF 0014 +1
    0016 num CONV 0001 num.int
    0017 } num ASTORE 0015 0016
    0018 p32 AREF 0014 +2
    0019 } num ASTORE 0018 0016
    0020 p32 AREF 0014 +3
    0021 } num ASTORE 0020 0016
    0022 > p32 UREFC vector3.lua:6 #1
    0023 > tab ULOAD 0022
    0024 p32 FREF 0013 tab.meta
    0025 } tab FSTORE 0024 0023
    0026 + int ADD 0001 +1
    0027 > int LE 0026 +2000000
    0028 ------ LOOP ------------
    0029 } tab TNEW #4 #0
    0030 p32 FLOAD 0029 tab.array
    0031 p32 AREF 0030 +1
    0032 num CONV 0026 num.int
    0033 } num ASTORE 0031 0032
    0034 p32 AREF 0030 +2
    0035 } num ASTORE 0034 0032
    0036 p32 AREF 0030 +3
    0037 } num ASTORE 0036 0032
    0038 p32 FREF 0029 tab.meta
    0039 } tab FSTORE 0038 0023
    0040 + int ADD 0026 +1
    0041 > int LE 0040 +2000000
    0042 int PHI 0026 0040
    ---- TRACE 1 mcode 158
    0bcaff62 mov dword [0x40e2e4a0], 0x1
    0bcaff6d cvtsd2si ebp, [rdx+0x8]
    0bcaff72 mov esi, [rdx-0x8]
    0bcaff75 mov edi, [rsi+0x14]
    0bcaff78 cmp byte [rdi+0x6], 0x1
    0bcaff7c jnz 0x0bca0010 ->0
    0bcaff82 lea ebx, [rdi+0x8]
    0bcaff85 cmp dword [rbx+0x4], -0x0c
    0bcaff89 jnz 0x0bca0010 ->0
    0bcaff8f mov edx, [rbx]
    0bcaff91 mov ecx, [rdx+0x10]
    0bcaff94 test ecx, ecx
    0bcaff96 jz 0x0bca0010 ->0
    0bcaff9c cmp dword [rcx+0x1c], +0x01
    0bcaffa0 jnz 0x0bca0010 ->0
    0bcaffa6 mov eax, [rcx+0x14]
    0bcaffa9 mov rdi, 0xfffffffb40e30550
    0bcaffb3 cmp rdi, [rax+0x8]
    0bcaffb7 jnz 0x0bca0010 ->0
    0bcaffbd cmp dword [rax+0x4], -0x09
    0bcaffc1 jnz 0x0bca0010 ->0
    0bcaffc7 cmp dword [rax], 0x40e44d88
    0bcaffcd jnz 0x0bca0010 ->0
    0bcaffd3 cmp dword [0x40e3e084], -0x0c
    0bcaffdb jnz 0x0bca0014 ->1
    0bcaffe1 add ebp, +0x01
    0bcaffe4 cmp ebp, 0x001e8480
    0bcaffea jg 0x0bca0018 ->2
    ->LOOP:
    0bcafff0 add ebp, +0x01
    0bcafff3 cmp ebp, 0x001e8480
    0bcafff9 jle 0x0bcafff0 ->LOOP
    0bcafffb jmp 0x0bca0020 ->4
    ---- TRACE 1 stop -> loop

    test3/lua 0
    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    test2/lua 0.06
    File renamed without changes.
  2. yongkangchen created this gist Jan 6, 2016.
    585 changes: 585 additions & 0 deletions bad_output.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,585 @@
    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 1 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 1 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 1 abort vector3.lua:15 -- leaving loop in root trace

    test2/lua 0.064813
    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . IFUNCF 7 ; vector3.lua:6
    ---- TRACE 1 abort vector3.lua:6 -- blacklisted

    test3/lua 0.226795
    587 changes: 587 additions & 0 deletions good_output.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,587 @@
    ---- TRACE 1 start vector3.lua:23
    0008 UGET 5 0 ; Vector3
    0009 MOV 6 4
    0010 MOV 7 4
    0011 MOV 8 4
    0012 CALL 5 1 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 FORL 1 => 0008
    ---- TRACE 1 IR
    0001 int SLOAD #2 CI
    0002 fun SLOAD #0 R
    0003 > p32 UREFC 0002 #0
    0004 > tab ULOAD 0003
    0005 tab FLOAD 0004 tab.meta
    0006 > tab NE 0005 [NULL]
    0007 int FLOAD 0005 tab.hmask
    0008 > int EQ 0007 +1
    0009 p32 FLOAD 0005 tab.node
    0010 > p32 HREFK 0009 "__call" @0
    0011 > fun HLOAD 0010
    0012 > fun EQ 0011 vector3.lua:6
    0013 } tab TNEW #4 #0
    0014 p32 FLOAD 0013 tab.array
    0015 p32 AREF 0014 +1
    0016 num CONV 0001 num.int
    0017 } num ASTORE 0015 0016
    0018 p32 AREF 0014 +2
    0019 } num ASTORE 0018 0016
    0020 p32 AREF 0014 +3
    0021 } num ASTORE 0020 0016
    0022 > p32 UREFC vector3.lua:6 #1
    0023 > tab ULOAD 0022
    0024 p32 FREF 0013 tab.meta
    0025 } tab FSTORE 0024 0023
    0026 + int ADD 0001 +1
    0027 > int LE 0026 +2000000
    0028 ------ LOOP ------------
    0029 } tab TNEW #4 #0
    0030 p32 FLOAD 0029 tab.array
    0031 p32 AREF 0030 +1
    0032 num CONV 0026 num.int
    0033 } num ASTORE 0031 0032
    0034 p32 AREF 0030 +2
    0035 } num ASTORE 0034 0032
    0036 p32 AREF 0030 +3
    0037 } num ASTORE 0036 0032
    0038 p32 FREF 0029 tab.meta
    0039 } tab FSTORE 0038 0023
    0040 + int ADD 0026 +1
    0041 > int LE 0040 +2000000
    0042 int PHI 0026 0040
    ---- TRACE 1 mcode 158
    f125ff62 mov dword [0x000424a0], 0x1
    f125ff6d cvtsd2si ebp, [rdx+0x8]
    f125ff72 mov esi, [rdx-0x8]
    f125ff75 mov edi, [rsi+0x14]
    f125ff78 cmp byte [rdi+0x6], 0x1
    f125ff7c jnz 0xf1250010 ->0
    f125ff82 lea ebx, [rdi+0x8]
    f125ff85 cmp dword [rbx+0x4], -0x0c
    f125ff89 jnz 0xf1250010 ->0
    f125ff8f mov edx, [rbx]
    f125ff91 mov ecx, [rdx+0x10]
    f125ff94 test ecx, ecx
    f125ff96 jz 0xf1250010 ->0
    f125ff9c cmp dword [rcx+0x1c], +0x01
    f125ffa0 jnz 0xf1250010 ->0
    f125ffa6 mov eax, [rcx+0x14]
    f125ffa9 mov rdi, 0xfffffffb00044558
    f125ffb3 cmp rdi, [rax+0x8]
    f125ffb7 jnz 0xf1250010 ->0
    f125ffbd cmp dword [rax+0x4], -0x09
    f125ffc1 jnz 0xf1250010 ->0
    f125ffc7 cmp dword [rax], 0x00053710
    f125ffcd jnz 0xf1250010 ->0
    f125ffd3 cmp dword [0x0004422c], -0x0c
    f125ffdb jnz 0xf1250014 ->1
    f125ffe1 add ebp, +0x01
    f125ffe4 cmp ebp, 0x001e8480
    f125ffea jg 0xf1250018 ->2
    ->LOOP:
    f125fff0 add ebp, +0x01
    f125fff3 cmp ebp, 0x001e8480
    f125fff9 jle 0xf125fff0 ->LOOP
    f125fffb jmp 0xf1250020 ->4
    ---- TRACE 1 stop -> loop

    test3/lua 0.002439
    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:14
    0008 UGET 5 0 ; Vector3
    0009 KSHORT 6 0
    0010 KSHORT 7 1
    0011 KSHORT 8 0
    0012 CALL 5 2 4
    0000 . FUNCF 7 ; vector3.lua:6
    0001 . UGET 4 0 ; setmetatable
    0002 . TNEW 5 4
    0003 . ISTC 6 1
    0004 . JMP 6 => 0006
    0006 . TSETB 6 5 1
    0007 . ISTC 6 2
    0008 . JMP 6 => 0010
    0010 . TSETB 6 5 2
    0011 . ISTC 6 3
    0012 . JMP 6 => 0014
    0014 . TSETB 6 5 3
    0015 . UGET 6 1 ; I
    0016 . CALLT 4 3
    0000 . FUNCC ; setmetatable
    0013 GGET 6 2 ; "tostring"
    0014 MOV 7 5
    0015 CALL 6 1 2
    0000 . FUNCC ; tostring
    ---- TRACE 2 abort vector3.lua:16 -- NYI: unsupported variant of FastFunc tostring

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    ---- TRACE 2 start vector3.lua:6
    0001 UGET 4 0 ; setmetatable
    0002 TNEW 5 4
    0003 ISTC 6 1
    0004 JMP 6 => 0006
    0006 TSETB 6 5 1
    0007 ISTC 6 2
    0008 JMP 6 => 0010
    0010 TSETB 6 5 2
    0011 ISTC 6 3
    0012 JMP 6 => 0014
    0014 TSETB 6 5 3
    0015 UGET 6 1 ; I
    0016 CALLT 4 3
    0000 FUNCC ; setmetatable
    ---- TRACE 2 abort vector3.lua:15 -- leaving loop in root trace

    test2/lua 0.065717