[bench] vm: now working correct
authorMartin Perner <martin@perner.cc>
Sun, 19 Dec 2010 13:45:59 +0000 (14:45 +0100)
committerMartin Perner <martin@perner.cc>
Sun, 19 Dec 2010 13:45:59 +0000 (14:45 +0100)
1) forgot to increment stackpointer
2) used inputcounter and not inputaddress for load

8_benchs/src/vm.s

index 077a5f3a5b220dec41b7a48caa44740c8903a3e6..bcb2a03a7ab1c1c7e479ad9717ff95e39e05b2f4 100644 (file)
@@ -175,29 +175,31 @@ vm_dup:
 ;73
 vm_imm:
        ;load new high byte
-       ldb r6, 4(r2)
+       ldb r6, 4(r4)
        ;shift high byte
        lls r6, r6, 8
        ;load 2nd byte
-       ldb r7, 3(r2)
+       ldb r7, 3(r4)
        ;add to high byte
        add r6, r6, r7
        ;shift
        lls r6, r6, 8
        ;load
-       ldb r7, 2(r2)
+       ldb r7, 2(r4)
        ;add
        add r6, r6, r7
        ;shift
        lls r6, r6, 8
        ;load
-       ldb r7, 1(r2)
+       ldb r7, 1(r4)
        ;add
        add r6, r6, r7
        ;store result to stack
        stw r6, 0(r3)
        ;pc+4
        addi r2, r2, 4
+       ;increment sp
+       addi r3, r3, 4
        br+ vm_loop
 
 ;case J