Browse Source

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 years ago
parent
commit
5c03854ad7
1 changed files with 1 additions and 1 deletions
  1. 1 1
      source/FoxIntermediateBackend.Mod

+ 1 - 1
source/FoxIntermediateBackend.Mod

@@ -738,7 +738,7 @@ TYPE
 					ir.Emit(Nop(position)); (* placeholder for fill *)
 					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);
 						registerParameters := backend.NumberParameterRegisters(procedureType.callingConvention);
 
 
 						(* assumption: registers are passed left to right and left parameters are in registers *)
 						(* assumption: registers are passed left to right and left parameters are in registers *)