avoid unnecessary CACHE_REGS in inlines.

This commit is contained in:
Vitor Santos Costa 2013-03-26 16:10:03 -05:00
parent d163cadda1
commit f7980f941b
3 changed files with 15 additions and 11 deletions

View File

@ -3736,6 +3736,7 @@ YAP_CloseList(Term t0, Term tail)
X_API int X_API int
YAP_IsAttVar(Term t) YAP_IsAttVar(Term t)
{ {
CACHE_REGS
t = Deref(t); t = Deref(t);
if (!IsVarTerm(t)) if (!IsVarTerm(t))
return FALSE; return FALSE;
@ -3745,6 +3746,7 @@ YAP_IsAttVar(Term t)
X_API Term X_API Term
YAP_AttsOfVar(Term t) YAP_AttsOfVar(Term t)
{ {
CACHE_REGS
attvar_record *attv; attvar_record *attv;
t = Deref(t); t = Deref(t);
@ -4025,6 +4027,7 @@ YAP_TagOfTerm(Term t)
if (IsVarTerm(t)) { if (IsVarTerm(t)) {
CELL *pt = VarOfTerm(t); CELL *pt = VarOfTerm(t);
if (IsUnboundVar(pt)) { if (IsUnboundVar(pt)) {
CACHE_REGS
if (IsAttVar(pt)) if (IsAttVar(pt))
return YAP_TAG_ATT; return YAP_TAG_ATT;
return YAP_TAG_UNBOUND; return YAP_TAG_UNBOUND;

View File

@ -1375,7 +1375,7 @@ p_atom_concat( USES_REGS1 )
if (wide_mode) { if (wide_mode) {
wchar_t *cptr = (wchar_t *)(((AtomEntry *)Yap_PreAllocCodeSpace())->StrOfAE), *cpt0; wchar_t *cptr = (wchar_t *)(((AtomEntry *)Yap_PreAllocCodeSpace())->StrOfAE), *cpt0;
wchar_t *top = (wchar_t *)AuxSp; wchar_t *top = (wchar_t *)AuxSp;
unsigned char *atom_str; unsigned char *atom_str = NULL;
Atom ahead; Atom ahead;
UInt sz; UInt sz;

View File

@ -60,13 +60,14 @@ blob_type;
#include "inline-only.h" #include "inline-only.h"
INLINE_ONLY inline EXTERN int IsAttVar (CELL *pt); #define IsAttVar(pt) __IsAttVar((pt) PASS_REGS)
INLINE_ONLY inline EXTERN int __IsAttVar (CELL *pt USES_REGS);
INLINE_ONLY inline EXTERN int INLINE_ONLY inline EXTERN int
IsAttVar (CELL *pt) __IsAttVar (CELL *pt USES_REGS)
{ {
#ifdef YAP_H #ifdef YAP_H
CACHE_REGS
return (pt)[-1] == (CELL)attvar_e return (pt)[-1] == (CELL)attvar_e
&& pt < H; && pt < H;
#else #else
@ -547,11 +548,12 @@ IsAttachFunc (Functor f)
#define IsAttachedTerm(t) __IsAttachedTerm(t PASS_REGS)
INLINE_ONLY inline EXTERN Int IsAttachedTerm (Term); INLINE_ONLY inline EXTERN Int __IsAttachedTerm (Term USES_REGS);
INLINE_ONLY inline EXTERN Int INLINE_ONLY inline EXTERN Int
IsAttachedTerm (Term t) __IsAttachedTerm (Term t USES_REGS)
{ {
return (Int) ((IsVarTerm (t) && IsAttVar(VarOfTerm(t)))); return (Int) ((IsVarTerm (t) && IsAttVar(VarOfTerm(t))));
} }
@ -564,17 +566,16 @@ GlobalIsAttachedTerm (Term t)
return (Int) ((IsVarTerm (t) && GlobalIsAttVar(VarOfTerm(t)))); return (Int) ((IsVarTerm (t) && GlobalIsAttVar(VarOfTerm(t))));
} }
INLINE_ONLY inline EXTERN Int SafeIsAttachedTerm (Term); #define SafeIsAttachedTerm(t) __SafeIsAttachedTerm((t) PASS_REGS)
INLINE_ONLY inline EXTERN Int __SafeIsAttachedTerm (Term USES_REGS);
INLINE_ONLY inline EXTERN Int INLINE_ONLY inline EXTERN Int
SafeIsAttachedTerm (Term t) __SafeIsAttachedTerm (Term t USES_REGS)
{ {
return (Int) (IsVarTerm (t) && IsAttVar(VarOfTerm(t))); return (Int) (IsVarTerm (t) && IsAttVar(VarOfTerm(t)));
} }
INLINE_ONLY inline EXTERN exts ExtFromCell (CELL *); INLINE_ONLY inline EXTERN exts ExtFromCell (CELL *);
INLINE_ONLY inline EXTERN exts INLINE_ONLY inline EXTERN exts