deepjit_reg: applied mini opts
[calu.git] / progs / deepjit_reg.s
index e9e20fcc71ff7b2154699f48aefb708a9b19ae5e..0b5ef31e3a1365567ad1e6fe3f9c786829ea06e7 100644 (file)
@@ -59,7 +59,8 @@ prog_add:
 
 prog_sub:
 .ifill pop r7
-.ifill sub r6, r7, r6;0xe0bbb000
+.ifill sub r7, r7, r6;0xe0bbb000
+.ifill mov r6, r7
 
 prog_lessthan:
 .ifill pop r7
@@ -194,14 +195,13 @@ jit:
 
        ;backup defer table address
        mov r10, r9
-       ;decrement address to input by 1
-       subi r1, r1, 1
+       br+ vm_loop_1
 
 vm_default:    
 vm_loop:
        ;increment input address
        addi r1, r1, 1
-
+vm_loop_1:
        ;store address of next instruction in table
        stw r2, 0(r3)
        ;increment instr. table
@@ -262,7 +262,7 @@ vm_defer:
        addi r10, r10, 8
        cmp r10, r9
        reteq+
-       brnq- vm_defer
+       br+ vm_defer
 
 ;case *
 ;42
@@ -328,9 +328,11 @@ vm_sub:
        PROGINSTR
        ldw r0, 4(r4)
        PROGINSTR
+       ldw r0, 8(r4)
+       PROGINSTR
 
        ;increment address
-       addi r2, r2, 2
+       addi r2, r2, 3
 
        br+ vm_loop