deepjit/deepjit_reg: bugfixes
[calu.git] / progs / deepjit_reg.s
index 0b5ef31e3a1365567ad1e6fe3f9c786829ea06e7..cbef6eab23ed6657b1e7996a72184832b83d74de 100644 (file)
@@ -31,6 +31,7 @@ instrtable:
 .fill 42, 0
 
 prog_eof:
+.ifill pop r7
 .ifill mov r0, r6
 .ifill ret+
 
@@ -65,7 +66,7 @@ prog_sub:
 prog_lessthan:
 .ifill pop r7
 .ifill cmp r7, r6;0xec3b0000
-.ifill movlt r6, r14
+.ifill movdlt r6, r14
 .ifill movge r6, r15
 
 prog_dup:
@@ -80,8 +81,8 @@ prog_jmp:
 
 prog_imm:
 .ifill push r6
-.fill 1, 0xed400000;ldil r6, CONST
-.fill 1, 0xed400002;ldih r6, CONST
+.fill 1, 0xed300000;ldil r6, CONST
+.fill 1, 0xed300002;ldih r6, CONST
 
 prog_pop:
 .ifill pop r6
@@ -225,6 +226,8 @@ vm_eof:
        stw r0, PDATA(r13)
        ldw r0, 4(r4)
        stw r0, PDATA(r13)
+       ldw r0, 8(r4)
+       stw r0, PDATA(r13)
 
        ;end of program
        ;now it is time to clear up the defer table
@@ -431,7 +434,7 @@ vm_imm:
        ldil r4, prog_imm@lo
        ldih r4, prog_imm@hi
 
-       ldw r0, 4(r4)
+       ldw r0, 0(r4)
        PROGINSTR
 
        ;save r6 to r7