fix for the EAM internal function that shows abstract machine code

git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1597 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
rslopes 2006-04-12 17:26:14 +00:00
parent f116d8b854
commit 307a132aa6
2 changed files with 160 additions and 158 deletions

View File

@ -65,13 +65,12 @@ struct EAM_Global *eamGlobal=&EAMGlobal;
#define INLINE
#define DIRECT_JUMP 0
void break_top(void); void break_top(void) { };
void break_debug(void);
void break_debug(void) { static int contador=1;
void break_debug(int);
void break_debug(int conta) {
#if Debug_Dump_State & 4
dump_eam_state();
#endif
printf("(%d %1d) ->", contador++,beam_Mode);
if (Debug!=-1 && contador>Debug*100) {printf("exit por contador>debug\n"); exit(1); }
if (Debug!=-1 && conta>Debug*100) {printf("exit por contador>debug\n"); exit(1); }
};
#endif
@ -1440,8 +1439,12 @@ static void *OpAddress[]= {
&&p_arg,
&&p_functor
};
#if Debug
static int contador=1;
#endif
Cell code2start[]={_prepare_calls,1,0,_call_op,0,0};
if ((long) initPred==2) { /* retry from call eam(goal) */
goto fail;
} else if ((long) initPred==1) { /* first time call eam(goal) */
@ -1527,14 +1530,14 @@ if (1) { int i; /* criar mais um nivel acima do top para o caso de haver variav
exit_eam:
#if Debug
break_debug();
printf("(%3d) exit_eam ->", (int) *beam_pc);
printf("%5d->(%3d) exit_eam ->",contador++, (int) *beam_pc);
break_debug(contador);
#endif
wake:
#if Debug
break_debug();
printf("Trying WAKE and_box on suspension \n");
printf("%5d->Trying WAKE and_box on suspension \n",contador++);
break_debug(contador);
#endif
if (verify_externals(beam_ABX)==0) goto fail_verify_externals;
if (beam_ABX->externals==NULL) {
@ -1552,9 +1555,9 @@ break_debug();
top_tree:
#if Debug
break_debug();
printf("I'm on top of the Tree (maybe exit or look for suspended alternatives) \n");
break_top();
printf("%5d->I'm on top of the Tree (maybe exit or look for suspended alternatives) \n",contador++);
break_debug(contador);
break_top();
#endif
#if GARBAGE_COLLECTOR
@ -1615,8 +1618,8 @@ break_debug();
if (beam_nr_alternative->state & (WAKE)) goto wake;
if (beam_OBX->nr_all_alternatives>1) {
#if Debug
break_debug();
printf("Trying Fork in suspended and_box \n");
printf("%5d->Trying Fork in suspended and_box \n",contador++);
break_debug(contador);
#endif
/* pickup the left most alternative instead */
split:
@ -1640,8 +1643,7 @@ break_debug();
proceed:
#if Debug
break_debug();
printf("proceed... \n");
printf("%5d->proceed... \n",contador++);
#endif
if (beam_USE_SAME_ANDBOX!=NULL) { /* was only one alternative */
@ -1656,8 +1658,8 @@ break_debug();
success:
#if Debug
break_debug();
printf("SUCCESS for call %p in level %d \n", beam_nr_call, beam_ABX->level );
printf("%5d->SUCCESS for call %p in level %d \n",contador++, beam_nr_call, beam_ABX->level );
break_debug(contador);
#endif
/* FOUND SOLUTION -> ALL_SOLUTIONS */
//if ((beam_ABX->side_effects & WRITE) && beam_OBX->nr_all_alternatives>1)
@ -1691,8 +1693,8 @@ break_debug();
next_call:
#if Debug
break_debug();
printf("Searching for a next call in and_box... \n");
printf("%5d->Searching for a next call in and_box... \n",contador++);
break_debug(contador);
#endif
#if GARBAGE_COLLECTOR
@ -1785,8 +1787,8 @@ break_debug();
fail_head:
fail:
#if Debug
break_debug();
printf("fail... \n");
printf("%5d->fail... \n",contador++);
break_debug(contador);
#endif
fail_verify_externals:
@ -1814,8 +1816,8 @@ break_debug();
next_alternative:
#if Debug
break_debug();
printf("Searching for a next alternative in or_box... \n");
printf("%5d->Searching for a next alternative in or_box... \n",contador++);
break_debug(contador);
#endif
#if GARBAGE_COLLECTOR
@ -1868,8 +1870,8 @@ break_debug();
unique_alternative:
#if Debug
break_debug();
printf("Unique alternative, Does Promotion on and-box\n");
printf("%5d->Unique alternative, Does Promotion on and-box\n",contador++);
break_debug(contador);
#endif
#if GARBAGE_COLLECTOR
@ -1998,8 +2000,8 @@ break_debug();
prepare_tries:
#if Debug
break_debug();
printf("prepare_tries for %d clauses with arity=%d \n",(int) arg1,(int) arg2);
printf("%5d->prepare_tries for %d clauses with arity=%d \n",contador++,(int) arg1,(int) arg2);
break_debug(contador);
#endif
if (!arg1) goto fail;
{ register int nr;
@ -2058,8 +2060,8 @@ break_debug();
try_me:
beam_nr_alternative->args=NULL;
#if Debug
break_debug();
printf("Create AND_BOX for the %dth clause of predicate %s/%d (Yvars=%d) \n",(int) arg4,((struct Clauses *)arg1)->predi->name,(int) arg2,(int) arg3);
printf("%5d->Create AND_BOX for the %dth clause of predicate %s/%d (Yvars=%d) \n",contador++,(int) arg4,((struct Clauses *)arg1)->predi->name,(int) arg2,(int) arg3);
break_debug(contador);
#endif
if (beam_OBX->nr_all_alternatives>1 || beam_OBX->parent->parent==NULL) {
@ -2112,8 +2114,8 @@ break_debug();
prepare_calls:
#if Debug
break_debug();
printf("prepare_calls %d\n",(int) arg1);
printf("%5d->prepare_calls %d\n",contador++,(int) arg1);
break_debug(contador);
#endif
if (beam_USE_SAME_ANDBOX!=NULL) { /* only one alternative */
register int nr;
@ -2191,8 +2193,8 @@ break_debug();
scheduler:
#if Debug
break_debug();
printf("Scheduler... \n");
printf("%5d->Scheduler... \n",contador++);
break_debug(contador);
#endif
#if Debug_Dump_State
dump_eam_state();
@ -2212,8 +2214,8 @@ break_debug();
suspend:
#if Debug
break_debug();
printf("SUSPEND on alternative %p\n",beam_nr_alternative);
printf("%5d->SUSPEND on alternative %p\n",contador++,beam_nr_alternative);
break_debug(contador);
#endif
beam_OBX=beam_ABX->parent;
{ struct EXTERNAL_VAR *e;
@ -2250,8 +2252,8 @@ break_debug();
call:
#if Debug
break_debug();
printf("call %s/%d \n",((PredEntry *) arg1)->beamTable->name,(int) ((PredEntry *) arg1)->beamTable->arity);
printf("%5d->call %s/%d \n",contador++,((PredEntry *) arg1)->beamTable->name,(int) ((PredEntry *) arg1)->beamTable->arity);
break_debug(contador);
#endif
beam_ES=((PredEntry *) arg1)->beamTable->eager_split;
@ -2371,8 +2373,8 @@ break_debug();
safe_call:
#if Debug
break_debug();
printf("safe_call 0x%lX X1=%d (0x%lX) ,X2=%d (0x%lX) \n",(unsigned long) arg1,(int) beam_X[1],(unsigned long) beam_X[1],(int) beam_X[2],(unsigned long) beam_X[2]);
printf("%5d->safe_call 0x%lX X1=%d (0x%lX) ,X2=%d (0x%lX) \n",contador++,(unsigned long) arg1,(int) beam_X[1],(unsigned long) beam_X[1],(int) beam_X[2],(unsigned long) beam_X[2]);
break_debug(contador);
#endif
beam_S=(Cell *) arg1;
beam_S=(Cell *) (* ((int long (*)(void)) beam_S))();
@ -2385,8 +2387,8 @@ break_debug();
safe_call_unary:
#if Debug
break_debug();
printf("safe_call_unary 0x%lX X1=%d (0x%lX) ,X2=%d (0x%lX) \n",(unsigned long) arg1,(int) beam_X[1],(unsigned long) beam_X[1],(int) beam_X[2],(unsigned long) beam_X[2]);
printf("%5d->safe_call_unary 0x%lX X1=%d (0x%lX) ,X2=%d (0x%lX) \n",contador++,(unsigned long) arg1,(int) beam_X[1],(unsigned long) beam_X[1],(int) beam_X[2],(unsigned long) beam_X[2]);
break_debug(contador);
#endif
beam_S=(Cell *) arg1;
beam_S=(Cell *) (* ((int long (*)(Term)) beam_S))(deref(beam_X[1]));
@ -2399,8 +2401,8 @@ break_debug();
safe_call_binary:
#if Debug
break_debug();
printf("safe_call_binary 0x%lX X1=%d (0x%lX) ,X2=%d (0x%lX) \n",(unsigned long) arg1,(int) beam_X[1],(unsigned long) beam_X[1],(int) beam_X[2],(unsigned long) beam_X[2]);
printf("%5d->safe_call_binary 0x%lX X1=%d (0x%lX) ,X2=%d (0x%lX) \n",contador++,(unsigned long) arg1,(int) beam_X[1],(unsigned long) beam_X[1],(int) beam_X[2],(unsigned long) beam_X[2]);
break_debug(contador);
#endif
beam_S=(Cell *) arg1;
beam_S=(Cell *) (* ((int long (*)(Term, Term)) beam_S))(deref(beam_X[1]),deref(beam_X[2]));
@ -2414,8 +2416,8 @@ break_debug();
direct_safe_call:
#if Debug
break_debug();
printf("direct_safe_call %p X1=%d,X2=%d \n",(void *) arg1,(int) beam_X[1],(int) beam_X[2]);
printf("%5d->direct_safe_call %p X1=%d,X2=%d \n",contador++,(void *) arg1,(int) beam_X[1],(int) beam_X[2]);
break_debug(contador);
#endif
beam_S=(Cell *) arg1;
beam_S=(Cell *) (* ((int long (*)(void)) beam_S))();
@ -2426,8 +2428,8 @@ break_debug();
direct_safe_call_unary:
#if Debug
break_debug();
printf("direct_safe_call_unary %p X1=%d,X2=%d \n",(void *) arg1,(int) beam_X[1],(int) beam_X[2]);
printf("%5d->direct_safe_call_unary %p X1=%d,X2=%d \n",contador++,(void *) arg1,(int) beam_X[1],(int) beam_X[2]);
break_debug(contador);
#endif
beam_S=(Cell *) arg1;
beam_S=(Cell *) (* ((int long (*)(Term)) beam_S))(deref(beam_X[1]));
@ -2437,8 +2439,8 @@ break_debug();
direct_safe_call_binary:
#if Debug
break_debug();
printf("direct_safe_call_binary %p X1=%d,X2=%d \n",(void *) arg1,(int) beam_X[1],(int) beam_X[2]);
printf("%5d->direct_safe_call_binary %p X1=%d,X2=%d \n",contador++,(void *) arg1,(int) beam_X[1],(int) beam_X[2]);
break_debug(contador);
#endif
beam_S=(Cell *) arg1;
beam_S=(Cell *) (* ((int long (*)(Term,Term)) beam_S))(deref(beam_X[1]),deref(beam_X[2]));
@ -2448,8 +2450,8 @@ break_debug();
skip_while_var:
#if Debug
break_debug();
printf("Skip_while_var on call %p\n", beam_nr_call);
printf("%5d->Skip_while_var on call %p\n",contador++, beam_nr_call);
break_debug(contador);
#endif
if (exists_var_in((Cell *) beam_X[1])) {
beam_ABX->suspended=addto_suspensions_list(beam_ABX,VAR_SUSPENSION);
@ -2461,8 +2463,8 @@ break_debug();
wait_while_var:
#if Debug
break_debug();
printf("Wait_while_var on call %p\n", beam_nr_call);
printf("%5d->Wait_while_var on call %p\n",contador++, beam_nr_call);
break_debug(contador);
#endif
if (exists_var_in((Cell *) beam_X[1])) {
beam_ABX->suspended=addto_suspensions_list(beam_ABX,VAR_SUSPENSION);
@ -2475,8 +2477,8 @@ break_debug();
force_wait:
#if Debug
break_debug();
printf("Force Waiting on call %p\n", beam_nr_call);
printf("%5d->Force Waiting on call %p\n",contador++, beam_nr_call);
break_debug(contador);
#endif
/* we didn't get to created a or_box */
@ -2493,8 +2495,8 @@ break_debug();
write_call:
#if Debug
break_debug();
printf("write_call\n");
printf("%5d->write_call\n",contador++);
break_debug(contador);
#endif
#if USE_LEFTMOST
if (!is_leftmost(beam_ABX,beam_nr_call)) {
@ -2521,8 +2523,8 @@ break_debug();
is_call:
#if Debug
break_debug();
printf("is_call\n");
printf("%5d->is_call\n",contador++);
break_debug(contador);
#endif
{
Cell *_DR;
@ -2541,8 +2543,8 @@ break_debug();
equal_call:
#if Debug
break_debug();
printf("equal_call\n");
printf("%5d->equal_call\n",contador++);
break_debug(contador);
#endif
beam_nr_call=remove_call_from_andbox(beam_nr_call,beam_ABX);
if (beam_ABX->externals!=NULL) {
@ -2557,8 +2559,8 @@ break_debug();
pop:
#if Debug
break_debug();
printf("pop %d \n",(int) arg1);
printf("%5d->pop %d \n",contador++,(int) arg1);
break_debug(contador);
#endif
if (arg1>1) {
beam_sp+=arg1>>2;
@ -2573,8 +2575,8 @@ break_debug();
do_nothing:
#if Debug
break_debug();
printf("do_nothing \n");
printf("%5d->do_nothing \n",contador++);
break_debug(contador);
#endif
beam_pc++;
execute_next();
@ -2582,8 +2584,8 @@ break_debug();
get_var_X:
#if Debug
break_debug();
printf("get_var_X X%d=X%d \n",(int) arg2,(int) arg1);
printf("%5d->get_var_X X%d=X%d \n",contador++,(int) arg2,(int) arg1);
break_debug(contador);
#endif
beam_X[arg2]=beam_X[arg1];
@ -2592,8 +2594,8 @@ break_debug();
get_var_Y:
#if Debug
break_debug();
printf("get_var_Y Y%d=X%d \n",(int) arg2,(int) arg1);
printf("%5d->get_var_Y Y%d=X%d \n",contador++,(int) arg2,(int) arg1);
break_debug(contador);
#endif
beam_varlocals[arg2]=beam_X[arg1];
#if !Fast_go
@ -2609,8 +2611,8 @@ break_debug();
get_val_X:
#if Debug
break_debug();
printf("get_val_X X%d,X%d \n",(int) arg1,(int) arg2);
printf("%5d->get_val_X X%d,X%d \n",contador++,(int) arg1,(int) arg2);
break_debug(contador);
#endif
{ register Cell *_DR, *_DR1;
_DR=(Cell *) deref(beam_X[arg1]);
@ -2637,8 +2639,8 @@ break_debug();
get_val_Y:
#if Debug
break_debug();
printf("get_val_Y X%d,Y%d \n",(int) arg1,(int) arg2);
printf("%5d->get_val_Y X%d,Y%d \n",contador++,(int) arg1,(int) arg2);
break_debug(contador);
#endif
{ register Cell *_DR, *_DR1;
_DR=(Cell *) deref(beam_X[arg1]);
@ -2665,8 +2667,8 @@ break_debug();
get_atom:
#if Debug
break_debug();
printf("get_atom X%d, 0x%lX\n",(int) arg1,(unsigned long) arg2);
printf("%5d->get_atom X%d, 0x%lX\n",contador++,(int) arg1,(unsigned long) arg2);
break_debug(contador);
#endif
{ register Cell *_DR;
_DR=(Cell *) deref(beam_X[arg1]);
@ -2682,8 +2684,8 @@ break_debug();
get_list:
#if Debug
break_debug();
printf("get_list X%d\n",(int) arg1);
printf("%5d->get_list X%d\n",contador++,(int) arg1);
break_debug(contador);
#endif
{ register Cell *_DR, *_DR1;
_DR=(Cell *) deref(beam_X[arg1]);
@ -2707,8 +2709,8 @@ break_debug();
get_struct:
#if Debug
break_debug();
printf("get_struct X%d, 0x%lX/%d\n",(int) arg1,(unsigned long) arg2,(int) arg3);
printf("%5d->get_struct X%d, 0x%lX/%d\n",contador++,(int) arg1,(unsigned long) arg2,(int) arg3);
break_debug(contador);
#endif
{ register Cell *_DR, *_DR1;
@ -2736,8 +2738,8 @@ break_debug();
unify_void:
#if Debug
break_debug();
printf("unify_void\n");
printf("%5d->unify_void\n",contador++);
break_debug(contador);
#endif
if (beam_Mode==WRITE) {
*beam_S=(Cell) request_permVar(beam_ABX);
@ -2749,8 +2751,8 @@ break_debug();
unify_local_Y:
#if Debug
break_debug();
printf("unify_local_Y Y%d \n",(int) arg1);
printf("%5d->unify_local_Y Y%d \n",contador++,(int) arg1);
break_debug(contador);
#endif
if (beam_Mode==READ) {
@ -2793,8 +2795,8 @@ break_debug();
unify_local_X:
#if Debug
break_debug();
printf("unify_local_X X%d \n",(int) arg1);
printf("%5d->unify_local_X X%d \n",contador++,(int) arg1);
break_debug(contador);
#endif
if (beam_Mode==READ) {
register Cell *_DR, *_DR1;
@ -2837,8 +2839,8 @@ break_debug();
unify_val_Y:
#if Debug
break_debug();
printf("unify_val_Y Y%d \n",(int) arg1);
printf("%5d->unify_val_Y Y%d \n",contador++,(int) arg1);
break_debug(contador);
#endif
if (beam_Mode==READ) {
@ -2875,8 +2877,8 @@ break_debug();
unify_val_X:
#if Debug
break_debug();
printf("unify_val_X X%d \n",(int) arg1);
printf("%5d->unify_val_X X%d \n",contador++,(int) arg1);
break_debug(contador);
#endif
if (beam_Mode==READ) {
register Cell *_DR, *_DR1;
@ -2911,8 +2913,8 @@ break_debug();
unify_var_X:
#if Debug
break_debug();
printf("unify_var_X X%d=*S \n",(int) arg1);
printf("%5d->unify_var_X X%d=*S \n",contador++,(int) arg1);
break_debug(contador);
#endif
if (beam_Mode==READ) {
beam_X[arg1]=*(beam_S++);
@ -2928,8 +2930,8 @@ break_debug();
unify_var_Y:
#if Debug
break_debug();
printf("unify_var_Y Y%d \n",(int) arg1);
printf("%5d->unify_var_Y Y%d \n",contador++,(int) arg1);
break_debug(contador);
#endif
if (beam_Mode==READ) {
beam_varlocals[arg1]=*(beam_S++);
@ -2946,8 +2948,8 @@ break_debug();
unify_last_atom:
unify_atom:
#if Debug
break_debug();
printf("unify_atom 0x%lX \n",(unsigned long) arg1);
printf("%5d->unify_atom 0x%lX \n",contador++,(unsigned long) arg1);
break_debug(contador);
#endif
if (beam_Mode==READ) {
register Cell *_DR;
@ -2970,8 +2972,8 @@ break_debug();
unify_list:
#if Debug
break_debug();
printf("unify_list \n");
printf("%5d->unify_list \n",contador++);
break_debug(contador);
#endif
if (beam_Mode==READ) {
register Cell *_DR, *_DR1;
@ -3010,8 +3012,8 @@ break_debug();
unify_last_list:
#if Debug
break_debug();
printf("unify_last_list \n");
printf("%5d->unify_last_list \n",contador++);
break_debug(contador);
#endif
if (beam_Mode==READ) {
register Cell *_DR, *_DR1;
@ -3043,8 +3045,8 @@ break_debug();
unify_struct:
#if Debug
break_debug();
printf("unify_struct 0x%lX,%d \n",(unsigned long) arg1,(int) arg2);
printf("%5d->unify_struct 0x%lX,%d \n",contador++,(unsigned long) arg1,(int) arg2);
break_debug(contador);
#endif
if (beam_Mode==READ) {
register Cell *_DR, *_DR1;
@ -3087,8 +3089,8 @@ break_debug();
unify_last_struct:
#if Debug
break_debug();
printf("unify_last_struct 0x%lX, %d \n",(unsigned long) arg1,(int) arg2);
printf("%5d->unify_last_struct 0x%lX, %d \n",contador++,(unsigned long) arg1,(int) arg2);
break_debug(contador);
#endif
if (beam_Mode==READ) {
register Cell *_DR, *_DR1;
@ -3124,8 +3126,8 @@ break_debug();
put_var_X:
#if Debug
break_debug();
printf("put_var_X X%d,X%d \n",(int) arg1,(int) arg2);
printf("%5d->put_var_X X%d,X%d \n",contador++,(int) arg1,(int) arg2);
break_debug(contador);
#endif
beam_X[arg1]=(Cell) beam_H;
beam_X[arg2]=(Cell) beam_H;
@ -3138,8 +3140,8 @@ break_debug();
put_val_X:
#if Debug
break_debug();
printf("put_val_X X%d,X%d \n",(int) arg1,(int) arg2);
printf("%5d->put_val_X X%d,X%d \n",contador++,(int) arg1,(int) arg2);
break_debug(contador);
#endif
beam_X[arg1]=beam_X[arg2];
beam_pc+=3;
@ -3148,8 +3150,8 @@ break_debug();
put_var_P:
#if Debug
break_debug();
printf("put_var_P X%d,Y%d \n",(int) arg1,(int) arg2);
printf("%5d->put_var_P X%d,Y%d \n",contador++,(int) arg1,(int) arg2);
break_debug(contador);
#endif
if (isvar(beam_varlocals[arg2]) && !is_perm_var((Cell *) beam_varlocals[arg2]))
beam_varlocals[arg2]=(Cell) request_permVar(beam_ABX);
@ -3160,8 +3162,8 @@ break_debug();
put_var_Y:
/*
#if Debug
break_debug();
printf("put_var_Y X%d,Y%d \n",(int) arg1,(int) arg2);
printf("%5d->put_var_Y X%d,Y%d \n",contador++,(int) arg1,(int) arg2);
break_debug(contador);
#endif
{ register Cell *a;
@ -3173,8 +3175,8 @@ break_debug();
*/
put_val_Y:
#if Debug
break_debug();
printf("put_val_Y X%d,Y%d \n",(int) arg1,(int) arg2);
printf("%5d->put_val_Y X%d,Y%d \n",contador++,(int) arg1,(int) arg2);
break_debug(contador);
#endif
beam_X[arg1]=beam_varlocals[arg2];
beam_pc+=3;
@ -3182,8 +3184,8 @@ break_debug();
put_unsafe:
#if Debug
break_debug();
printf("put_unsafe X%d, Y%d \n",(int) arg1,(int) arg2);
printf("%5d->put_unsafe X%d, Y%d \n",contador++,(int) arg1,(int) arg2);
break_debug(contador);
#endif
beam_X[arg1]=beam_varlocals[arg2];
beam_pc+=3;
@ -3192,8 +3194,8 @@ break_debug();
put_atom:
#if Debug
break_debug();
printf("put_atom X%d, 0x%lX \n",(int) arg1,(unsigned long) arg2);
printf("%5d->put_atom X%d, 0x%lX \n",contador++,(int) arg1,(unsigned long) arg2);
break_debug(contador);
#endif
beam_X[arg1]=arg2;
beam_pc+=3;
@ -3201,8 +3203,8 @@ break_debug();
put_list:
#if Debug
break_debug();
printf("put_list X%d \n",(int) arg1);
printf("%5d->put_list X%d \n",contador++,(int) arg1);
break_debug(contador);
#endif
{ register Cell *_DR1;
@ -3216,8 +3218,8 @@ break_debug();
put_struct:
#if Debug
break_debug();
printf("put_struct X%d, 0x%lX, %d \n",(int) arg1,(unsigned long) arg2,(int) arg3);
printf("%5d->put_struct X%d, 0x%lX, %d \n",contador++,(int) arg1,(unsigned long) arg2,(int) arg3);
break_debug(contador);
#endif
{ register Cell _DR1;
@ -3232,8 +3234,8 @@ break_debug();
write_var_X:
#if Debug
break_debug();
printf("write_var_X X%d \n",(int) arg1);
printf("%5d->write_var_X X%d \n",contador++,(int) arg1);
break_debug(contador);
#endif
*beam_S=(Cell) request_permVar(beam_ABX);
beam_X[arg1]=(Cell) beam_S;
@ -3243,8 +3245,8 @@ break_debug();
write_var_Y:
#if Debug
break_debug();
printf("write_var_Y Y%d \n",(int) arg1);
printf("%5d->write_var_Y Y%d \n",contador++,(int) arg1);
break_debug(contador);
#endif
{ Cell *c;
c=&beam_varlocals[arg1];
@ -3258,8 +3260,8 @@ break_debug();
write_var_P:
#if Debug
break_debug();
printf("write_var_P Y%d \n",(int) arg1);
printf("%5d->write_var_P Y%d \n",contador++,(int) arg1);
break_debug(contador);
#endif
if (isvar(beam_varlocals[arg1]) && !is_perm_var((Cell *) beam_varlocals[arg1]))
beam_varlocals[arg1]=(Cell) request_permVar(beam_ABX);
@ -3272,8 +3274,8 @@ break_debug();
write_local_X:
write_val_X:
#if Debug
break_debug();
printf("write_val_X X%d (or write_local)\n",(int) arg1);
printf("%5d->write_val_X X%d (or write_local)\n",contador++,(int) arg1);
break_debug(contador);
#endif
*(beam_S)=beam_X[arg1];
beam_S++;
@ -3292,8 +3294,8 @@ break_debug();
write_void:
#if Debug
break_debug();
printf("write_void \n");
printf("%5d->write_void \n",contador++);
break_debug(contador);
#endif
*beam_S=(Cell) request_permVar(beam_ABX);
beam_S++;
@ -3301,8 +3303,8 @@ break_debug();
execute_next();
write_atom:
#if Debug
break_debug();
printf("write_atom 0x%lX \n",(unsigned long) arg1);
printf("%5d->write_atom 0x%lX \n",contador++,(unsigned long) arg1);
break_debug(contador);
#endif
*(beam_S)=arg1;
beam_S++;
@ -3312,8 +3314,8 @@ break_debug();
write_list:
#if Debug
break_debug();
printf("write_list \n");
printf("%5d->write_list \n",contador++);
break_debug(contador);
#endif
{ register Cell *_DR1;
@ -3328,8 +3330,8 @@ break_debug();
write_last_list:
#if Debug
break_debug();
printf("write_last_list \n");
printf("%5d->write_last_list \n",contador++);
break_debug(contador);
#endif
{ register Cell *_DR1;
@ -3343,8 +3345,8 @@ break_debug();
write_struct:
#if Debug
break_debug();
printf("write_struct 0x%lX, %d \n",(unsigned long) arg1,(int) arg2);
printf("%5d->write_struct 0x%lX, %d \n",contador++,(unsigned long) arg1,(int) arg2);
break_debug(contador);
#endif
{ register Cell *_DR1;
@ -3360,8 +3362,8 @@ break_debug();
write_last_struct:
#if Debug
break_debug();
printf("write_last_struct 0x%lX, %d \n",(unsigned long) arg1,(int) arg2);
printf("%5d->write_last_struct 0x%lX, %d \n",contador++,(unsigned long) arg1,(int) arg2);
break_debug(contador);
#endif
{ register Cell *_DR1;
_DR1=(Cell *) absappl((Cell) beam_H); /* SaveExpression in _DR1*/
@ -3375,8 +3377,8 @@ break_debug();
cut:
#if Debug
break_debug();
printf("cut na alternativa %pª de %d \n",beam_ABX->nr_alternative, beam_ABX->parent->nr_all_alternatives);
printf("%5d->cut na alternativa %pª de %d \n",contador++,beam_ABX->nr_alternative, beam_ABX->parent->nr_all_alternatives);
break_debug(contador);
#endif
beam_OBX=beam_ABX->parent;
{
@ -3421,8 +3423,8 @@ break_debug();
commit:
#if Debug
break_debug();
printf("commit na alternativa %pª de %d \n",beam_ABX->nr_alternative, beam_ABX->parent->nr_all_alternatives);
printf("%5d->commit na alternativa %pª de %d \n",contador++,beam_ABX->nr_alternative, beam_ABX->parent->nr_all_alternatives);
break_debug(contador);
#endif
beam_OBX=beam_ABX->parent;
{
@ -3469,8 +3471,8 @@ break_debug();
jump:
#if Debug
break_debug();
printf("jump inst %ld\n",(long int) arg1);
printf("%5d->jump inst %ld\n",contador++,(long int) arg1);
break_debug(contador);
#endif
beam_pc=(Cell *) arg1;
execute_next();
@ -3478,8 +3480,8 @@ break_debug();
save_pair_Y:
#if Debug
break_debug();
printf("save_pair Y%ld\n",(long int) arg1);
printf("%5d->save_pair Y%ld\n",contador++,(long int) arg1);
break_debug(contador);
#endif
abort_eam("save_exp no emulador ?????");
--S;
@ -3490,8 +3492,8 @@ break_debug();
save_appl_Y:
#if Debug
break_debug();
printf("save_appl Y%ld\n",(long int) arg1);
printf("%5d->save_appl Y%ld\n",contador++,(long int) arg1);
break_debug(contador);
#endif
abort_eam("save_exp no emulador ?????");
--S;
@ -3503,8 +3505,8 @@ break_debug();
save_appl_X:
#if Debug
break_debug();
printf("save_appl X%ld\n",(long int) arg1);
printf("%5d->save_appl X%ld\n",contador++,(long int) arg1);
break_debug(contador);
#endif
abort_eam("save_exp no emulador ?????");
--S;
@ -3515,8 +3517,8 @@ break_debug();
save_pair_X:
#if Debug
break_debug();
printf("save_pair X%ld\n",(long int) arg1);
printf("%5d->save_pair X%ld\n",contador++,(long int) arg1);
break_debug(contador);
#endif
abort_eam("save_exp no emulador ?????");
--S;

View File

@ -256,15 +256,15 @@ int n;
code+=4;
break;
case(_try_me_op ):
printf("_try_me_op -> Create AND_BOX for the %dth clause of predicate %s/%d (Yvars=%d) \n",(int) carg4,((struct Clauses *)carg1)->predi->name,(int) carg2,(int) carg3);
printf("_try_me_op (not final)\n");
code+=5;
break;
case(_retry_me_op ):
printf("_retry_me_op -> Create AND_BOX for the %dth clause of predicate %s/%d (Yvars=%d) \n",(int) carg4,((struct Clauses *)carg1)->predi->name,(int) carg2,(int) carg3);
printf("_retry_me_op (not final)\n");
code+=5;
break;
case(_trust_me_op ):
printf("_trust_me_op -> Create AND_BOX for the %dth clause of predicate %s/%d (Yvars=%d) \n",(int) carg4,((struct Clauses *)carg1)->predi->name,(int) carg2,(int) carg3);
printf("_trust_me_op (not final)\n");
code+=5;
break;
case(_do_nothing_op ):