diff --git a/baseline_testdrv_rvos.txt b/baseline_testdrv_rvos.txt index 49b7705..2c02b7e 100644 --- a/baseline_testdrv_rvos.txt +++ b/baseline_testdrv_rvos.txt @@ -1,10 +1,10 @@ -Fri 03/15/2024 13:13:35.37 +Tue 10/01/2024 10:12:10.79 ------------------------------------------------------------------------------- ROBOCOPY :: Robust File Copy for Windows ------------------------------------------------------------------------------- - Started : Friday, March 15, 2024 1:13:35 PM + Started : Tuesday, October 1, 2024 10:12:10 AM Source : \\lee-server\documents\scratch\debianrv\ Dest : C:\Users\david\OneDrive\rvos\debianrv\ @@ -14,23 +14,28 @@ Fri 03/15/2024 13:13:35.37 ------------------------------------------------------------------------------ - 39 \\lee-server\documents\scratch\debianrv\ + 44 \\lee-server\documents\scratch\debianrv\ *EXTRA File 6159 baseline_linux_test.txt *EXTRA File 6166 linux_test.txt *EXTRA File 592188 rvctable.txt *EXTRA File 601251 sorted.txt *EXTRA File 3536 tp.bas *EXTRA File 601251 words.txt + Newer 566968 tmuldiv.elf 46% 92% 100% 33 \\lee-server\documents\scratch\debianrv\rust\ ------------------------------------------------------------------------------ Total Copied Skipped Mismatch FAILED Extras Dirs : 2 0 2 0 0 0 - Files : 72 0 72 0 0 6 - Bytes : 132.68 m 0 132.68 m 0 0 1.72 m + Files : 77 1 76 0 0 6 + Bytes : 136.06 m 553.6 k 135.52 m 0 0 1.72 m Times : 0:00:00 0:00:00 0:00:00 0:00:00 - Ended : Friday, March 15, 2024 1:13:36 PM + + + Speed : 10,697,509 Bytes/sec. + Speed : 612.116 MegaBytes/min. + Ended : Tuesday, October 1, 2024 10:12:11 AM running C test app t using brk heap a: 0 4000000000000000 @@ -237,25 +242,33 @@ running C test app tins using mmap heap hello test instructions is complete running C test app terrno using brk heap +errno opening a file for read that doesn't exist: 2 (2 file not found expected) +errno doing write to stdin file descriptor: 13. (13 permission denied expected) +errno opening a file for read with invalid open flags: 22 (22 invalid argument expected) +success running C test app terrno using mmap heap +errno opening a file for read that doesn't exist: 2 (2 file not found expected) +errno doing write to stdin file descriptor: 13. (13 permission denied expected) +errno opening a file for read with invalid open flags: 22 (22 invalid argument expected) +success running C test app tp using brk heap -start time: 13:13:39.813 -7324 microseconds for 1 iterations -end time: 13:13:39.820 +start time: 10:12:12.992 +7548 microseconds for 1 iterations +end time: 10:12:12.999 final move count 6493 running C test app tp using mmap heap -start time: 13:13:39.832 -7211 microseconds for 1 iterations -end time: 13:13:39.840 +start time: 10:12:13.017 +7591 microseconds for 1 iterations +end time: 10:12:13.025 final move count 6493 running C test app ttt using brk heap starting... 64930 moves -21.036001 milliseconds +27.330002 milliseconds running C test app ttt using mmap heap starting... 64930 moves -21.268002 milliseconds +27.007002 milliseconds running C test app tf using brk heap hello from printf float from printf: 45.678000 @@ -299,15 +312,15 @@ success running C test app tm using mmap heap success running C test app ttime using brk heap -before TZ is set: tz: 'PacificDaylightTime+8', year: 2024, month 3, day 15, hour 12, min 13, sec 39 -east coast time: set tz 'TZ=EST+5' tz: 'EST+5', year: 2024, month 3, day 15, hour 15, min 13, sec 39 -west coast time: set tz 'TZ=PST+8' tz: 'PST+8', year: 2024, month 3, day 15, hour 12, min 13, sec 39 -TZ=: set tz 'TZ=' tz: '', year: 2024, month 3, day 15, hour 20, min 13, sec 39 +before TZ is set: tz: 'PacificDaylightTime+8', year: 2024, month 10, day 1, hour 9, min 12, sec 13 +east coast time: set tz 'TZ=EST+5' tz: 'EST+5', year: 2024, month 10, day 1, hour 12, min 12, sec 13 +west coast time: set tz 'TZ=PST+8' tz: 'PST+8', year: 2024, month 10, day 1, hour 9, min 12, sec 13 +TZ=: set tz 'TZ=' tz: '', year: 2024, month 10, day 1, hour 17, min 12, sec 13 running C test app ttime using mmap heap -before TZ is set: tz: 'PacificDaylightTime+8', year: 2024, month 3, day 15, hour 12, min 13, sec 40 -east coast time: set tz 'TZ=EST+5' tz: 'EST+5', year: 2024, month 3, day 15, hour 15, min 13, sec 40 -west coast time: set tz 'TZ=PST+8' tz: 'PST+8', year: 2024, month 3, day 15, hour 12, min 13, sec 40 -TZ=: set tz 'TZ=' tz: '', year: 2024, month 3, day 15, hour 20, min 13, sec 40 +before TZ is set: tz: 'PacificDaylightTime+8', year: 2024, month 10, day 1, hour 9, min 12, sec 13 +east coast time: set tz 'TZ=EST+5' tz: 'EST+5', year: 2024, month 10, day 1, hour 12, min 12, sec 13 +west coast time: set tz 'TZ=PST+8' tz: 'PST+8', year: 2024, month 10, day 1, hour 9, min 12, sec 13 +TZ=: set tz 'TZ=' tz: '', year: 2024, month 10, day 1, hour 17, min 12, sec 13 running C test app td using brk heap sprintf double 3.14159265358979311600 double from printf: 3.14159265358979311600 @@ -494,6 +507,492 @@ running C test app empty using brk heap yo running C test app empty using mmap heap yo +running C test app tmuldiv using brk heap +app start +i8 3 * 14: 42 +i8 3 % 14: 3 +i8 3 / 14: 0 +i8 17 * 14: -18 +i8 17 % 14: 3 +i8 17 / 14: 1 +i8 -3 * 14: -42 +i8 -3 % 14: -3 +i8 -3 / 14: 0 +i8 -17 * 14: 18 +i8 -17 % 14: -3 +i8 -17 / 14: -1 +i8 -3 * -14: 42 +i8 -3 % -14: -3 +i8 -3 / -14: 0 +i8 -17 * -14: -18 +i8 -17 % -14: -3 +i8 -17 / -14: 1 +i8 28 * 4: 112 +i8 28 % 4: 0 +i8 28 / 4: 7 +i8 28 * -4: -112 +i8 28 % -4: 0 +i8 28 / -4: -7 +i8 -28 * 4: -112 +i8 -28 % 4: 0 +i8 -28 / 4: -7 +i8 -28 * -4: 112 +i8 -28 % -4: 0 +i8 -28 / -4: 7 +ui8 3 * 14: 42 +ui8 3 % 14: 3 +ui8 3 / 14: 0 +ui8 17 * 14: 238 +ui8 17 % 14: 3 +ui8 17 / 14: 1 +ui8 253 * 14: 214 +ui8 253 % 14: 1 +ui8 253 / 14: 18 +ui8 239 * 14: 18 +ui8 239 % 14: 1 +ui8 239 / 14: 17 +ui8 253 * 242: 42 +ui8 253 % 242: 11 +ui8 253 / 242: 1 +ui8 239 * 242: 238 +ui8 239 % 242: 239 +ui8 239 / 242: 0 +ui8 28 * 4: 112 +ui8 28 % 4: 0 +ui8 28 / 4: 7 +ui8 28 * 252: 144 +ui8 28 % 252: 28 +ui8 28 / 252: 0 +ui8 228 * 4: 144 +ui8 228 % 4: 0 +ui8 228 / 4: 57 +ui8 228 * 252: 112 +ui8 228 % 252: 228 +ui8 228 / 252: 0 +i16 3 * 14: 42 +i16 3 % 14: 3 +i16 3 / 14: 0 +i16 3700 * 14: -13736 +i16 3700 % 14: 4 +i16 3700 / 14: 264 +i16 -3 * 14: -42 +i16 -3 % 14: -3 +i16 -3 / 14: 0 +i16 -3700 * 14: 13736 +i16 -3700 % 14: -4 +i16 -3700 / 14: -264 +i16 -3 * -14: 42 +i16 -3 % -14: -3 +i16 -3 / -14: 0 +i16 -3700 * -14: -13736 +i16 -3700 % -14: -4 +i16 -3700 / -14: 264 +i16 2800 * 4: 11200 +i16 2800 % 4: 0 +i16 2800 / 4: 700 +i16 2800 * -4: -11200 +i16 2800 % -4: 0 +i16 2800 / -4: -700 +i16 -2800 * 4: -11200 +i16 -2800 % 4: 0 +i16 -2800 / 4: -700 +i16 -2800 * -4: 11200 +i16 -2800 % -4: 0 +i16 -2800 / -4: 700 +ui16 3 * 14: 42 +ui16 3 % 14: 3 +ui16 3 / 14: 0 +ui16 3700 * 14: 51800 +ui16 3700 % 14: 4 +ui16 3700 / 14: 264 +ui16 65533 * 14: 65494 +ui16 65533 % 14: 13 +ui16 65533 / 14: 4680 +ui16 61836 * 14: 13736 +ui16 61836 % 14: 12 +ui16 61836 / 14: 4416 +ui16 65533 * 65522: 42 +ui16 65533 % 65522: 11 +ui16 65533 / 65522: 1 +ui16 61836 * 65522: 51800 +ui16 61836 % 65522: 61836 +ui16 61836 / 65522: 0 +ui16 2800 * 4: 11200 +ui16 2800 % 4: 0 +ui16 2800 / 4: 700 +ui16 2800 * 65532: 54336 +ui16 2800 % 65532: 2800 +ui16 2800 / 65532: 0 +ui16 62736 * 4: 54336 +ui16 62736 % 4: 0 +ui16 62736 / 4: 15684 +ui16 62736 * 65532: 11200 +ui16 62736 % 65532: 62736 +ui16 62736 / 65532: 0 +i32 3 * 14: 42 +i32 3 % 14: 3 +i32 3 / 14: 0 +i32 37000 * 14: 518000 +i32 37000 % 14: 12 +i32 37000 / 14: 2642 +i32 -3 * 14: -42 +i32 -3 % 14: -3 +i32 -3 / 14: 0 +i32 -37000 * 14: -518000 +i32 -37000 % 14: -12 +i32 -37000 / 14: -2642 +i32 -3 * -14: 42 +i32 -3 % -14: -3 +i32 -3 / -14: 0 +i32 -37000 * -14: 518000 +i32 -37000 % -14: -12 +i32 -37000 / -14: 2642 +i32 280000 * 4: 1120000 +i32 280000 % 4: 0 +i32 280000 / 4: 70000 +i32 280000 * -4: -1120000 +i32 280000 % -4: 0 +i32 280000 / -4: -70000 +i32 -280000 * 4: -1120000 +i32 -280000 % 4: 0 +i32 -280000 / 4: -70000 +i32 -280000 * -4: 1120000 +i32 -280000 % -4: 0 +i32 -280000 / -4: 70000 +ui32 3 * 14: 42 +ui32 3 % 14: 3 +ui32 3 / 14: 0 +ui32 37000 * 14: 518000 +ui32 37000 % 14: 12 +ui32 37000 / 14: 2642 +ui32 4294967293 * 14: 4294967254 +ui32 4294967293 % 14: 1 +ui32 4294967293 / 14: 306783378 +ui32 4294930296 * 14: 4294449296 +ui32 4294930296 % 14: 6 +ui32 4294930296 / 14: 306780735 +ui32 4294967293 * 4294967282: 42 +ui32 4294967293 % 4294967282: 11 +ui32 4294967293 / 4294967282: 1 +ui32 4294930296 * 4294967282: 518000 +ui32 4294930296 % 4294967282: 4294930296 +ui32 4294930296 / 4294967282: 0 +ui32 280000 * 4: 1120000 +ui32 280000 % 4: 0 +ui32 280000 / 4: 70000 +ui32 280000 * 4294967292: 4293847296 +ui32 280000 % 4294967292: 280000 +ui32 280000 / 4294967292: 0 +ui32 4294687296 * 4: 4293847296 +ui32 4294687296 % 4: 0 +ui32 4294687296 / 4: 1073671824 +ui32 4294687296 * 4294967292: 1120000 +ui32 4294687296 % 4294967292: 4294687296 +ui32 4294687296 / 4294967292: 0 +i64 3 * 14: 42 +i64 3 % 14: 3 +i64 3 / 14: 0 +i64 370000000 * 14: 5180000000 +i64 370000000 % 14: 6 +i64 370000000 / 14: 26428571 +i64 -3 * 14: -42 +i64 -3 % 14: -3 +i64 -3 / 14: 0 +i64 -370000000 * 14: -5180000000 +i64 -370000000 % 14: -6 +i64 -370000000 / 14: -26428571 +i64 -3 * -14: 42 +i64 -3 % -14: -3 +i64 -3 / -14: 0 +i64 -370000000 * -14: 5180000000 +i64 -370000000 % -14: -6 +i64 -370000000 / -14: 26428571 +i64 28000000000 * 4: 112000000000 +i64 28000000000 % 4: 0 +i64 28000000000 / 4: 7000000000 +i64 28000000000 * -4: -112000000000 +i64 28000000000 % -4: 0 +i64 28000000000 / -4: -7000000000 +i64 -28000000000 * 4: -112000000000 +i64 -28000000000 % 4: 0 +i64 -28000000000 / 4: -7000000000 +i64 -28000000000 * -4: 112000000000 +i64 -28000000000 % -4: 0 +i64 -28000000000 / -4: 7000000000 +ui64 3 * 14: 42 +ui64 3 % 14: 3 +ui64 3 / 14: 0 +ui64 370000000 * 14: 5180000000 +ui64 370000000 % 14: 6 +ui64 370000000 / 14: 26428571 +ui64 18446744073709551613 * 14: 18446744073709551574 +ui64 18446744073709551613 % 14: 13 +ui64 18446744073709551613 / 14: 1317624576693539400 +ui64 18446744073339551616 * 14: 18446744068529551616 +ui64 18446744073339551616 % 14: 10 +ui64 18446744073339551616 / 14: 1317624576667110829 +ui64 18446744073709551613 * 18446744073709551602: 42 +ui64 18446744073709551613 % 18446744073709551602: 11 +ui64 18446744073709551613 / 18446744073709551602: 1 +ui64 18446744073339551616 * 18446744073709551602: 5180000000 +ui64 18446744073339551616 % 18446744073709551602: 18446744073339551616 +ui64 18446744073339551616 / 18446744073709551602: 0 +ui64 28000000000 * 4: 112000000000 +ui64 28000000000 % 4: 0 +ui64 28000000000 / 4: 7000000000 +ui64 28000000000 * 18446744073709551612: 18446743961709551616 +ui64 28000000000 % 18446744073709551612: 28000000000 +ui64 28000000000 / 18446744073709551612: 0 +ui64 18446744045709551616 * 4: 18446743961709551616 +ui64 18446744045709551616 % 4: 0 +ui64 18446744045709551616 / 4: 4611686011427387904 +ui64 18446744045709551616 * 18446744073709551612: 112000000000 +ui64 18446744045709551616 % 18446744073709551612: 18446744045709551616 +ui64 18446744045709551616 / 18446744073709551612: 0 +tmuldiv ended with great success +running C test app tmuldiv using mmap heap +app start +i8 3 * 14: 42 +i8 3 % 14: 3 +i8 3 / 14: 0 +i8 17 * 14: -18 +i8 17 % 14: 3 +i8 17 / 14: 1 +i8 -3 * 14: -42 +i8 -3 % 14: -3 +i8 -3 / 14: 0 +i8 -17 * 14: 18 +i8 -17 % 14: -3 +i8 -17 / 14: -1 +i8 -3 * -14: 42 +i8 -3 % -14: -3 +i8 -3 / -14: 0 +i8 -17 * -14: -18 +i8 -17 % -14: -3 +i8 -17 / -14: 1 +i8 28 * 4: 112 +i8 28 % 4: 0 +i8 28 / 4: 7 +i8 28 * -4: -112 +i8 28 % -4: 0 +i8 28 / -4: -7 +i8 -28 * 4: -112 +i8 -28 % 4: 0 +i8 -28 / 4: -7 +i8 -28 * -4: 112 +i8 -28 % -4: 0 +i8 -28 / -4: 7 +ui8 3 * 14: 42 +ui8 3 % 14: 3 +ui8 3 / 14: 0 +ui8 17 * 14: 238 +ui8 17 % 14: 3 +ui8 17 / 14: 1 +ui8 253 * 14: 214 +ui8 253 % 14: 1 +ui8 253 / 14: 18 +ui8 239 * 14: 18 +ui8 239 % 14: 1 +ui8 239 / 14: 17 +ui8 253 * 242: 42 +ui8 253 % 242: 11 +ui8 253 / 242: 1 +ui8 239 * 242: 238 +ui8 239 % 242: 239 +ui8 239 / 242: 0 +ui8 28 * 4: 112 +ui8 28 % 4: 0 +ui8 28 / 4: 7 +ui8 28 * 252: 144 +ui8 28 % 252: 28 +ui8 28 / 252: 0 +ui8 228 * 4: 144 +ui8 228 % 4: 0 +ui8 228 / 4: 57 +ui8 228 * 252: 112 +ui8 228 % 252: 228 +ui8 228 / 252: 0 +i16 3 * 14: 42 +i16 3 % 14: 3 +i16 3 / 14: 0 +i16 3700 * 14: -13736 +i16 3700 % 14: 4 +i16 3700 / 14: 264 +i16 -3 * 14: -42 +i16 -3 % 14: -3 +i16 -3 / 14: 0 +i16 -3700 * 14: 13736 +i16 -3700 % 14: -4 +i16 -3700 / 14: -264 +i16 -3 * -14: 42 +i16 -3 % -14: -3 +i16 -3 / -14: 0 +i16 -3700 * -14: -13736 +i16 -3700 % -14: -4 +i16 -3700 / -14: 264 +i16 2800 * 4: 11200 +i16 2800 % 4: 0 +i16 2800 / 4: 700 +i16 2800 * -4: -11200 +i16 2800 % -4: 0 +i16 2800 / -4: -700 +i16 -2800 * 4: -11200 +i16 -2800 % 4: 0 +i16 -2800 / 4: -700 +i16 -2800 * -4: 11200 +i16 -2800 % -4: 0 +i16 -2800 / -4: 700 +ui16 3 * 14: 42 +ui16 3 % 14: 3 +ui16 3 / 14: 0 +ui16 3700 * 14: 51800 +ui16 3700 % 14: 4 +ui16 3700 / 14: 264 +ui16 65533 * 14: 65494 +ui16 65533 % 14: 13 +ui16 65533 / 14: 4680 +ui16 61836 * 14: 13736 +ui16 61836 % 14: 12 +ui16 61836 / 14: 4416 +ui16 65533 * 65522: 42 +ui16 65533 % 65522: 11 +ui16 65533 / 65522: 1 +ui16 61836 * 65522: 51800 +ui16 61836 % 65522: 61836 +ui16 61836 / 65522: 0 +ui16 2800 * 4: 11200 +ui16 2800 % 4: 0 +ui16 2800 / 4: 700 +ui16 2800 * 65532: 54336 +ui16 2800 % 65532: 2800 +ui16 2800 / 65532: 0 +ui16 62736 * 4: 54336 +ui16 62736 % 4: 0 +ui16 62736 / 4: 15684 +ui16 62736 * 65532: 11200 +ui16 62736 % 65532: 62736 +ui16 62736 / 65532: 0 +i32 3 * 14: 42 +i32 3 % 14: 3 +i32 3 / 14: 0 +i32 37000 * 14: 518000 +i32 37000 % 14: 12 +i32 37000 / 14: 2642 +i32 -3 * 14: -42 +i32 -3 % 14: -3 +i32 -3 / 14: 0 +i32 -37000 * 14: -518000 +i32 -37000 % 14: -12 +i32 -37000 / 14: -2642 +i32 -3 * -14: 42 +i32 -3 % -14: -3 +i32 -3 / -14: 0 +i32 -37000 * -14: 518000 +i32 -37000 % -14: -12 +i32 -37000 / -14: 2642 +i32 280000 * 4: 1120000 +i32 280000 % 4: 0 +i32 280000 / 4: 70000 +i32 280000 * -4: -1120000 +i32 280000 % -4: 0 +i32 280000 / -4: -70000 +i32 -280000 * 4: -1120000 +i32 -280000 % 4: 0 +i32 -280000 / 4: -70000 +i32 -280000 * -4: 1120000 +i32 -280000 % -4: 0 +i32 -280000 / -4: 70000 +ui32 3 * 14: 42 +ui32 3 % 14: 3 +ui32 3 / 14: 0 +ui32 37000 * 14: 518000 +ui32 37000 % 14: 12 +ui32 37000 / 14: 2642 +ui32 4294967293 * 14: 4294967254 +ui32 4294967293 % 14: 1 +ui32 4294967293 / 14: 306783378 +ui32 4294930296 * 14: 4294449296 +ui32 4294930296 % 14: 6 +ui32 4294930296 / 14: 306780735 +ui32 4294967293 * 4294967282: 42 +ui32 4294967293 % 4294967282: 11 +ui32 4294967293 / 4294967282: 1 +ui32 4294930296 * 4294967282: 518000 +ui32 4294930296 % 4294967282: 4294930296 +ui32 4294930296 / 4294967282: 0 +ui32 280000 * 4: 1120000 +ui32 280000 % 4: 0 +ui32 280000 / 4: 70000 +ui32 280000 * 4294967292: 4293847296 +ui32 280000 % 4294967292: 280000 +ui32 280000 / 4294967292: 0 +ui32 4294687296 * 4: 4293847296 +ui32 4294687296 % 4: 0 +ui32 4294687296 / 4: 1073671824 +ui32 4294687296 * 4294967292: 1120000 +ui32 4294687296 % 4294967292: 4294687296 +ui32 4294687296 / 4294967292: 0 +i64 3 * 14: 42 +i64 3 % 14: 3 +i64 3 / 14: 0 +i64 370000000 * 14: 5180000000 +i64 370000000 % 14: 6 +i64 370000000 / 14: 26428571 +i64 -3 * 14: -42 +i64 -3 % 14: -3 +i64 -3 / 14: 0 +i64 -370000000 * 14: -5180000000 +i64 -370000000 % 14: -6 +i64 -370000000 / 14: -26428571 +i64 -3 * -14: 42 +i64 -3 % -14: -3 +i64 -3 / -14: 0 +i64 -370000000 * -14: 5180000000 +i64 -370000000 % -14: -6 +i64 -370000000 / -14: 26428571 +i64 28000000000 * 4: 112000000000 +i64 28000000000 % 4: 0 +i64 28000000000 / 4: 7000000000 +i64 28000000000 * -4: -112000000000 +i64 28000000000 % -4: 0 +i64 28000000000 / -4: -7000000000 +i64 -28000000000 * 4: -112000000000 +i64 -28000000000 % 4: 0 +i64 -28000000000 / 4: -7000000000 +i64 -28000000000 * -4: 112000000000 +i64 -28000000000 % -4: 0 +i64 -28000000000 / -4: 7000000000 +ui64 3 * 14: 42 +ui64 3 % 14: 3 +ui64 3 / 14: 0 +ui64 370000000 * 14: 5180000000 +ui64 370000000 % 14: 6 +ui64 370000000 / 14: 26428571 +ui64 18446744073709551613 * 14: 18446744073709551574 +ui64 18446744073709551613 % 14: 13 +ui64 18446744073709551613 / 14: 1317624576693539400 +ui64 18446744073339551616 * 14: 18446744068529551616 +ui64 18446744073339551616 % 14: 10 +ui64 18446744073339551616 / 14: 1317624576667110829 +ui64 18446744073709551613 * 18446744073709551602: 42 +ui64 18446744073709551613 % 18446744073709551602: 11 +ui64 18446744073709551613 / 18446744073709551602: 1 +ui64 18446744073339551616 * 18446744073709551602: 5180000000 +ui64 18446744073339551616 % 18446744073709551602: 18446744073339551616 +ui64 18446744073339551616 / 18446744073709551602: 0 +ui64 28000000000 * 4: 112000000000 +ui64 28000000000 % 4: 0 +ui64 28000000000 / 4: 7000000000 +ui64 28000000000 * 18446744073709551612: 18446743961709551616 +ui64 28000000000 % 18446744073709551612: 28000000000 +ui64 28000000000 / 18446744073709551612: 0 +ui64 18446744045709551616 * 4: 18446743961709551616 +ui64 18446744045709551616 % 4: 0 +ui64 18446744045709551616 / 4: 4611686011427387904 +ui64 18446744045709551616 * 18446744073709551612: 112000000000 +ui64 18446744045709551616 % 18446744073709551612: 18446744045709551616 +ui64 18446744045709551616 / 18446744073709551612: 0 +tmuldiv ended with great success running rust test app ato using brk heap testing atomic operations exiting atomic testing with great success @@ -535,11 +1034,11 @@ r32 atan: 0.3081693 r64 atan: 0.3525136397354091 exiting real number testing with great success running rust test app ttt using brk heap -serial runtime: 3.551ms +serial runtime: 5.0905ms moves: 6493 iterations: 1 running rust test app ttt using mmap -serial runtime: 3.5421ms +serial runtime: 5.1682ms moves: 6493 iterations: 1 running rust test app e using brk heap @@ -626,7 +1125,7 @@ address space 10000 to 14a7000 s4: aa6d80, s5: 1, s6: 10a10, s7: 10420, s8: 0, s9: 0, s10: 0, s11: 0, t3: ffffffffffffffff, t4: 7ff68, t5: 7a9b4, t6: 10000, -Built for amd64 debug on 12 Mar 24 09:09:42 by msft C++ ver 1939 on windows +Built for amd64 debug on 23 Sep 2024 07:50:32 by msft C++ ver 1941 on windows running tcrash app mh rvos (amd64) fatal error: memory reference beyond address space: 2000000000000000 @@ -640,7 +1139,7 @@ address space 10000 to 14a7000 s4: aa6d80, s5: 1, s6: 10a10, s7: 10420, s8: 0, s9: 0, s10: 0, s11: 0, t3: ffffffffffffffff, t4: 7ff68, t5: 7a9b4, t6: 10000, -Built for amd64 debug on 12 Mar 24 09:09:42 by msft C++ ver 1939 on windows +Built for amd64 debug on 23 Sep 2024 07:50:32 by msft C++ ver 1941 on windows running tcrash app pcl rvos (amd64) fatal error: pc is lower than memory: 200 @@ -654,7 +1153,7 @@ address space 10000 to 14a7000 s4: aa6d80, s5: 1, s6: 10a10, s7: 10420, s8: 0, s9: 0, s10: 0, s11: 0, t3: ffffffffffffffff, t4: 7ff68, t5: 7a9b4, t6: 10000, -Built for amd64 debug on 12 Mar 24 09:09:42 by msft C++ ver 1939 on windows +Built for amd64 debug on 23 Sep 2024 07:50:32 by msft C++ ver 1941 on windows running tcrash app pch rvos (amd64) fatal error: pc is higher than it should be: 2000000000000000 @@ -668,7 +1167,7 @@ address space 10000 to 14a7000 s4: aa6d80, s5: 1, s6: 10a10, s7: 10420, s8: 0, s9: 0, s10: 0, s11: 0, t3: ffffffffffffffff, t4: 7ff68, t5: 7a9b4, t6: 10000, -Built for amd64 debug on 12 Mar 24 09:09:42 by msft C++ ver 1939 on windows +Built for amd64 debug on 23 Sep 2024 07:50:32 by msft C++ ver 1941 on windows running tcrash app spl rvos (amd64) fatal error: stack pointer is below stack memory: a86ce0 @@ -682,7 +1181,7 @@ address space 10000 to 14a7000 s4: 5ba60, s5: a873f0, s6: 7ddc0, s7: 10420, s8: 0, s9: 0, s10: 0, s11: 0, t3: 0, t4: 79, t5: 7a9b4, t6: a, -Built for amd64 debug on 12 Mar 24 09:09:42 by msft C++ ver 1939 on windows +Built for amd64 debug on 23 Sep 2024 07:50:32 by msft C++ ver 1941 on windows running tcrash app sph rvos (amd64) fatal error: stack pointer is above the top of its starting point: ba6b60 @@ -696,7 +1195,7 @@ address space 10000 to 14a7000 s4: aa6d80, s5: 1, s6: 10a10, s7: 10420, s8: 0, s9: 0, s10: 0, s11: 0, t3: ffffffffffffffff, t4: 7ff68, t5: 7a9b4, t6: 10000, -Built for amd64 debug on 12 Mar 24 09:09:42 by msft C++ ver 1939 on windows +Built for amd64 debug on 23 Sep 2024 07:50:32 by msft C++ ver 1941 on windows running tcrash app spm rvos (amd64) fatal error: the stack pointer isn't 16-byte aligned: aa6b62 @@ -710,7 +1209,7 @@ address space 10000 to 14a7000 s4: aa6d80, s5: 1, s6: 10a10, s7: 10420, s8: 0, s9: 0, s10: 0, s11: 0, t3: ffffffffffffffff, t4: 7ff68, t5: 7a9b4, t6: 10000, -Built for amd64 debug on 12 Mar 24 09:09:42 by msft C++ ver 1939 on windows +Built for amd64 debug on 23 Sep 2024 07:50:32 by msft C++ ver 1941 on windows running tmmap MAP_PRIVATE: 0x2 @@ -723,9 +1222,9 @@ is stdout tty: no is stdin tty: no is stdout tty: no parsing input file debianrv\tp.bas -start time: 12:13:43.050 -164 ms for 1 iterations -end time: 12:13:43.214 +start time: 09:12:17.264 +223 ms for 1 iterations +end time: 09:12:17.487 final move count 6493 exiting the basic interpreter sorting debianrv\words.txt ==> debianrv\sorted.txt @@ -775,35 +1274,35 @@ id leaved idea veld lade vied lead vied -start time: 12:13:43.892 -542084 microseconds for 1 iterations -end time: 12:13:44.435 +start time: 09:12:18.382 +712733 microseconds for 1 iterations +end time: 09:12:19.095 final move count 6493 -elapsed milliseconds: 555 +elapsed milliseconds: 730 RISC-V cycles: 1,948,051 -effective clock rate: 3,510 +effective clock rate: 2,668 app exit code: 0 running ntvao, ntvcm, and ntvdm 195D 0001$ -elapsed milliseconds: 122 +elapsed milliseconds: 155 6502 cycles: 1,660,247 clock rate: unbounded ms at 1.022727 Mhz: 1,623 == 0 days, 0 hours, 0 minutes, 1 seconds, 623 milliseconds moves: 6493 iterations: 1 -elapsed milliseconds: 117 +elapsed milliseconds: 153 Z80 cycles: 5,243,044 clock rate: unbounded -approx ms at 4Mhz: 1,310 == 0 days, 0 hours, 0 minutes, 1 seconds, 310 milliseconds -0.1 seconds +approx ms at 4Mhz: 1,310 +0.16 seconds moves: 6493 iterations: 1 -elapsed milliseconds: 157 -8086 cycles: 4,757,966 +elapsed milliseconds: 202 +8086 cycles: 4,523,850 clock rate: unbounded -approx ms at 4.77Mhz: 997 == 0 days, 0 hours, 0 minutes, 0 seconds, 997 milliseconds +approx ms at 4.77Mhz: 948 == 0 days, 0 hours, 0 minutes, 0 seconds, 948 milliseconds app exit code: 0 -Fri 03/15/2024 13:13:44.93 +Tue 10/01/2024 10:12:19.74 diff --git a/riscv.cxx b/riscv.cxx index e733f69..ccc8706 100644 --- a/riscv.cxx +++ b/riscv.cxx @@ -179,7 +179,7 @@ static uint32_t compose_I( uint32_t funct3, uint32_t rd, uint32_t rs1, uint32_t //if ( g_State & stateTraceInstructions ) // tracer.Trace( " composing I funct3 %02x, rd %x, rs1 %x, imm %d, opcode_type %x\n", funct3, rd, rs1, imm, opcode_type ); - return ( funct3 << 12 ) | ( rd << 7 ) | ( rs1 << 15 ) | ( imm << 20 ) | ( opcode_type << 2 ) | 0x3; + return ( funct3 << 12 ) | ( rd << 7 ) | ( rs1 << 15 ) | ( imm << 20 ) | ( opcode_type << 2 ) | 3; } //compose_I static uint32_t compose_R( uint32_t funct3, uint32_t funct7, uint32_t rd, uint32_t rs1, uint32_t rs2, uint32_t opcode_type ) @@ -187,7 +187,7 @@ static uint32_t compose_R( uint32_t funct3, uint32_t funct7, uint32_t rd, uint32 //if ( g_State & stateTraceInstructions ) // tracer.Trace( " composing R funct3 %02x, funct7 %02x, rd %x, rs1 %x, rs2 %x, opcode_type %x\n", funct3, funct7, rd, rs1, rs2, opcode_type ); - return ( funct3 << 12 ) | ( funct7 << 25 ) | ( rd << 7 ) | ( rs1 << 15 ) | ( rs2 << 20 ) | ( opcode_type << 2 ) | 0x3; + return ( funct3 << 12 ) | ( funct7 << 25 ) | ( rd << 7 ) | ( rs1 << 15 ) | ( rs2 << 20 ) | ( opcode_type << 2 ) | 3; } //compose_R static uint32_t compose_S( uint32_t funct3, uint32_t rs1, uint32_t rs2, uint32_t imm, uint32_t opcode_type ) @@ -197,12 +197,12 @@ static uint32_t compose_S( uint32_t funct3, uint32_t rs1, uint32_t rs2, uint32_t uint32_t i = ( ( imm << 7 ) & 0xf80 ) | ( ( imm << 20 ) & 0xfe000000 ); - return ( funct3 << 12 ) | ( rs1 << 15 ) | ( rs2 << 20 ) | i | ( opcode_type << 2 ) | 0x3; + return ( funct3 << 12 ) | ( rs1 << 15 ) | ( rs2 << 20 ) | i | ( opcode_type << 2 ) | 3; } //compose_S static uint32_t compose_U( uint32_t rd, uint32_t imm, uint32_t opcode_type ) { - return ( rd << 7 ) | ( imm << 12 ) | ( opcode_type << 2 ) | 0x3; + return ( rd << 7 ) | ( imm << 12 ) | ( opcode_type << 2 ) | 3; } //compose_U static uint32_t compose_J( uint32_t offset, uint32_t opcode_type ) @@ -216,7 +216,7 @@ static uint32_t compose_J( uint32_t offset, uint32_t opcode_type ) ( offset & 0x000ff000 ); //tracer.Trace( "j offset re-encoded as %x = %d\n", offset, offset ); - return offset | ( opcode_type << 2 ) | 0x3; + return offset | ( opcode_type << 2 ) | 3; } //compose_J static uint32_t compose_B( uint32_t funct3, uint32_t rs1, uint32_t rs2, uint32_t imm, uint32_t opcode_type ) @@ -226,13 +226,13 @@ static uint32_t compose_B( uint32_t funct3, uint32_t rs1, uint32_t rs2, uint32_t uint32_t offset = ( ( imm << 19 ) & 0x80000000 ) | ( ( imm << 20 ) & 0x7e000000 ) | ( ( imm << 7 ) & 0xf00 ) | ( ( imm >> 4 ) & 0x80 ); //tracer.Trace( "offset before %x and after composing: %x\n", imm, offset ); - return ( funct3 << 12 ) | ( rs1 << 15 ) | ( rs2 << 20 ) | offset | ( opcode_type << 2 ) | 0x3; + return ( funct3 << 12 ) | ( rs1 << 15 ) | ( rs2 << 20 ) | offset | ( opcode_type << 2 ) | 3; } //compose_B uint32_t RiscV::uncompress_rvc( uint16_t x ) { uint32_t op32 = 0; - uint16_t op2 = x & 0x3; + uint16_t op2 = x & 3; const uint32_t rprime_offset = 8; // add this to r' to get a final r uint16_t p_funct3 = ( x >> 13 ) & 0x7; // p_ for prime -- the compressed version uint16_t bit12 = ( x >> 12 ) & 1; @@ -260,8 +260,8 @@ uint32_t RiscV::uncompress_rvc( uint16_t x ) case 0: { uint32_t p_imm = ( ( x >> 7 ) & 0x38 ) | ( ( x << 1 ) & 0xc0 ); - uint32_t p_rs1 = ( ( x >> 7 ) & 0x7 ) + rprime_offset; - uint32_t p_rdrs2 = ( ( x >> 2 ) & 0x7 ) + rprime_offset; + uint32_t p_rs1 = ( ( x >> 7 ) & 7 ) + rprime_offset; + uint32_t p_rdrs2 = ( ( x >> 2 ) & 7 ) + rprime_offset; switch( p_funct3 ) { @@ -355,7 +355,7 @@ uint32_t RiscV::uncompress_rvc( uint16_t x ) } case 4: // many { - uint16_t funct11_10 = ( x >> 10 ) & 0x3; + uint16_t funct11_10 = ( x >> 10 ) & 3; p_rs1rd = ( ( x >> 7 ) & 0x7 ) + rprime_offset; uint32_t p_rs2 = ( ( x >> 2 ) & 0x7 ) + rprime_offset; @@ -381,7 +381,7 @@ uint32_t RiscV::uncompress_rvc( uint16_t x ) } case 3: { - uint16_t funct6_5 = ( x >> 5 ) & 0x3; + uint16_t funct6_5 = ( x >> 5 ) & 3; if ( 0 == bit12 ) { @@ -448,9 +448,7 @@ uint32_t RiscV::uncompress_rvc( uint16_t x ) case 0: // c.cslli { if ( 0 == bit12 && 0 == p_rs2 ) // slli64 - { tracer.Trace( "warning: ignoring slli64\n" ); - } else // slli { uint32_t amount = ( ( x >> 7 ) & 0x20 ) | p_rs2; @@ -485,18 +483,12 @@ uint32_t RiscV::uncompress_rvc( uint16_t x ) else // c.mv op32 = compose_I( 0, p_rs1rd, p_rs2, 0, 4 ); // add rd, rs, zero } - else - { - if ( 0 == p_rs1rd ) // c.ebreak; - op32 = 0x00100073; - else - { - if ( 0 == p_rs2 ) // c.jalr - op32 = compose_I( 0, 1, p_rs1rd, 0, 0x19 ); // always store ra in ra/x1 - else // c.add - op32 = compose_R( 0, 0, p_rs1rd, p_rs1rd, p_rs2, 0xc ); - } - } + else if ( 0 == p_rs1rd ) // c.ebreak; + op32 = 0x00100073; + else if ( 0 == p_rs2 ) // c.jalr + op32 = compose_I( 0, 1, p_rs1rd, 0, 0x19 ); // always store ra in ra/x1 + else // c.add + op32 = compose_R( 0, 0, p_rs1rd, p_rs1rd, p_rs2, 0xc ); break; } case 5: // c.fsdsp @@ -550,7 +542,7 @@ bool RiscV::generate_rvc_table( const char * path ) fprintf( fp, "\n " ); uint32_t op32 = 0; - if ( 0x3 != ( i & 0x3 ) ) + if ( 3 != ( i & 3 ) ) op32 = uncompress_rvc( (uint16_t) i ); fprintf( fp, ( 0 == op32 ) ? "%x, " : "0x%x, ", op32 ); @@ -584,8 +576,6 @@ void RiscV::trace_state() { uint8_t optype = riscv_types[ opcode_type ]; - //tracer.TraceBinaryData( getmem( 0x7e8d0 ), 16, 2 ); - static char acExtra[ 1024 ]; acExtra[ 0 ] = 0; snprintf( acExtra, _countof( acExtra ), "t0 %llx t1 %llx s0 %llx s1 %llx, s7 %llx", regs[ t0 ], regs[ t1 ], regs[ s0 ], regs[ s1 ], regs[ s7 ] ); @@ -1048,7 +1038,7 @@ void RiscV::trace_state() else if ( 0x10 == opcode_type ) { uint32_t rs3 = ( ( funct7 >> 2 ) & 0x1f ); - uint32_t fmt = ( funct7 & 0x3 ); + uint32_t fmt = ( funct7 & 3 ); if ( 0 == fmt ) { @@ -1066,7 +1056,7 @@ void RiscV::trace_state() else if ( 0x11 == opcode_type ) { uint32_t rs3 = ( ( funct7 >> 2 ) & 0x1f ); - uint32_t fmt = ( funct7 & 0x3 ); + uint32_t fmt = ( funct7 & 3 ); if ( 0 == fmt ) { @@ -1084,7 +1074,7 @@ void RiscV::trace_state() else if ( 0x12 == opcode_type ) { uint32_t rs3 = ( ( funct7 >> 2 ) & 0x1f ); - uint32_t fmt = ( funct7 & 0x3 ); + uint32_t fmt = ( funct7 & 3 ); // fnmsub == add rs3 @@ -1104,7 +1094,7 @@ void RiscV::trace_state() else if ( 0x13 == opcode_type ) { uint32_t rs3 = ( ( funct7 >> 2 ) & 0x1f ); - uint32_t fmt = ( funct7 & 0x3 ); + uint32_t fmt = ( funct7 & 3 ); // fnmsub == subtract rs3 @@ -2194,7 +2184,7 @@ uint64_t RiscV::run( uint64_t max_cycles ) decode_R(); uint32_t rs3 = ( ( funct7 >> 2 ) & 0x1f ); - uint32_t fmt = ( funct7 & 0x3 ); + uint32_t fmt = ( funct7 & 3 ); if ( 0 == fmt ) fregs[ rd ].f = ( fregs[ rs1 ].f * fregs[ rs2 ].f ) + fregs[ rs3 ].f; // fmadd.s frd, frs1, frs2, frs3 @@ -2210,7 +2200,7 @@ uint64_t RiscV::run( uint64_t max_cycles ) decode_R(); uint32_t rs3 = ( ( funct7 >> 2 ) & 0x1f ); - uint32_t fmt = ( funct7 & 0x3 ); + uint32_t fmt = ( funct7 & 3 ); if ( 0 == fmt ) fregs[ rd ].f = ( fregs[ rs1 ].f * fregs[ rs2 ].f ) - fregs[ rs3 ].f; // fmsub.s frd, frs1, frs2, frs3 @@ -2226,7 +2216,7 @@ uint64_t RiscV::run( uint64_t max_cycles ) decode_R(); uint32_t rs3 = ( ( funct7 >> 2 ) & 0x1f ); - uint32_t fmt = ( funct7 & 0x3 ); + uint32_t fmt = ( funct7 & 3 ); if ( 0 == fmt ) fregs[ rd ].f = ( -1.0f * ( fregs[ rs1 ].f * fregs[ rs2 ].f ) ) + fregs[ rs3 ].f; // fnmsub.s frd, frs1, frs2, frs3 @@ -2242,7 +2232,7 @@ uint64_t RiscV::run( uint64_t max_cycles ) decode_R(); uint32_t rs3 = ( ( funct7 >> 2 ) & 0x1f ); - uint32_t fmt = ( funct7 & 0x3 ); + uint32_t fmt = ( funct7 & 3 ); if ( 0 == fmt ) fregs[ rd ].f = ( -1.0f * ( fregs[ rs1 ].f * fregs[ rs2 ].f ) ) - fregs[ rs3 ].f; // fnmadd.s frd, frs1, frs2, frs3 diff --git a/riscv.hxx b/riscv.hxx index 1fbaccf..6e11b76 100644 --- a/riscv.hxx +++ b/riscv.hxx @@ -71,7 +71,7 @@ struct RiscV base = base_address; // lowest valid address in the app's address space, maps to offset 0 in mem mem = memory.data(); // save the pointer, but don't take ownership mem_size = memory.size(); - beyond = mem + memory.size(); // addresses at beyond and later are illegal + beyond = mem + memory.size(); // addresses beyond and later are illegal membase = mem - base; // real pointer to the start of the app's memory (prior to offset) rvc = compressed_rvc; } //RiscV @@ -136,9 +136,7 @@ struct RiscV uint64_t host_to_vm_address( void * p ) { - uint8_t * p8 = (uint8_t *) p; - - return (uint64_t) ( p8 - mem + base ); + return (uint64_t) ( (uint8_t *) p - mem + base ); } //host_to_vm_address uint8_t * getmem( uint64_t offset ) diff --git a/rvos.cxx b/rvos.cxx index 1511887..b4af906 100644 --- a/rvos.cxx +++ b/rvos.cxx @@ -2591,7 +2591,7 @@ bool load_image( const char * pimage, const char * app_args ) if ( to_erase > 0 ) g_symbols.erase( g_symbols.begin(), g_symbols.begin() + to_erase ); - // set the sized of each symbol if it's not already set + // set the size of each symbol if it's not already set for ( size_t se = 0; se < g_symbols.size(); se++ ) {