diff options
Diffstat (limited to 'tests/stack_machine_old_mul')
-rwxr-xr-x | tests/stack_machine_old_mul/instructions.s.tcl | 42 | ||||
l--------- | tests/stack_machine_old_mul/test.v | 1 | ||||
-rw-r--r-- | tests/stack_machine_old_mul/words_to_verify.mem | 19 |
3 files changed, 62 insertions, 0 deletions
diff --git a/tests/stack_machine_old_mul/instructions.s.tcl b/tests/stack_machine_old_mul/instructions.s.tcl new file mode 100755 index 0000000..8473aef --- /dev/null +++ b/tests/stack_machine_old_mul/instructions.s.tcl @@ -0,0 +1,42 @@ +#!/usr/bin/env tclsh + +source tclasm.tcl + +### store 4 values to memory; load 2 of them back, multiply them and store the +### result; load another 2, multiply them and store the result; +### this is similar to addition and substraction tests + +set_sp h7FFFC + +## store first 2 factors +const 483091365 +store@ h1EEE0 +const 74683203 +store@ h1EEE4 + +## store other 2 factors +const 8436 +store@ h1EEEC +const -14020 +store@ h1EEF0 + +## perform the first multiplication +load@ h1EEE0 +stack down +load@ h1EEE4 +# multiplying 483091365 by 74683203 should yield 36078810479842095 +# if we take lowest 32 bits of 36078810479842095 we get 2861683503 +mul +stack up +store@ h1EEE8 + +## perform the second multiplication +load@ h1EEEC +stack down +load@ h1EEF0 +# multiplying 8436 by -14020 should yield -118272720 (which fits in 32 bits) +mul +stack up +store@ h1EEF4 + +halt diff --git a/tests/stack_machine_old_mul/test.v b/tests/stack_machine_old_mul/test.v new file mode 120000 index 0000000..f0c3cf9 --- /dev/null +++ b/tests/stack_machine_old_mul/test.v @@ -0,0 +1 @@ +../stack_machine_old_store/test.v
\ No newline at end of file diff --git a/tests/stack_machine_old_mul/words_to_verify.mem b/tests/stack_machine_old_mul/words_to_verify.mem new file mode 100644 index 0000000..3095d6e --- /dev/null +++ b/tests/stack_machine_old_mul/words_to_verify.mem @@ -0,0 +1,19 @@ +// address value + 1EEE0 63A5 // 483091365 in hex is 1CCB63A5 + 1EEE2 1CCB + + 1EEE4 9343 // 74683203 in hex is 4739343 + 1EEE6 473 + + 1EEE8 D32F // 2861683503 in hex is AA91D32F + 1EEEA AA91 + + + 1EEEC 20F4 // 8436 in hex is 20F4 + 1EEEE 0 + + 1EEF0 C93C // -14020 in hex is FFFFC93C + 1EEF2 FFFF + + 1EEF4 4D30 // -118272720 in hex is F8F34D30 + 1EEF6 F8F3 |