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