Fixed bug that never occurred, but was discovered by reading the code

This commit is contained in:
ceriel 1991-03-15 11:21:46 +00:00
parent f4691c73c4
commit 9155b8a68a

View file

@ -166,7 +166,7 @@ suitable_move(tp)
register t_type *tp; register t_type *tp;
{ {
/* Find out how to load or store the value indicated by "ds". /* Find out how to load or store the value indicated by "ds".
There are three ways: There are four ways:
- suitable for BLM/LOI/STI - suitable for BLM/LOI/STI
- suitable for LOI/STI - suitable for LOI/STI
- suitable for LOS/STS/BLS - suitable for LOS/STS/BLS
@ -214,10 +214,7 @@ CodeValue(ds, tp)
break; break;
case USE_LOAD_STORE: case USE_LOAD_STORE:
sz = WA(tp->tp_size); sz = WA(tp->tp_size);
#ifndef SQUEEZE if (ds->dsg_kind != DSG_PFIXED) {
if (ds->dsg_kind != DSG_PFIXED)
#endif
{
arith tmp = NewPtr(); arith tmp = NewPtr();
CodeAddress(ds); CodeAddress(ds);
@ -227,13 +224,11 @@ CodeValue(ds, tp)
LOL(tmp, pointer_size); LOL(tmp, pointer_size);
FreePtr(tmp); FreePtr(tmp);
} }
#ifndef SQUEEZE
else { else {
CodeConst(-sz, (int) pointer_size); CodeConst(-sz, (int) pointer_size);
C_ass(pointer_size); C_ass(pointer_size);
CodeAddress(ds);
} }
#endif
CodeAddress(ds);
CodeConst(tp->tp_size, (int) pointer_size); CodeConst(tp->tp_size, (int) pointer_size);
CAL("load", (int)pointer_size + (int)pointer_size); CAL("load", (int)pointer_size + (int)pointer_size);
break; break;
@ -587,8 +582,7 @@ CodeVarDesig(df, ds)
C_lxa((arith) difflevel); C_lxa((arith) difflevel);
if ((df->df_flags & D_VARPAR) || if ((df->df_flags & D_VARPAR) ||
IsConformantArray(df->df_type)) { IsConformantArray(df->df_type)) {
/* var parameter, big parameter, /* var parameter or conformant array.
or conformant array.
The address is passed. The address is passed.
*/ */
C_adp(df->var_off); C_adp(df->var_off);