Bläddra i källkod

Corrected part type for high part of double precision floating point complex registers

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@6765 8c9fc860-2736-0410-a75d-ab315db34111
felixf 9 år sedan
förälder
incheckning
d8297e4250
1 ändrade filer med 5 tillägg och 1 borttagningar
  1. 5 1
      source/FoxARMBackend.Mod

+ 5 - 1
source/FoxARMBackend.Mod

@@ -1353,7 +1353,11 @@ TYPE
 				IF part = Low THEN
 					partType := IntermediateCode.NewType(IntermediateCode.UnsignedInteger, 32) (* conceptually the low part is always unsigned *)
 				ELSE
-					partType := IntermediateCode.NewType(type.form, 32)
+					IF type.form = IntermediateCode.Float THEN
+						partType := IntermediateCode.NewType(IntermediateCode.SignedInteger, 32)
+					ELSE
+						partType := IntermediateCode.NewType(type.form, 32)
+					END;
 				END
 			ELSE
 				HALT(100)