From 601f91f6531b132058c8ae7d1aeb2b0b0ba9bf0b Mon Sep 17 00:00:00 2001 From: vsc Date: Wed, 30 Apr 2003 17:14:10 +0000 Subject: [PATCH] fix call to garbage_collection from within assembly meta-calls git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@819 b08c6af1-5177-4d33-ba66-4b1c6b8b522a --- C/absmi.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/C/absmi.c b/C/absmi.c index 43bb5882b..566f75657 100644 --- a/C/absmi.c +++ b/C/absmi.c @@ -11837,13 +11837,13 @@ Yap_absmi(int inp) execute_end: /* code copied from call */ +#ifndef NO_CHECKING + check_stack(NoStackPExecute, H); +#endif CPREG = (yamop *) NEXTOP(PREG, sla); ALWAYS_LOOKAHEAD(pen->OpcodeOfPred); PREG = pen->CodeOfPred; -#ifndef NO_CHECKING - check_stack(NoStackPExecute, H); -#endif #ifdef DEPTH_LIMIT if (DEPTH <= MkIntTerm(1)) {/* I assume Module==0 is primitives */ if (pen->ModuleOfPred) { @@ -11890,7 +11890,7 @@ Yap_absmi(int inp) goto creep; else { CFREG = CalculateStackGap(); - JMPNext(); + goto execute_end; } } #endif @@ -11901,7 +11901,7 @@ Yap_absmi(int inp) Yap_Error(OUT_OF_STACK_ERROR,TermNil,Yap_ErrorMessage); } setregs(); - JMPNext(); + goto execute_end; ENDCACHE_Y_AS_ENV(); } ENDBOp(); @@ -12080,10 +12080,10 @@ Yap_absmi(int inp) } execute_after_comma: - PREG = pen->CodeOfPred; #ifndef NO_CHECKING check_stack(NoStackPTExecute, H); #endif + PREG = pen->CodeOfPred; ALWAYS_LOOKAHEAD(pen->OpcodeOfPred); E_YREG[E_CB] = (CELL)B; #ifdef DEPTH_LIMIT @@ -12114,7 +12114,7 @@ Yap_absmi(int inp) goto creep; else { CFREG = CalculateStackGap(); - JMPNext(); + goto execute_after_comma; } } #endif @@ -12128,7 +12128,7 @@ Yap_absmi(int inp) Yap_Error(OUT_OF_STACK_ERROR,TermNil,Yap_ErrorMessage); } setregs(); - JMPNext(); + goto execute_after_comma; ENDCACHE_Y_AS_ENV(); }