Procházet zdrojové kódy

Fixed order of parameter passing

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7258 8c9fc860-2736-0410-a75d-ab315db34111
negelef před 8 roky
rodič
revize
2798f28860
1 změnil soubory, kde provedl 2 přidání a 2 odebrání
  1. 2 2
      source/FoxIntermediateBackend.Mod

+ 2 - 2
source/FoxIntermediateBackend.Mod

@@ -1574,11 +1574,11 @@ TYPE
 					IntermediateCode.InitMemory(op2, addressType,ap,ToMemoryUnits(system,system.addressSize*10));
 					BrgeL(nocall, sp, op2);
 					call.Resolve(section.pc);
+					Emit(Push(Basic.invalidPosition, reg));
+					ReleaseIntermediateOperand(reg);
 					parametersSize := ProcedureParametersSize(backend.system,procedure);
 					IntermediateCode.InitImmediate(op2,addressType, parametersSize);
 					Emit(Push(Basic.invalidPosition, op2));
-					Emit(Push(Basic.invalidPosition, reg));
-					ReleaseIntermediateOperand(reg);
 					CallThis(position, "Activities","ExpandStack",2);
 					Emit(Result(Basic.invalidPosition, sp));
 					nocall.Resolve(section.pc);