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