浏览代码

Fixed computation of negative displacements

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

+ 2 - 2
source/FoxARMBackend.Mod

@@ -1289,9 +1289,9 @@ TYPE
 					(* offset cannot be encoded directly _> it has to be provided by means of an adapted base register *)
 					tempRegister := RegisterFromValue(ABS(offset), emptyOperand);
 					IF offset < 0 THEN
-						Emit3(opSUB, tempRegister, tempRegister, baseAddressRegister)
+						Emit3(opSUB, tempRegister, baseAddressRegister, tempRegister)
 					ELSE
-						Emit3(opADD, tempRegister, tempRegister, baseAddressRegister)
+						Emit3(opADD, tempRegister, baseAddressRegister, tempRegister)
 					END;
 					ReleaseHint(baseAddressRegister.register);
 					baseAddressRegister := tempRegister;