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:
vsc 2001-07-05 16:14:15 +00:00
parent 1578e68ec3
commit 27526bcb0d
8 changed files with 1040 additions and 908 deletions

View File

@ -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

View File

@ -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? */

View File

@ -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);
} }

View File

@ -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

View File

@ -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), \

View File

@ -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@

1891
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -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