Browse Source

Updated optimisations for cooperative version

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7250 8c9fc860-2736-0410-a75d-ab315db34111
eth.negelef 8 years ago
parent
commit
82f055800b
1 changed files with 3 additions and 3 deletions
  1. 3 3
      source/FoxIntermediateBackend.Mod

+ 3 - 3
source/FoxIntermediateBackend.Mod

@@ -8051,7 +8051,7 @@ TYPE
 					END;
 				ELSIF (type IS SyntaxTree.PointerType) & (type(SyntaxTree.PointerType).pointerBase.resolved IS SyntaxTree.ArrayType)  THEN
 					type := type(SyntaxTree.PointerType).pointerBase.resolved;
-					IF TRUE THEN  (* simpler version *)
+					IF ~backend.cooperative THEN  (* simpler version *)
 						(* 
 						 	push len0
 						 	push len1
@@ -8156,12 +8156,12 @@ TYPE
 							END;
 							size := size DIV ToMemoryUnits(system,system.SizeOf(type));
 							IF (size # 1) THEN
-								Emit(Mul(position,reg,reg,IntermediateCode.Immediate(addressType,size))); (*! optimize the multiplication of immediate operands *)
+								MulInt(reg,reg,IntermediateCode.Immediate(addressType,size));
 							END;
 							Emit(Push(position,reg));
 							size := ToMemoryUnits(system,system.SizeOf(type));
 							IF (size # 1) THEN
-								Emit(Mul(position,reg,reg,IntermediateCode.Immediate(addressType,size))); (*! optimize the multiplication of immediate operands *)
+								MulInt(reg,reg,IntermediateCode.Immediate(addressType,size));
 							END;
 							AddInt(reg, reg, IntermediateCode.Immediate(addressType,ToMemoryUnits(system,(BaseArrayTypeSize + openDim)* system.addressSize)));
 							(*Emit(Add(position,reg,reg,IntermediateCode.Immediate(addressType,ToMemoryUnits(system,(BaseArrayTypeSize + openDim)* system.addressSize))));*)