Explorar el Código

Fixed SYSTEM.PUT with proper address values

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7878 8c9fc860-2736-0410-a75d-ab315db34111
eth.negelef hace 7 años
padre
commit
7515771f49
Se han modificado 2 ficheros con 12 adiciones y 12 borrados
  1. 6 6
      source/Generic.Unix.AMD64.Machine.Mod
  2. 6 6
      source/Generic.Unix.I386.Machine.Mod

+ 6 - 6
source/Generic.Unix.AMD64.Machine.Mod

@@ -212,7 +212,7 @@ VAR
 			a := mBlock.beginBlockAdr;
 			S.PUT( a, a + AddrSize );	(* tag *)
 			S.PUT( a + AddrSize, s - AddrSize );  (* size *)
-			S.PUT( a + AddrSize + SizeSize, S.VAL( ADDRESS, 0 ) ); (* next *)
+			S.PUT( a + AddrSize + SizeSize, NIL ); (* next *)
 			
 			beginBlockAdr := mBlock.beginBlockAdr;
 			endBlockAdr := mBlock.endBlockAdr;
@@ -784,18 +784,18 @@ END GetTimer;
 
 		(* correct fields *)
 		S.PUT(memBlockAdr + HeapBlockOffset, memHeaderAdr + BlockHeaderSize);	(* set reference to header part of memory block correctly *)
-		S.PUT(memBlockAdr + TypeDescOffset, 0);										(* set type descriptor field of memory block to default value, memory blocks are not traced by GC *)
+		S.PUT(memBlockAdr + TypeDescOffset, NIL);										(* set type descriptor field of memory block to default value, memory blocks are not traced by GC *)
 		S.PUT(memHeaderAdr + BlockHeaderSize + DataAdrOffset, memBlockAdr);		(* set dataAdr of RecordBlockDesc to correct value *)
 		S.PUT(memHeaderAdr + BlockHeaderSize + 2*AddressSize , memBlkSize);
 
 		(* fill first heap block *)
-		S.PUT(beginBlockAdr,0);
-		S.PUT(beginBlockAdr+AddressSize,0);
-		S.PUT(beginBlockAdr+2*AddressSize,0);
+		S.PUT(beginBlockAdr,NIL);
+		S.PUT(beginBlockAdr+AddressSize,NIL);
+		S.PUT(beginBlockAdr+2*AddressSize,NIL);
 		S.PUT(beginBlockAdr+3*AddressSize,beginBlockAdr+7*AddressSize);
 		S.PUT(beginBlockAdr+4*AddressSize,endBlockAdr-beginBlockAdr);
 		S.PUT(beginBlockAdr+5*AddressSize,beginBlockAdr+2*AddressSize);
-		S.PUT(beginBlockAdr+6*AddressSize,0);
+		S.PUT(beginBlockAdr+6*AddressSize,NIL);
 
 		memoryBlock := memBlock;
 	END InitHeap;

+ 6 - 6
source/Generic.Unix.I386.Machine.Mod

@@ -212,7 +212,7 @@ VAR
 			a := mBlock.beginBlockAdr;
 			S.PUT( a, a + AddrSize );	(* tag *)
 			S.PUT( a + AddrSize, s - AddrSize );  (* size *)
-			S.PUT( a + AddrSize + SizeSize, S.VAL( ADDRESS, 0 ) ); (* next *)
+			S.PUT( a + AddrSize + SizeSize, NIL ); (* next *)
 			
 			beginBlockAdr := mBlock.beginBlockAdr;
 			endBlockAdr := mBlock.endBlockAdr;
@@ -779,18 +779,18 @@ END GetTimer;
 
 		(* correct fields *)
 		S.PUT(memBlockAdr + HeapBlockOffset, memHeaderAdr + BlockHeaderSize);	(* set reference to header part of memory block correctly *)
-		S.PUT(memBlockAdr + TypeDescOffset, 0);										(* set type descriptor field of memory block to default value, memory blocks are not traced by GC *)
+		S.PUT(memBlockAdr + TypeDescOffset, NIL);										(* set type descriptor field of memory block to default value, memory blocks are not traced by GC *)
 		S.PUT(memHeaderAdr + BlockHeaderSize + DataAdrOffset, memBlockAdr);		(* set dataAdr of RecordBlockDesc to correct value *)
 		S.PUT(memHeaderAdr + BlockHeaderSize + 2*AddressSize , memBlkSize);
 
 		(* fill first heap block *)
-		S.PUT(beginBlockAdr,0);
-		S.PUT(beginBlockAdr+AddressSize,0);
-		S.PUT(beginBlockAdr+2*AddressSize,0);
+		S.PUT(beginBlockAdr,NIL);
+		S.PUT(beginBlockAdr+AddressSize,NIL);
+		S.PUT(beginBlockAdr+2*AddressSize,NIL);
 		S.PUT(beginBlockAdr+3*AddressSize,beginBlockAdr+7*AddressSize);
 		S.PUT(beginBlockAdr+4*AddressSize,endBlockAdr-beginBlockAdr);
 		S.PUT(beginBlockAdr+5*AddressSize,beginBlockAdr+2*AddressSize);
-		S.PUT(beginBlockAdr+6*AddressSize,0);
+		S.PUT(beginBlockAdr+6*AddressSize,NIL);
 
 		memoryBlock := memBlock;
 	END InitHeap;