X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Frts%2FForeignCall.c;h=7dc5661116e217cc899c48e8049f87d2c8ef3d00;hb=13e5656c90686321f36ab51a29b285a1b83d7366;hp=66e547713ae5363300854bb8aba2420de8c53988;hpb=9f0b4b7582b3e98ea80c20a142e1b97825c92a99;p=ghc-hetmet.git diff --git a/ghc/rts/ForeignCall.c b/ghc/rts/ForeignCall.c index 66e5477..7dc5661 100644 --- a/ghc/rts/ForeignCall.c +++ b/ghc/rts/ForeignCall.c @@ -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: