improve support for cross-compilation with simplesimscalar
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@117 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
parent
1578e68ec3
commit
27526bcb0d
@ -1897,7 +1897,7 @@ AssignPerm(PInstr *pc)
|
|||||||
else
|
else
|
||||||
v->NoOfVE = v->KindOfVE = TempVar;
|
v->NoOfVE = v->KindOfVE = TempVar;
|
||||||
}
|
}
|
||||||
} else if (pc->op == pc->op == empty_call_op) {
|
} else if (pc->op == empty_call_op) {
|
||||||
pc->rnd2 = nperm;
|
pc->rnd2 = nperm;
|
||||||
} else if (pc->op == call_op || pc->op == either_op || pc->op == orelse_op || pc->op == push_or_op) {
|
} else if (pc->op == call_op || pc->op == either_op || pc->op == orelse_op || pc->op == push_or_op) {
|
||||||
#ifdef LOCALISE_VOIDS
|
#ifdef LOCALISE_VOIDS
|
||||||
|
@ -2958,10 +2958,12 @@ clean_lu_index(DBRef index) {
|
|||||||
if (!DBREF_IN_USE(ref)) {
|
if (!DBREF_IN_USE(ref)) {
|
||||||
UNLOCK(ref->lock);
|
UNLOCK(ref->lock);
|
||||||
RemoveDBEntry(ref);
|
RemoveDBEntry(ref);
|
||||||
} else
|
} else {
|
||||||
UNLOCK(ref->lock);
|
UNLOCK(ref->lock);
|
||||||
} else
|
}
|
||||||
|
} else {
|
||||||
UNLOCK(ref->lock);
|
UNLOCK(ref->lock);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
UNLOCK(index->lock);
|
UNLOCK(index->lock);
|
||||||
/* can I get rid of this index? */
|
/* can I get rid of this index? */
|
||||||
|
12
C/exec.c
12
C/exec.c
@ -1018,14 +1018,16 @@ execute_goal(Term t, int nargs)
|
|||||||
}
|
}
|
||||||
pe = GetPredProp(a, arity);
|
pe = GetPredProp(a, arity);
|
||||||
ppe = RepPredProp(pe);
|
ppe = RepPredProp(pe);
|
||||||
if (pe != NIL)
|
if (pe != NIL) {
|
||||||
READ_LOCK(ppe->PRWLock);
|
READ_LOCK(ppe->PRWLock);
|
||||||
|
}
|
||||||
if (pe == NIL ||
|
if (pe == NIL ||
|
||||||
ppe->OpcodeOfPred == UNDEF_OPCODE ||
|
ppe->OpcodeOfPred == UNDEF_OPCODE ||
|
||||||
ppe->PredFlags & (UserCPredFlag|CPredFlag|BasicPredFlag) )
|
ppe->PredFlags & (UserCPredFlag|CPredFlag|BasicPredFlag) )
|
||||||
{
|
{
|
||||||
if (pe != NIL)
|
if (pe != NIL) {
|
||||||
READ_UNLOCK(ppe->PRWLock);
|
READ_UNLOCK(ppe->PRWLock);
|
||||||
|
}
|
||||||
return(CallMetaCall());
|
return(CallMetaCall());
|
||||||
}
|
}
|
||||||
CodeAdr = RepPredProp (PredProp (a, arity))->CodeOfPred;
|
CodeAdr = RepPredProp (PredProp (a, arity))->CodeOfPred;
|
||||||
@ -1172,14 +1174,16 @@ RunTopGoal(Term t)
|
|||||||
}
|
}
|
||||||
pe = GetPredProp(a, arity);
|
pe = GetPredProp(a, arity);
|
||||||
ppe = RepPredProp(pe);
|
ppe = RepPredProp(pe);
|
||||||
if (pe != NIL)
|
if (pe != NIL) {
|
||||||
READ_LOCK(ppe->PRWLock);
|
READ_LOCK(ppe->PRWLock);
|
||||||
|
}
|
||||||
if (pe == NIL ||
|
if (pe == NIL ||
|
||||||
ppe->OpcodeOfPred == UNDEF_OPCODE ||
|
ppe->OpcodeOfPred == UNDEF_OPCODE ||
|
||||||
ppe->PredFlags & (UserCPredFlag|CPredFlag|BasicPredFlag) )
|
ppe->PredFlags & (UserCPredFlag|CPredFlag|BasicPredFlag) )
|
||||||
{
|
{
|
||||||
if (pe != NIL)
|
if (pe != NIL) {
|
||||||
READ_UNLOCK(ppe->PRWLock);
|
READ_UNLOCK(ppe->PRWLock);
|
||||||
|
}
|
||||||
/* we must always start the emulator with Prolog code */
|
/* we must always start the emulator with Prolog code */
|
||||||
return(FALSE);
|
return(FALSE);
|
||||||
}
|
}
|
||||||
|
4
C/init.c
4
C/init.c
@ -1087,8 +1087,8 @@ InitStacks(int Heap,
|
|||||||
/* sanity checking for data areas */
|
/* sanity checking for data areas */
|
||||||
if (Trail < MinTrailSpace)
|
if (Trail < MinTrailSpace)
|
||||||
Trail = MinTrailSpace;
|
Trail = MinTrailSpace;
|
||||||
// if (Stack < MinStackSpace)
|
if (Stack < MinStackSpace)
|
||||||
// Stack = MinStackSpace;
|
Stack = MinStackSpace;
|
||||||
#if defined(YAPOR) || defined(TABLING)
|
#if defined(YAPOR) || defined(TABLING)
|
||||||
{
|
{
|
||||||
#ifdef USE_HEAP
|
#ifdef USE_HEAP
|
||||||
|
@ -479,11 +479,7 @@ p_minus(Term t1, Term t2 E_ARGS)
|
|||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#ifdef __i386__
|
#ifdef __i386__
|
||||||
#define DO_MULTI() { Int tmp1; \
|
#define DO_MULTI() { Int tmp1; \
|
||||||
__asm__ ("imull %3
|
__asm__ ("imull %3\n\t movl $0,%1\n\t jno 0f\n\t movl $1,%1\n\t 0:" \
|
||||||
movl $0,%1
|
|
||||||
jno 0f
|
|
||||||
movl $1,%1
|
|
||||||
0:" \
|
|
||||||
: "=a" (z), \
|
: "=a" (z), \
|
||||||
"=d" (tmp1) \
|
"=d" (tmp1) \
|
||||||
: "a" (i1), \
|
: "a" (i1), \
|
||||||
|
@ -70,6 +70,7 @@ M4GENABSMI=$(srcdir)/@M4GENABSMI@
|
|||||||
INDENT=@INDENT@
|
INDENT=@INDENT@
|
||||||
SHELL=/bin/sh
|
SHELL=/bin/sh
|
||||||
RANLIB=@RANLIB@
|
RANLIB=@RANLIB@
|
||||||
|
AR=@AR@
|
||||||
srcdir=@srcdir@
|
srcdir=@srcdir@
|
||||||
SHLIB_SUFFIX=@SHLIB_SUFFIX@
|
SHLIB_SUFFIX=@SHLIB_SUFFIX@
|
||||||
MAKEINFO=makeinfo
|
MAKEINFO=makeinfo
|
||||||
@ -439,14 +440,14 @@ mycb: $(srcdir)/mycb.c
|
|||||||
|
|
||||||
startup: yap $(PL_SOURCES)
|
startup: yap $(PL_SOURCES)
|
||||||
-rm -f startup
|
-rm -f startup
|
||||||
echo "['$(srcdir)/pl/init.yap']. save_program(startup)." | ./yap -b $(srcdir)/pl/boot.yap
|
echo "['$(srcdir)/pl/init.yap']. save_program(startup)." | @CROSS_SIMULATOR@ ./yap -b $(srcdir)/pl/boot.yap
|
||||||
|
|
||||||
yap: $(HEADERS) yap.o @YAPLIB@
|
yap: $(HEADERS) yap.o @YAPLIB@
|
||||||
$(CC) $(STANDARD_CFLAGS) $(LDFLAGS) -o yap yap.o @YAPLIB@ $(LIBS)
|
$(CC) $(STANDARD_CFLAGS) $(LDFLAGS) -o yap yap.o @YAPLIB@ $(LIBS)
|
||||||
|
|
||||||
libYap.a: $(LIB_OBJECTS)
|
libYap.a: $(LIB_OBJECTS)
|
||||||
-rm -f libYap.a
|
-rm -f libYap.a
|
||||||
ar rc libYap.a $(LIB_OBJECTS)
|
$(AR) rc libYap.a $(LIB_OBJECTS)
|
||||||
$(RANLIB) libYap.a
|
$(RANLIB) libYap.a
|
||||||
|
|
||||||
install: @INSTALL_COMMAND@
|
install: @INSTALL_COMMAND@
|
||||||
|
22
configure.in
22
configure.in
@ -11,13 +11,6 @@ AC_PROG_CC
|
|||||||
AC_SUBST(GCC)
|
AC_SUBST(GCC)
|
||||||
AC_SUBST(C_INTERF_FLAGS)
|
AC_SUBST(C_INTERF_FLAGS)
|
||||||
|
|
||||||
dnl Checks for programs.
|
|
||||||
AC_PROG_LN_S
|
|
||||||
AC_PROG_INSTALL
|
|
||||||
AC_PROG_RANLIB
|
|
||||||
AC_CHECK_PROGS(INDENT,indent true)
|
|
||||||
AC_PATH_PROG(INSTALL_INFO,install-info,true,$PATH:/sbin:/usr/sbin:/usr/etc:/usr/local/sbin)
|
|
||||||
|
|
||||||
AC_ARG_ENABLE(rational-trees,
|
AC_ARG_ENABLE(rational-trees,
|
||||||
[ --enable-rational-trees support infinite rational trees ],
|
[ --enable-rational-trees support infinite rational trees ],
|
||||||
rationaltrees="$enableval" ; rationaltrees=no)
|
rationaltrees="$enableval" ; rationaltrees=no)
|
||||||
@ -119,6 +112,12 @@ then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
if test "$CC" = "sslittle-na-sstrix-gcc"
|
||||||
|
then
|
||||||
|
RANLIB="sslittle-na-sstrix-ranlib"
|
||||||
|
AR="sslittle-na-sstrix-ar"
|
||||||
|
CROSS_SIMULATOR="sim-fast"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
if test -z "${mycflags}"
|
if test -z "${mycflags}"
|
||||||
then
|
then
|
||||||
@ -159,7 +158,16 @@ else
|
|||||||
C_INTERF_FLAGS="$CFLAGS"
|
C_INTERF_FLAGS="$CFLAGS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl Checks for programs.
|
||||||
|
AC_PROG_LN_S
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
AC_PROG_RANLIB
|
||||||
|
AC_CHECK_TOOL(INDENT,indent,true)
|
||||||
|
AC_CHECK_TOOL(AR,ar,true)
|
||||||
|
AC_PATH_PROG(INSTALL_INFO,install-info,true,$PATH:/sbin:/usr/sbin:/usr/etc:/usr/local/sbin)
|
||||||
|
|
||||||
AC_SUBST(INSTALL_COMMAND)
|
AC_SUBST(INSTALL_COMMAND)
|
||||||
|
AC_SUBST(CROSS_SIMULATOR)
|
||||||
|
|
||||||
dnl Check for libraries.
|
dnl Check for libraries.
|
||||||
dnl mingw does not get along well with libm
|
dnl mingw does not get along well with libm
|
||||||
|
Reference in New Issue
Block a user