浏览代码

fixed a bug introduced in rev. 6625, only in 64-bit mode the caller has to return parameter space

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6626 8c9fc860-2736-0410-a75d-ab315db34111
eth.guenter 9 年之前
父节点
当前提交
b9a279517f
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      source/FoxIntermediateBackend.Mod

+ 2 - 2
source/FoxIntermediateBackend.Mod

@@ -5725,9 +5725,9 @@ TYPE
 			END;
 			
 			(* === return parameter space === *)
-			IF procedureType.callingConvention = SyntaxTree.WinAPICallingConvention THEN
+			IF (procedureType.callingConvention = SyntaxTree.WinAPICallingConvention) & passByRegister THEN
 				parametersSize := ToMemoryUnits(system,parameters.Length()*addressType.sizeInBits);
-				IF passByRegister & (parametersSize < 32) THEN 
+				IF (parametersSize > 0) & (parametersSize < 32) THEN 
 					(* allocated space for all parameter registers *)
 					parametersSize := 32
 				END;