Merge branch 'master' of gitosis@yap.dcc.fc.up.pt:yap-6
This commit is contained in:
@@ -3510,6 +3510,7 @@ do_pass(int pass_no, yamop **entry_codep, int assembling, int *clause_has_blobsp
|
||||
if (!ystop_found &&
|
||||
cip->cpc->nextInst != NULL &&
|
||||
(cip->cpc->nextInst->op == mark_initialised_pvars_op ||
|
||||
cip->cpc->nextInst->op == mark_live_regs_op ||
|
||||
cip->cpc->nextInst->op == blob_op)) {
|
||||
ystop_found = TRUE;
|
||||
code_p = a_il((CELL)*entry_codep, _Ystop, code_p, pass_no, cip);
|
||||
|
12
C/arith1.c
12
C/arith1.c
@@ -901,17 +901,7 @@ p_unary_op_as_integer(void)
|
||||
ExpEntry *p;
|
||||
|
||||
if (EndOfPAEntr(p = RepExpProp(Yap_GetExpProp(name, 1)))) {
|
||||
Term ti[2];
|
||||
|
||||
/* error */
|
||||
ti[0] = t;
|
||||
ti[1] = MkIntTerm(1);
|
||||
t = Yap_MkApplTerm(FunctorSlash, 2, ti);
|
||||
Yap_Error(TYPE_ERROR_EVALUABLE, t,
|
||||
"functor %s/%d for arithmetic expression",
|
||||
RepAtom(name)->StrOfAE,2);
|
||||
P = FAILCODE;
|
||||
return(FALSE);
|
||||
return Yap_unify(ARG1,ARG2);
|
||||
}
|
||||
return Yap_unify_constant(ARG2,MkIntTerm(p->FOfEE));
|
||||
}
|
||||
|
12
C/arith2.c
12
C/arith2.c
@@ -1242,17 +1242,7 @@ p_binary_op_as_integer(void)
|
||||
ExpEntry *p;
|
||||
|
||||
if (EndOfPAEntr(p = RepExpProp(Yap_GetExpProp(name, 2)))) {
|
||||
Term ti[2];
|
||||
|
||||
/* error */
|
||||
ti[0] = t;
|
||||
ti[1] = MkIntTerm(1);
|
||||
t = Yap_MkApplTerm(FunctorSlash, 2, ti);
|
||||
Yap_Error(TYPE_ERROR_EVALUABLE, t,
|
||||
"functor %s/%d for arithmetic expression",
|
||||
RepAtom(name)->StrOfAE,2);
|
||||
P = FAILCODE;
|
||||
return(FALSE);
|
||||
return Yap_unify(ARG1,ARG2);
|
||||
}
|
||||
return Yap_unify_constant(ARG2,MkIntTerm(p->FOfEE));
|
||||
}
|
||||
|
23
C/cmppreds.c
23
C/cmppreds.c
@@ -643,8 +643,11 @@ p_acomp(void)
|
||||
{ /* $a_compare(?R,+X,+Y) */
|
||||
Term t1 = Deref(ARG1);
|
||||
Term t2 = Deref(ARG2);
|
||||
Int out;
|
||||
|
||||
return a_cmp(t1, t2);
|
||||
out = a_cmp(t1, t2);
|
||||
if (ArithError) { Yap_Error(Yap_Error_TYPE, Yap_Error_Term, Yap_ErrorMessage); return FALSE; }
|
||||
return out;
|
||||
}
|
||||
|
||||
static Int
|
||||
@@ -675,42 +678,48 @@ a_eq(Term t1, Term t2)
|
||||
}
|
||||
}
|
||||
out = a_cmp(t1,t2);
|
||||
return !ArithError && (out == 0);
|
||||
if (ArithError) { Yap_Error(Yap_Error_TYPE, Yap_Error_Term, Yap_ErrorMessage); return FALSE; }
|
||||
return out == 0;
|
||||
}
|
||||
|
||||
static Int
|
||||
a_dif(Term t1, Term t2)
|
||||
{
|
||||
Int out = a_cmp(Deref(t1),Deref(t2));
|
||||
return !ArithError && out != 0;
|
||||
if (ArithError) { Yap_Error(Yap_Error_TYPE, Yap_Error_Term, Yap_ErrorMessage); return FALSE; }
|
||||
return out != 0;
|
||||
}
|
||||
|
||||
static Int
|
||||
a_gt(Term t1, Term t2)
|
||||
{ /* A > B */
|
||||
Int out = a_cmp(Deref(t1),Deref(t2));
|
||||
return !ArithError && out > 0;
|
||||
if (ArithError) { Yap_Error(Yap_Error_TYPE, Yap_Error_Term, Yap_ErrorMessage); return FALSE; }
|
||||
return out > 0;
|
||||
}
|
||||
|
||||
static Int
|
||||
a_ge(Term t1, Term t2)
|
||||
{ /* A >= B */
|
||||
Int out = a_cmp(Deref(t1),Deref(t2));
|
||||
return !ArithError && out >= 0;
|
||||
if (ArithError) { Yap_Error(Yap_Error_TYPE, Yap_Error_Term, Yap_ErrorMessage); return FALSE; }
|
||||
return out >= 0;
|
||||
}
|
||||
|
||||
static Int
|
||||
a_lt(Term t1, Term t2)
|
||||
{ /* A < B */
|
||||
Int out = a_cmp(Deref(t1),Deref(t2));
|
||||
return !ArithError && out < 0;
|
||||
if (ArithError) { Yap_Error(Yap_Error_TYPE, Yap_Error_Term, Yap_ErrorMessage); return FALSE; }
|
||||
return out < 0;
|
||||
}
|
||||
|
||||
static Int
|
||||
a_le(Term t1, Term t2)
|
||||
{ /* A <= B */
|
||||
Int out = a_cmp(Deref(t1),Deref(t2));
|
||||
return !ArithError && out <= 0;
|
||||
if (ArithError) { Yap_Error(Yap_Error_TYPE, Yap_Error_Term, Yap_ErrorMessage); return FALSE; }
|
||||
return out <= 0;
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user