/* -----------------------------------------------------------------------------
- * $Id: ForeignCall.c,v 1.14 2000/04/11 16:49:20 sewardj Exp $
+ * $Id: ForeignCall.c,v 1.19 2000/10/09 10:28:33 daan Exp $
*
* (c) The GHC Team 1994-1999.
*
printf("%c",(char)argstr[i]);
}
printf("' [%d arg(s)]\n",n_args);
- assert(0);
+ barf("aborting");
+ ASSERT(0);
}
#undef CALL
#undef CMP
PushPtr((StgPtr)(*bco));
cap->rCurrentTSO->sp = MainRegTable.rSp;
cap->rCurrentTSO->su = MainRegTable.rSu;
- cap->rCurrentTSO->splim = MainRegTable.rSpLim;
token = suspendThread(cap);
#if i386_TARGET_ARCH
cap = resumeThread(token);
MainRegTable.rSp = cap->rCurrentTSO->sp;
MainRegTable.rSu = cap->rCurrentTSO->su;
- MainRegTable.rSpLim = cap->rCurrentTSO->splim;
*bco=(StgBCO*)PopPtr();
/* INT, WORD, ADDR, STABLE don't need to do a word-size check
/* Make it possible for the evaluator to get hold of bytecode
for a given function by name. Useful but a hack. Sigh.
*/
-extern void* getHugs_AsmObject_for ( char* s );
+extern void* /* StgClosure* */ getHugs_BCO_cptr_for ( char* s );
extern int /*Bool*/ combined;
/* ----------------------------------------------------------------*
while (*argp) {
switch (*argp) {
case CHAR_REP:
- node = rts_apply ( node, rts_mkChar ( *(char*)args ) );
+ node = rts_apply ( node, rts_mkChar ( *(unsigned int*)args ) );
args += 4;
break;
case INT_REP:
sstat = rts_evalIO ( node, &nodeOut );
} else {
node = rts_apply (
- asmClosureOfObject(getHugs_AsmObject_for("primRunST")),
+ getHugs_BCO_cptr_for("runST"),
node );
sstat = rts_eval ( node, &nodeOut );
}