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;
{
/* 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 LOI/STI
- suitable for LOS/STS/BLS
@ -214,10 +214,7 @@ CodeValue(ds, tp)
break;
case USE_LOAD_STORE:
sz = WA(tp->tp_size);
#ifndef SQUEEZE
if (ds->dsg_kind != DSG_PFIXED)
#endif
{
if (ds->dsg_kind != DSG_PFIXED) {
arith tmp = NewPtr();
CodeAddress(ds);
@ -227,13 +224,11 @@ CodeValue(ds, tp)
LOL(tmp, pointer_size);
FreePtr(tmp);
}
#ifndef SQUEEZE
else {
CodeConst(-sz, (int) pointer_size);
C_ass(pointer_size);
CodeAddress(ds);
}
#endif
CodeAddress(ds);
CodeConst(tp->tp_size, (int) pointer_size);
CAL("load", (int)pointer_size + (int)pointer_size);
break;
@ -587,8 +582,7 @@ CodeVarDesig(df, ds)
C_lxa((arith) difflevel);
if ((df->df_flags & D_VARPAR) ||
IsConformantArray(df->df_type)) {
/* var parameter, big parameter,
or conformant array.
/* var parameter or conformant array.
The address is passed.
*/
C_adp(df->var_off);