more fixes to new indexing code
a few fixes to functor git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@872 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
f6170508cd
commit
3e17f53c28
@ -10122,7 +10122,7 @@ Yap_absmi(int inp)
|
|||||||
#ifdef LOW_LEVEL_TRACER
|
#ifdef LOW_LEVEL_TRACER
|
||||||
if (Yap_do_low_level_trace) {
|
if (Yap_do_low_level_trace) {
|
||||||
RESET_VARIABLE(H);
|
RESET_VARIABLE(H);
|
||||||
H[1] = XREG(PREG->u.xcx.c);
|
H[1] = PREG->u.xcx.c;
|
||||||
H[2] = XREG(PREG->u.xcx.xi);
|
H[2] = XREG(PREG->u.xcx.xi);
|
||||||
low_level_trace(enter_pred,RepPredProp(Yap_GetPredPropByFunc(Yap_MkFunctor(Yap_LookupAtom("functor"),3),0)),H);
|
low_level_trace(enter_pred,RepPredProp(Yap_GetPredPropByFunc(Yap_MkFunctor(Yap_LookupAtom("functor"),3),0)),H);
|
||||||
}
|
}
|
||||||
@ -10466,7 +10466,7 @@ Yap_absmi(int inp)
|
|||||||
#ifdef LOW_LEVEL_TRACER
|
#ifdef LOW_LEVEL_TRACER
|
||||||
if (Yap_do_low_level_trace) {
|
if (Yap_do_low_level_trace) {
|
||||||
RESET_VARIABLE(H);
|
RESET_VARIABLE(H);
|
||||||
H[1] = XREG(PREG->u.ycx.c);
|
H[1] = PREG->u.ycx.c;
|
||||||
H[2] = XREG(PREG->u.ycx.xi);
|
H[2] = XREG(PREG->u.ycx.xi);
|
||||||
low_level_trace(enter_pred,RepPredProp(Yap_GetPredPropByFunc(Yap_MkFunctor(Yap_LookupAtom("functor"),3),0)),H);
|
low_level_trace(enter_pred,RepPredProp(Yap_GetPredPropByFunc(Yap_MkFunctor(Yap_LookupAtom("functor"),3),0)),H);
|
||||||
}
|
}
|
||||||
|
4
C/grow.c
4
C/grow.c
@ -507,6 +507,10 @@ static_growheap(long size, int fix_code)
|
|||||||
fprintf(Yap_stderr, "[HO] Heap overflow %d\n", heap_overflows);
|
fprintf(Yap_stderr, "[HO] Heap overflow %d\n", heap_overflows);
|
||||||
fprintf(Yap_stderr, "[HO] growing the heap %ld bytes\n", size);
|
fprintf(Yap_stderr, "[HO] growing the heap %ld bytes\n", size);
|
||||||
}
|
}
|
||||||
|
/* CreepFlag is set to force heap expansion */
|
||||||
|
if (CreepFlag == Unsigned(LCL0+1)) {
|
||||||
|
CreepFlag = CalculateStackGap();
|
||||||
|
}
|
||||||
ASP -= 256;
|
ASP -= 256;
|
||||||
TrDiff = LDiff = GDiff = DelayDiff = size;
|
TrDiff = LDiff = GDiff = DelayDiff = size;
|
||||||
XDiff = HDiff = 0;
|
XDiff = HDiff = 0;
|
||||||
|
@ -2299,7 +2299,6 @@ skip_to_arg(ClauseDef *clause, PredEntry *ap, UInt argno, int at_point)
|
|||||||
case _unify_l_bigint:
|
case _unify_l_bigint:
|
||||||
case _unify_l_float:
|
case _unify_l_float:
|
||||||
if (argno == 1) {
|
if (argno == 1) {
|
||||||
clause->u.WorkPC = NEXTOP(cl,oc);
|
|
||||||
done = TRUE;
|
done = TRUE;
|
||||||
} else {
|
} else {
|
||||||
at_point = FALSE;
|
at_point = FALSE;
|
||||||
@ -3856,6 +3855,7 @@ expand_index(PredEntry *ap) {
|
|||||||
sp = push_stack(sp, 1, AbsAppl((CELL *)FunctorOfTerm(t)));
|
sp = push_stack(sp, 1, AbsAppl((CELL *)FunctorOfTerm(t)));
|
||||||
ipc = ipc->u.llll.l3;
|
ipc = ipc->u.llll.l3;
|
||||||
} else {
|
} else {
|
||||||
|
sp = push_stack(sp, argno, t);
|
||||||
ipc = ipc->u.llll.l2;
|
ipc = ipc->u.llll.l2;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -3876,6 +3876,7 @@ expand_index(PredEntry *ap) {
|
|||||||
sp = push_stack(sp, 1, AbsAppl((CELL *)FunctorOfTerm(t)));
|
sp = push_stack(sp, 1, AbsAppl((CELL *)FunctorOfTerm(t)));
|
||||||
ipc = ipc->u.ollll.l3;
|
ipc = ipc->u.ollll.l3;
|
||||||
} else {
|
} else {
|
||||||
|
sp = push_stack(sp, argno, t);
|
||||||
ipc = ipc->u.ollll.l2;
|
ipc = ipc->u.ollll.l2;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -3895,6 +3896,7 @@ expand_index(PredEntry *ap) {
|
|||||||
sp = push_stack(sp, argno, AbsAppl((CELL *)FunctorOfTerm(t)));
|
sp = push_stack(sp, argno, AbsAppl((CELL *)FunctorOfTerm(t)));
|
||||||
ipc = ipc->u.xllll.l3;
|
ipc = ipc->u.xllll.l3;
|
||||||
} else {
|
} else {
|
||||||
|
sp = push_stack(sp, argno, t);
|
||||||
ipc = ipc->u.xllll.l2;
|
ipc = ipc->u.xllll.l2;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -3916,6 +3918,9 @@ expand_index(PredEntry *ap) {
|
|||||||
sp = push_stack(sp, -i-1, AbsAppl((CELL *)FunctorOfTerm(t)));
|
sp = push_stack(sp, -i-1, AbsAppl((CELL *)FunctorOfTerm(t)));
|
||||||
ipc = ipc->u.sllll.l3;
|
ipc = ipc->u.sllll.l3;
|
||||||
} else {
|
} else {
|
||||||
|
/* We don't push stack here, instead we go over to next argument
|
||||||
|
sp = push_stack(sp, -i-1, t);
|
||||||
|
*/
|
||||||
ipc = ipc->u.sllll.l2;
|
ipc = ipc->u.sllll.l2;
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
@ -113,10 +113,6 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args)
|
|||||||
/* extern int gc_calls; */
|
/* extern int gc_calls; */
|
||||||
|
|
||||||
vsc_count++;
|
vsc_count++;
|
||||||
if (vsc_count < 5264300LL) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (vsc_count == 5264343LL) vsc_xstop = TRUE;
|
|
||||||
#ifdef COMMENTED
|
#ifdef COMMENTED
|
||||||
if (vsc_count < 123536430LL) {
|
if (vsc_count < 123536430LL) {
|
||||||
if (vsc_count == 123536441LL) vsc_xstop = 1;
|
if (vsc_count == 123536441LL) vsc_xstop = 1;
|
||||||
|
Reference in New Issue
Block a user