YENV may be an HW register (breaks some tabling code)
All YAAM instructions are now brackedted, so Op introduced an { and EndOp introduces an }. This is because Ricardo assumes that. Fix attvars when COROUTING is undefined. git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1516 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
|
||||
Copyright: R. Rocha and NCC - University of Porto, Portugal
|
||||
File: tab.insts.i
|
||||
version: $Id: tab.insts.i,v 1.21 2005-11-15 00:50:49 vsc Exp $
|
||||
version: $Id: tab.insts.i,v 1.22 2006-01-17 14:10:41 vsc Exp $
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
@@ -342,6 +342,7 @@
|
||||
code_ap = PREG->u.ld.d;
|
||||
PREG = NEXTOP(PREG,ld);
|
||||
}
|
||||
PREFETCH_OP(PREG);
|
||||
restore_generator_node(SgFr_arity(sg_fr), code_ap);
|
||||
YENV = (CELL *) PROTECT_FROZEN_B(B);
|
||||
set_cut(YENV, B->cp_b);
|
||||
@@ -349,6 +350,10 @@
|
||||
allocate_environment();
|
||||
GONext();
|
||||
}
|
||||
#else
|
||||
PREG = PREG->u.ld.d;
|
||||
PREFETCH_OP(PREG);
|
||||
GONext();
|
||||
#endif /* INCOMPLETE_TABLING */
|
||||
ENDPBOp();
|
||||
|
||||
@@ -357,10 +362,13 @@
|
||||
PBOp(table_try_single, ld)
|
||||
tab_ent_ptr tab_ent;
|
||||
sg_fr_ptr sg_fr;
|
||||
|
||||
|
||||
check_trail(TR);
|
||||
tab_ent = PREG->u.ld.te;
|
||||
sg_fr = subgoal_search(PREG, &YENV);
|
||||
YENV2MEM;
|
||||
sg_fr = subgoal_search(PREG, YENV_ADDRESS);
|
||||
MEM2YENV;
|
||||
LOCK(SgFr_lock(sg_fr));
|
||||
if (SgFr_state(sg_fr) == ready) {
|
||||
/* subgoal new */
|
||||
@@ -470,7 +478,9 @@
|
||||
|
||||
check_trail(TR);
|
||||
tab_ent = PREG->u.ld.te;
|
||||
sg_fr = subgoal_search(PREG, &YENV);
|
||||
YENV2MEM;
|
||||
sg_fr = subgoal_search(PREG, YENV_ADDRESS);
|
||||
MEM2YENV;
|
||||
LOCK(SgFr_lock(sg_fr));
|
||||
if (SgFr_state(sg_fr) == ready) {
|
||||
/* subgoal new */
|
||||
@@ -580,7 +590,9 @@
|
||||
|
||||
check_trail(TR);
|
||||
tab_ent = PREG->u.ld.te;
|
||||
sg_fr = subgoal_search(PREG, &YENV);
|
||||
YENV2MEM;
|
||||
sg_fr = subgoal_search(PREG, YENV_ADDRESS);
|
||||
MEM2YENV;
|
||||
LOCK(SgFr_lock(sg_fr));
|
||||
if (SgFr_state(sg_fr) == ready) {
|
||||
/* subgoal new */
|
||||
|
@@ -5,7 +5,7 @@
|
||||
|
||||
Copyright: R. Rocha and NCC - University of Porto, Portugal
|
||||
File: tab.tries.insts.i
|
||||
version: $Id: tab.tries.insts.i,v 1.10 2005-07-06 19:34:11 ricroc Exp $
|
||||
version: $Id: tab.tries.insts.i,v 1.11 2006-01-17 14:10:41 vsc Exp $
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
@@ -996,19 +996,19 @@
|
||||
ENDPBOp();
|
||||
|
||||
|
||||
PBOp(trie_try_float, e)
|
||||
Yap_Error(INTERNAL_ERROR, TermNil, "invalid instruction (trie_try_float)");
|
||||
ENDPBOp();
|
||||
BOp(trie_try_float, e)
|
||||
Yap_Error(INTERNAL_ERROR, TermNil, "invalid instruction (trie_try_float)");
|
||||
ENDBOp();
|
||||
|
||||
|
||||
PBOp(trie_retry_float, e)
|
||||
BOp(trie_retry_float, e)
|
||||
Yap_Error(INTERNAL_ERROR, TermNil, "invalid instruction (trie_retry_float)");
|
||||
ENDPBOp();
|
||||
ENDBOp();
|
||||
|
||||
|
||||
PBOp(trie_trust_float, e)
|
||||
BOp(trie_trust_float, e)
|
||||
Yap_Error(INTERNAL_ERROR, TermNil, "invalid instruction (trie_trust_float)");
|
||||
ENDPBOp();
|
||||
ENDBOp();
|
||||
|
||||
|
||||
PBOp(trie_do_long, e)
|
||||
@@ -1024,16 +1024,16 @@
|
||||
ENDPBOp();
|
||||
|
||||
|
||||
PBOp(trie_try_long, e)
|
||||
BOp(trie_try_long, e)
|
||||
Yap_Error(INTERNAL_ERROR, TermNil, "invalid instruction (trie_try_long)");
|
||||
ENDPBOp();
|
||||
ENDBOp();
|
||||
|
||||
|
||||
PBOp(trie_retry_long, e)
|
||||
BOp(trie_retry_long, e)
|
||||
Yap_Error(INTERNAL_ERROR, TermNil, "invalid instruction (trie_retry_long)");
|
||||
ENDPBOp();
|
||||
ENDBOp();
|
||||
|
||||
|
||||
PBOp(trie_trust_long, e)
|
||||
BOp(trie_trust_long, e)
|
||||
Yap_Error(INTERNAL_ERROR, TermNil, "invalid instruction (trie_trust_long)");
|
||||
ENDPBOp();
|
||||
ENDBOp();
|
||||
|
Reference in New Issue
Block a user