浏览代码

Added placeholders for write Barriers (functional with --writeBarriers compiler option)

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7248 8c9fc860-2736-0410-a75d-ab315db34111
felixf 8 年之前
父节点
当前提交
24293a4ae3
共有 1 个文件被更改,包括 22 次插入0 次删除
  1. 22 0
      source/Heaps.Mod

+ 22 - 0
source/Heaps.Mod

@@ -1506,6 +1506,28 @@ BEGIN
 	RETURN total-free;
 END Used;
 
+VAR assigns*: LONGINT;
+
+PROCEDURE Assign*(VAR dest: ADDRESS; src: ADDRESS);
+BEGIN
+	(*TRACE(dest,src);*)
+	dest := src;
+	INC(assigns);
+END Assign;
+
+PROCEDURE AssignRecord*(dest: ADDRESS; tag: StaticTypeBlockU; src: ADDRESS);
+BEGIN
+	(*TRACE(dest,tag.recSize,LEN(tag.pointerOffsets),src);*)
+	SYSTEM.MOVE(src,dest,tag.recSize);
+	INC(assigns);
+END AssignRecord;
+
+PROCEDURE AssignArray*(dest: ADDRESS; tag: StaticTypeBlockU;  numElems: SIZE; src: ADDRESS);
+BEGIN
+	(*TRACE(dest,tag.recSize,LEN(tag.pointerOffsets),numElems,src);*)
+	SYSTEM.MOVE(src,dest,tag.recSize * numElems);
+	INC(assigns);	
+END AssignArray;
 
 (* NilGC - Default garbage collector. *)
 PROCEDURE NilGC;