X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FException.cmm;h=6815b791739a5fc1c3c5d1e364cd9ea22d3f68fd;hp=a0a6db4fc7c9ef2c8d3bbdac58a63b5421a501a0;hb=c004ec62b41aa2137b5b5e298ca562609b0de92e;hpb=d31dfb32ea936c22628b508c28a36c12e631430a diff --git a/rts/Exception.cmm b/rts/Exception.cmm index a0a6db4..6815b79 100644 --- a/rts/Exception.cmm +++ b/rts/Exception.cmm @@ -13,6 +13,10 @@ #include "Cmm.h" #include "RaiseAsync.h" +#ifdef __PIC__ +import base_GHCziBase_True_closure; +#endif + /* ----------------------------------------------------------------------------- Exception Primitives @@ -426,14 +430,15 @@ retry_pop_stack: // be per-thread. W_[rts_stop_on_exception] = 0; ("ptr" ioAction) = foreign "C" deRefStablePtr (W_[rts_breakpoint_io_action] "ptr") []; - Sp = Sp - WDS(6); - Sp(5) = exception; - Sp(4) = stg_raise_ret_info; + Sp = Sp - WDS(7); + Sp(6) = exception; + Sp(5) = stg_raise_ret_info; + Sp(4) = stg_noforceIO_info; // required for unregisterised Sp(3) = exception; // the AP_STACK Sp(2) = base_GHCziBase_True_closure; // dummy breakpoint info Sp(1) = base_GHCziBase_True_closure; // True <=> a breakpoint R1 = ioAction; - jump stg_ap_pppv_info; + jump RET_LBL(stg_ap_pppv); } }