[project @ 2001-03-01 17:06:53 by simonpj]
[ghc-hetmet.git] / ghc / rts / ForeignCall.c
index 66e5477..7dc5661 100644 (file)
@@ -1,6 +1,6 @@
 
 /* -----------------------------------------------------------------------------
- * $Id: ForeignCall.c,v 1.16 2000/05/12 11:59:39 sewardj Exp $
+ * $Id: ForeignCall.c,v 1.19 2000/10/09 10:28:33 daan Exp $
  *
  * (c) The GHC Team 1994-1999.
  *
@@ -205,7 +205,8 @@ static void universal_call_c_generic
       printf("%c",(char)argstr[i]);
     }
     printf("' [%d arg(s)]\n",n_args);
-    assert(0);
+    barf("aborting");
+    ASSERT(0);
   }
 #undef CALL
 #undef CMP
@@ -316,7 +317,6 @@ int ccall ( CFunDescriptor*  d,
    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
@@ -335,7 +335,6 @@ int ccall ( CFunDescriptor*  d,
    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
@@ -430,7 +429,7 @@ unpackArgsAndCallHaskell_x86_nocallconv_wrk ( StgStablePtr stableptr,
    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: