[bench] vm.s asm's now
authorBernhard Urban <lewurm@gmail.com>
Fri, 17 Dec 2010 19:46:57 +0000 (20:46 +0100)
committerBernhard Urban <lewurm@gmail.com>
Fri, 17 Dec 2010 19:46:57 +0000 (20:46 +0100)
8_benchs/src/vm.s

index 1b30daf3622970bc3f9e72e81b00ee6095c8ded0..a16b5b947810436e8b85eb46d1c811209f308a35 100644 (file)
@@ -22,50 +22,6 @@ inputdata:
 
 stack:
 .fill 256, 0
-jumptable:
-;0
-.fill 0, vm_eof
-.fill 40, vm_default
-;42
-.fill 1, vm_mul
-;43
-.fill 1, vm_add
-;44
-.fill 1, vm_default
-;45
-.fill 1, vm_sub
-;46-47
-.fill 2, vm_default
-;48-57
-.fill 10, vm_consts
-;58-59
-.fill 2, vm_default
-;60
-.fill 1, vm_lessthan
-;61-67
-.fill 7, vm_default
-;68
-.fill 1, vm_dup
-;69-72
-.fill 4, vm_default
-;73
-.fill 1, vm_imm
-;74
-.fill 1, vm_jmp
-;75-79
-.fill 5, vm_default
-;80
-.fill 1, vm_pop
-;81-87
-.fill 7, vm_default
-;88
-.fill 1, vm_xch
-;88-125
-.fill 40, vm_default
-;126
-.fill 1, vm_not
-;127-255
-.fill 129, vm_default
 
 .text
 main:
@@ -195,7 +151,6 @@ vm_lessthan:
        ;store r8 to sp-1
        stw r8, 0-4(r3)
        br+ vm_loop
-       
 
 ;case D
 ;68
@@ -212,23 +167,23 @@ vm_dup:
 ;73
 vm_imm:
        ;load new high byte
-       ldb r6, 4(pc)
+       ldb r6, 4(r2)
        ;shift high byte
        lls r6, r6, 8
        ;load 2nd byte
-       ldb r7, 3(pc)
+       ldb r7, 3(r2)
        ;add to high byte
        add r6, r6, r7
        ;shift
        lls r6, r6, 8
        ;load
-       ldb r7, 2(pc)
+       ldb r7, 2(r2)
        ;add
        add r6, r6, r7
        ;shift
        lls r6, r6, 8
        ;load
-       ldb r7, 1(pc)
+       ldb r7, 1(r2)
        ;add
        add r6, r6, r7
        ;store result to stack
@@ -241,13 +196,13 @@ vm_imm:
 ;74
 vm_jmp:
        ;decrement sp
-       sub r3, r3, 4
+       subi r3, r3, 4
        ;load sp
        ldw r6, 0(r3)
        ;compare to 0
        cmpi r6,0
        ;increment pc if == 0
-       addieqD r2, r2, 4
+       addideq r2, r2, 4
        brnq+ vm_loop
        ;if != 0
        ;load pc+1 input
@@ -283,3 +238,49 @@ vm_not:
        not r6
        stw r6, 0-4(r3)
        br+ vm_loop
+
+.data
+jumptable:
+;0
+.fill 0, vm_eof
+.fill 40, vm_default
+;42
+.fill 1, vm_mul
+;43
+.fill 1, vm_add
+;44
+.fill 1, vm_default
+;45
+.fill 1, vm_sub
+;46-47
+.fill 2, vm_default
+;48-57
+.fill 10, vm_consts
+;58-59
+.fill 2, vm_default
+;60
+.fill 1, vm_lessthan
+;61-67
+.fill 7, vm_default
+;68
+.fill 1, vm_dup
+;69-72
+.fill 4, vm_default
+;73
+.fill 1, vm_imm
+;74
+.fill 1, vm_jmp
+;75-79
+.fill 5, vm_default
+;80
+.fill 1, vm_pop
+;81-87
+.fill 7, vm_default
+;88
+.fill 1, vm_xch
+;88-125
+.fill 40, vm_default
+;126
+.fill 1, vm_not
+;127-255
+.fill 129, vm_default