more optimisations test program ~54MIPS -> ~110MIPS
This commit is contained in:
+8
-76
@@ -1,80 +1,12 @@
|
||||
include fib: "./lib/maths/fib.dsa"
|
||||
include maths: "./lib/maths/core.dsa"
|
||||
include print: "./lib/io/print.dsa"
|
||||
// program to just test compute power
|
||||
|
||||
dw idt: 0xFFFF0000
|
||||
dw stack: 0x10000
|
||||
init:
|
||||
// setup interrupt handlers
|
||||
ldw idt, idr
|
||||
lwi handle_hard_fault, rg0
|
||||
stw rg0, idr, 4
|
||||
// set up a stack.
|
||||
ldw stack, bpr
|
||||
mov bpr, spr
|
||||
|
||||
dw string: "hello world"
|
||||
dw large_num: 0x333333 // 333,333 instructions
|
||||
start:
|
||||
ldw large_num, rg0
|
||||
|
||||
lwi 37, rg0
|
||||
lwi 12, rg1
|
||||
push rg0
|
||||
push rg1
|
||||
call maths::divmod
|
||||
pop rg0 // result
|
||||
pop rg1 // remainder
|
||||
|
||||
push rg1
|
||||
push rg0
|
||||
call print::print_hex_byte
|
||||
call print::print_whitespace
|
||||
pop zero
|
||||
call print::print_hex_byte
|
||||
call print::print_newline
|
||||
|
||||
lwi string, rg0
|
||||
//lwi 10, rg0
|
||||
pusha 4
|
||||
push rg0
|
||||
call print::print
|
||||
//call fib::fib_n
|
||||
pop zero
|
||||
call print::print_newline
|
||||
popa 4
|
||||
|
||||
pusha 4
|
||||
push rg0
|
||||
call print::print
|
||||
//call fib::fib_n
|
||||
pop zero
|
||||
call print::print_newline
|
||||
popa 4
|
||||
|
||||
pusha 4
|
||||
push rg0
|
||||
call print::print
|
||||
//call fib::fib_n
|
||||
pop zero
|
||||
call print::print_newline
|
||||
popa 4
|
||||
|
||||
pusha 4
|
||||
push rg0
|
||||
call print::print
|
||||
//call fib::fib_n
|
||||
pop zero
|
||||
call print::print_newline
|
||||
popa 4
|
||||
|
||||
// run approx 1m instructions
|
||||
loop:
|
||||
dec rg0
|
||||
cmp rg0, zero
|
||||
jgt loop
|
||||
hlt
|
||||
|
||||
// fault handler in case we fail DSA.
|
||||
dw hard_fault_err: "FATAL: Illegal Instruction or Memory Access!"
|
||||
handle_hard_fault:
|
||||
call print::clear
|
||||
call print::reset
|
||||
lwi hard_fault_err, rg0
|
||||
push rg0
|
||||
call print::print
|
||||
pop zero
|
||||
hlt
|
||||
Reference in New Issue
Block a user