fix bad understanding of put_y_val in add_info/index.c
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@832 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
a77ceeac69
commit
2bd2bcb68b
14
C/index.c
14
C/index.c
@ -210,7 +210,7 @@ delete_regcopy(wamreg regs[MAX_REG_COPIES], int regs_count, wamreg copy)
|
|||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
/* this copy had overflowed */
|
/* this copy had overflowed, or it just was not there */
|
||||||
return regs_count;
|
return regs_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1083,18 +1083,20 @@ add_info(ClauseDef *clause, UInt regno)
|
|||||||
break;
|
break;
|
||||||
case _put_y_val:
|
case _put_y_val:
|
||||||
case _put_unsafe:
|
case _put_unsafe:
|
||||||
if (regcopy_in(myregs, nofregs, cl->u.yx.x)) {
|
if (ycopy == cl->u.yx.y) {
|
||||||
ycopy = cl->u.yx.y;
|
nofregs = add_regcopy(myregs, nofregs, cl->u.yx.x);
|
||||||
|
} else {
|
||||||
|
nofregs = delete_regcopy(myregs, nofregs, cl->u.yx.x);
|
||||||
}
|
}
|
||||||
cl = NEXTOP(cl,yx);
|
cl = NEXTOP(cl,yx);
|
||||||
break;
|
break;
|
||||||
case _get_y_val:
|
case _get_y_val:
|
||||||
if (regcopy_in(myregs, nofregs, cl->u.xy.x)) {
|
if (regcopy_in(myregs, nofregs, cl->u.yx.x)) {
|
||||||
ycopy = cl->u.yx.y;
|
ycopy = cl->u.yx.y;
|
||||||
} else if (ycopy == cl->u.yx.y) {
|
} else if (ycopy == cl->u.yx.y) {
|
||||||
nofregs = add_regcopy(myregs, nofregs, cl->u.xy.x);
|
nofregs = add_regcopy(myregs, nofregs, cl->u.yx.x);
|
||||||
}
|
}
|
||||||
cl = NEXTOP(cl,xy);
|
cl = NEXTOP(cl,yx);
|
||||||
break;
|
break;
|
||||||
case _get_atom:
|
case _get_atom:
|
||||||
if (regcopy_in(myregs, nofregs, cl->u.xc.x)) {
|
if (regcopy_in(myregs, nofregs, cl->u.xc.x)) {
|
||||||
|
Reference in New Issue
Block a user