浏览代码

Patched forgotten push of lr

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

+ 3 - 0
source/FoxIntermediateBackend.Mod

@@ -2639,6 +2639,9 @@ TYPE
 			Basic.SuffixSegmentedName (name, Basic.MakeString ("@Reset"));
 			context := SwitchContext(IntermediateCode.NewSection(module.allSections, Sections.CodeSection, name,NIL,TRUE));
 			IF dump # NIL THEN dump := section.comments END;
+			IF backend.hasLinkRegister THEN
+				Emit(Push(-1, lr));
+			END;
 			Emit(Push(position,fp));
 			Emit(Mov(position,fp, IntermediateCode.Memory(addressType,sp,ToMemoryUnits(system,addressType.sizeInBits * 2))));
 			ResetVariables(scope);