浏览代码

Fixed missing conditional check

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

+ 1 - 1
source/FoxIntermediateBackend.Mod

@@ -738,7 +738,7 @@ TYPE
 					ir.Emit(Nop(position)); (* placeholder for fill *)
 					*)
 
-					IF procedureType.callingConvention # SyntaxTree.OberonCallingConvention THEN
+					IF (procedureType.callingConvention # SyntaxTree.OberonCallingConvention) & (~SysvABI(procedureType.callingConvention) OR (system.addressSize # 64)) THEN
 						registerParameters := backend.NumberParameterRegisters(procedureType.callingConvention);
 
 						(* assumption: registers are passed left to right and left parameters are in registers *)