[PATCH] Bulletproof ADD
Opcode String Coercion Applied.
user@elli:~/GD$
user@elli:~/GD$ node tests/core_test.js
=== Compiling Core Test ===
=== Disassembly ===
[0] MOV R4, R1, 0
[1] SET_INT R5, R0, 0
[2] SET_INT R6, R0, 0
[3] SET_INT R7, R0, 0
[4] SET_INT R8, R0, 100
[5] ADD R8, R4, 0
[6] MOV R5, R8, 0
[7] LOAD_CONST R8, R0, 0
[8] ADD R8, R5, 0
[9] MOV R6, R8, 0
[10] MOV R1, R6, 0
[11] SYSCALL R0, R0, 1
[12] SET_INT R1, R0, 3
[13] SYSCALL R8, R0, 10
[14] SET_INT R9, R0, 10
[15] MOV R1, R8, 0
[16] SET_INT R2, R0, 0
[17] MOV R3, R9, 0
[18] SYSCALL R0, R0, 11
[19] SET_INT R9, R0, 20
[20] MOV R1, R8, 0
[21] SET_INT R2, R0, 1
[22] MOV R3, R9, 0
[23] SYSCALL R0, R0, 11
[24] SET_INT R9, R0, 30
[25] MOV R1, R8, 0
[26] SET_INT R2, R0, 2
[27] MOV R3, R9, 0
[28] SYSCALL R0, R0, 11
[29] MOV R7, R8, 0
[30] SET_INT R8, R0, 999
[31] SET_INT R9, R0, 1
[32] MOV R1, R7, 0
[33] MOV R2, R9, 0
[34] MOV R3, R8, 0
[35] SYSCALL R0, R0, 11
[36] LOAD_CONST R8, R0, 1
[37] SET_INT R9, R0, 1
[38] MOV R1, R7, 0
[39] MOV R2, R9, 0
[40] SYSCALL R10, R0, 12
[41] ADD R8, R10, 0
[42] MOV R1, R8, 0
[43] SYSCALL R0, R0, 1
[44] SYSCALL R0, R0, 99
[45] RETURN R0, R0, 0
[46] SET_INT R4, R0, 50
[47] MOV R1, R4, 0
[48] CALL_ABS R0, R0, 0
[49] RETURN R0, R0, 0
=== Executing Core Test ===
[LPC write] String: Result: 150
[LPC write] String: Array Index 1: 999
[VM DEBUG] Register Dump:
R4: 401 (Tag: 1, Raw: 50)
R5: 1201 (Tag: 1, Raw: 150)
R6: 10 (Tag: 2, Raw: 1)
R7: 3 (Tag: 3, Raw: 0)
R8: 26 (Tag: 2, Raw: 3)
R9: 9 (Tag: 1, Raw: 1)
R10: 7993 (Tag: 1, Raw: 999)
R11: 0 (Tag: 0, Raw: 0)
R12: 0 (Tag: 0, Raw: 0)
R13: 0 (Tag: 0, Raw: 0)
R14: 0 (Tag: 0, Raw: 0)
R15: 0 (Tag: 0, Raw: 0)
=== Memory Diagnostic ===
Active Handles (Before Stack Pool GC): 1
user@elli:~/GD$