Преглед изворни кода

Fix: never replace LAR/SAR by AAR LOI/STI if descriptor is not in ROM

ceriel пре 29 година
родитељ
комит
911b0a43d8
1 измењених фајлова са 3 додато и 2 уклоњено
  1. 3 2
      util/ego/cs/cs_profit.c

+ 3 - 2
util/ego/cs/cs_profit.c

@@ -184,9 +184,10 @@ STATIC bool okay_lines(avp, ocp)
 	 * as an AAR LOI/STI. This depends on the size of the array-elements.
 	 */
 	if (INSTR(ocp->oc_llast) == op_lar || INSTR(ocp->oc_llast) == op_sar) {
+		sz = array_elemsize(avp->av_othird);
+		if (sz == UNKNOWN_SIZE) return FALSE;
 		if (avp->av_instr == (byte) op_aar && time_space_ratio < 50) {
-			return (sz = array_elemsize(avp->av_othird)) <= AR_limit &&
-				sz != UNKNOWN_SIZE;
+			return sz <= AR_limit;
 		}
 	}
 	return TRUE;