Merge branch 'master' of git@git.dcc.fc.up.pt:yap-6.3

This commit is contained in:
Fabrizio Riguzzi 2013-09-09 12:42:08 +02:00
commit 50287c268b
5 changed files with 8 additions and 3 deletions

2
.gitmodules vendored
View File

@ -36,7 +36,7 @@
url = git://git.code.sf.net/p/yap/pldoc url = git://git.code.sf.net/p/yap/pldoc
[submodule "packages/real"] [submodule "packages/real"]
path = packages/real path = packages/real
url = vsc://www.swi-prolog.org/home/pl/git/packages/real.git url = git://www.swi-prolog.org/home/pl/git/packages/real.git
[submodule "packages/archive"] [submodule "packages/archive"]
path = packages/archive path = packages/archive
url = git://git.code.sf.net/p/yap/archive url = git://git.code.sf.net/p/yap/archive

View File

@ -2289,8 +2289,9 @@ YAP_EnterGoal(PredEntry *pe, Term *ptr, YAP_dogoalinfo *dgi)
BACKUP_MACHINE_REGS(); BACKUP_MACHINE_REGS();
dgi->p = P; dgi->p = P;
dgi->cp = CP; dgi->cp = CP;
P = pe->CodeOfPred; // ensure our current ENV receives current P.
Yap_PrepGoal(pe->ArityOfPE, ptr, B PASS_REGS); Yap_PrepGoal(pe->ArityOfPE, ptr, B PASS_REGS);
P = pe->CodeOfPred;
dgi->b = LCL0-(CELL*)B; dgi->b = LCL0-(CELL*)B;
out = run_emulator(dgi PASS_REGS); out = run_emulator(dgi PASS_REGS);
RECOVER_MACHINE_REGS(); RECOVER_MACHINE_REGS();

View File

@ -775,6 +775,8 @@ RestoreEnvInst(yamop start[2], yamop **instp, op_numbers opc, PredEntry *pred)
ipc->opc = Yap_opcode(_call); ipc->opc = Yap_opcode(_call);
ipc->u.Osbpp.p = pred; ipc->u.Osbpp.p = pred;
ipc->u.Osbpp.p0 = pred; ipc->u.Osbpp.p0 = pred;
ipc->u.Osbpp.bmap = NULL;
ipc->u.Osbpp.s = -Signed(RealEnvSize);
ipc = NEXTOP(ipc, Osbpp); ipc = NEXTOP(ipc, Osbpp);
ipc->opc = Yap_opcode(opc); ipc->opc = Yap_opcode(opc);
*instp = ipc; *instp = ipc;

View File

@ -2291,6 +2291,8 @@ X_API qid_t PL_open_query(module_t ctx, int flags, predicate_t p, term_t t0)
new->cp = CP; new->cp = CP;
new->p = P; new->p = P;
new->b = (CELL)(LCL0-(CELL*)B); new->b = (CELL)(LCL0-(CELL*)B);
new->envp = (CELL)(LCL0-ENV);
new->asp = (CELL)(LCL0-ASP);
new->slots = CurSlot; new->slots = CurSlot;
new->flags = 0; new->flags = 0;
LOCAL_execution = new; LOCAL_execution = new;