Browse Source

Use proper machine timer

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7879 8c9fc860-2736-0410-a75d-ab315db34111
eth.negelef 7 years ago
parent
commit
d39a93f614
2 changed files with 6 additions and 21 deletions
  1. 3 12
      source/AMD64.FoxArrayBaseOptimized.Mod
  2. 3 9
      source/I386.FoxArrayBaseOptimized.Mod

+ 3 - 12
source/AMD64.FoxArrayBaseOptimized.Mod

@@ -52,7 +52,7 @@ TYPE
 		PROCEDURE & Init*;
 		PROCEDURE & Init*;
 		BEGIN
 		BEGIN
 			NEW( first );  first.size := 0;   (* sentinel *)
 			NEW( first );  first.size := 0;   (* sentinel *)
-			NEW( last );  last.size := MAX( LONGINT );   (* sentinel *)
+			NEW( last );  last.size := MAX( SIZE );   (* sentinel *)
 			first.next := last;  first.prev := NIL; last.prev := first;  last.next := NIL;
 			first.next := last;  first.prev := NIL; last.prev := first;  last.next := NIL;
 		END Init;
 		END Init;
 
 
@@ -4689,23 +4689,14 @@ VAR
 	END DispMX;
 	END DispMX;
 	*)
 	*)
 
 
-	PROCEDURE -GetTimer( ): HUGEINT;
-	CODE {SYSTEM.AMD64}
-		CPUID	;
-		XOR RAX, RAX
-		RDTSC	
-		SHL RDX, 32
-		OR RAX, RDX
-	END GetTimer;
-
 	PROCEDURE Tic( VAR t: HUGEINT );
 	PROCEDURE Tic( VAR t: HUGEINT );
 	BEGIN
 	BEGIN
-		t := GetTimer();
+		t := Machine.GetTimer();
 	END Tic;
 	END Tic;
 
 
 	PROCEDURE Toc( VAR t, addto: HUGEINT );
 	PROCEDURE Toc( VAR t, addto: HUGEINT );
 	BEGIN
 	BEGIN
-		INC( addto, GetTimer() - t );  t := GetTimer();
+		INC( addto, Machine.GetTimer() - t );  t := Machine.GetTimer();
 	END Toc;
 	END Toc;
 
 
 	PROCEDURE MultiplyX( A, B, C: ADDRESS;
 	PROCEDURE MultiplyX( A, B, C: ADDRESS;

+ 3 - 9
source/I386.FoxArrayBaseOptimized.Mod

@@ -52,7 +52,7 @@ TYPE
 		PROCEDURE & Init*;
 		PROCEDURE & Init*;
 		BEGIN
 		BEGIN
 			NEW( first );  first.size := 0;   (* sentinel *)
 			NEW( first );  first.size := 0;   (* sentinel *)
-			NEW( last );  last.size := MAX( LONGINT );   (* sentinel *)
+			NEW( last );  last.size := MAX( SIZE );   (* sentinel *)
 			first.next := last;  first.prev := NIL; last.prev := first;  last.next := NIL;
 			first.next := last;  first.prev := NIL; last.prev := first;  last.next := NIL;
 		END Init;
 		END Init;
 
 
@@ -4691,20 +4691,14 @@ VAR
 	END DispMX;
 	END DispMX;
 	*)
 	*)
 
 
-	PROCEDURE -GetTimer( ): HUGEINT;
-	CODE {SYSTEM.Pentium}
-		CPUID	;
-		RDTSC
-	END GetTimer;
-
 	PROCEDURE Tic( VAR t: HUGEINT );
 	PROCEDURE Tic( VAR t: HUGEINT );
 	BEGIN
 	BEGIN
-		t := GetTimer();
+		t := Machine.GetTimer();
 	END Tic;
 	END Tic;
 
 
 	PROCEDURE Toc( VAR t, addto: HUGEINT );
 	PROCEDURE Toc( VAR t, addto: HUGEINT );
 	BEGIN
 	BEGIN
-		INC( addto, GetTimer() - t );  t := GetTimer();
+		INC( addto, Machine.GetTimer() - t );  t := Machine.GetTimer();
 	END Toc;
 	END Toc;
 
 
 	PROCEDURE MultiplyX( A, B, C: ADDRESS;
 	PROCEDURE MultiplyX( A, B, C: ADDRESS;