Added tests for `or` subroutine from stdlib.
[vvhitespace] / stdlib_tests / 3003_rshift.pvvs
CommitLineData
8b4ce1c2
AT
1@ Shift by zero.
2SSSTN | PUSH +1
3SSSSN | PUSH 0
4NSTTSTTSSN | JSR > 101100 (rshift)
5NSTTSSTN | JSR > 1001 (print number from stack)
6
7@ Shift by one, positive sign extension.
8SSSTSN | PUSH +2
9SSSTN | PUSH +1
10NSTTSTTSSN | JSR > 101100 (rshift)
11NSTTSSTN | JSR > 1001 (print number from stack)
12
13@ Shift by four, positive sign extension.
14SSSTSSSSN | PUSH +16
15SSSTSSN | PUSH +4
16NSTTSTTSSN | JSR > 101100 (rshift)
17NSTTSSTN | JSR > 1001 (print number from stack)
18
19@ Shift by one, negative sign extension.
20@ -9223372036854775805 = 1000000000000000000000000000000000000000000000000000000000000011
21@ -4611686018427387903 = 1100000000000000000000000000000000000000000000000000000000000001
22SSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTSTN | PUSH -9223372036854775805
23SSSTN | PUSH +1
24NSTTSTTSSN | JSR > 101100 (rshift)
25NSTTSSTN | JSR > 1001 (print number from stack)
26
27@ Shift by four, negative sign extension
28@ -9223372036854775638 = 1000000000000000000000000000000000000000000000000000000010101010
29@ -576460752303423478 = 1111100000000000000000000000000000000000000000000000000000001010
30SSTSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTSTSTSTTSN | PUSH -9223372036854775638
31SSSTSSN | PUSH +4
32NSTTSTTSSN | JSR > 101100 (rshift)
33NSTTSSTN | JSR > 1001 (print number from stack)
34
35@ Test for special case: rshift(-1) = -1
36SSTTN | PUSH -1
37SSSTN | PUSH +1
38NSTTSTTSSN | JSR > 101100 (rshift)
39NSTTSSTN | JSR > 1001 (print number from stack)
40
41@ Shift a single 1 in the MSb into all ones
42SSTTSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSN | PUSH -(2^63)
43SSSTTTTTTN | PUSH +63
44NSTTSTTSSN | JSR > 101100 (rshift)
45NSTTSSTN | JSR > 1001 (print number from stack)
46
47@ All done.
48NNN | DIE
49
50#include <logic.pvvs>
51#include <stdio.pvvs>