X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=includes%2FStgMiscClosures.h;h=10e4638ca457abe80f1be082faa72d83a71e3ede;hb=f3a381ed3888bf634e91400e52204ab2252567d2;hp=c82ec05bd4405c90571f33d0f4b464835c912cf3;hpb=c245355e6f2c7b7c95e9af910c4d420e13af9413;p=ghc-hetmet.git diff --git a/includes/StgMiscClosures.h b/includes/StgMiscClosures.h index c82ec05..10e4638 100644 --- a/includes/StgMiscClosures.h +++ b/includes/StgMiscClosures.h @@ -8,6 +8,8 @@ * our Cmm code generator doesn't know how to generate local symbols * for the RTS bits (it assumes all RTS symbols are external). * + * See wiki:Commentary/Compiler/Backends/PprC#Prototypes + * * --------------------------------------------------------------------------*/ #ifndef STGMISCCLOSURES_H @@ -48,8 +50,12 @@ RTS_RET_INFO(stg_catch_stm_frame_info); RTS_ENTRY(stg_upd_frame_ret); RTS_ENTRY(stg_marked_upd_frame_ret); -/* Entry code for constructors created by the bytecode interpreter */ -RTS_FUN(stg_interp_constr_entry); +// RTS_FUN(stg_interp_constr_entry); +// +// This is referenced using the FFI in the compiler (ByteCodeItbls), +// so we can't give it the correct type here because the prototypes +// would clash (FFI references are always declared with type StgWord[] +// in the generated C code). /* Magic glue code for when compiled code returns a value in R1/F1/D1 or a VoidRep to the interpreter. */ @@ -495,10 +501,6 @@ RTS_FUN(stg_init); RTS_FUN(StgReturn); -extern int rts_stop_next_breakpoint; -extern int rts_stop_on_exception; -extern void *rts_breakpoint_io_action; - /* ----------------------------------------------------------------------------- PrimOps -------------------------------------------------------------------------- */ @@ -605,9 +607,15 @@ RTS_FUN(getApStackValzh_fast); RTS_FUN(noDuplicatezh_fast); /* Other misc stuff */ +// See wiki:Commentary/Compiler/Backends/PprC#Prototypes #if IN_STG_CODE && !IN_STGCRUN +// Interpreter.c +extern StgWord rts_stop_next_breakpoint[]; +extern StgWord rts_stop_on_exception[]; +extern StgWord rts_breakpoint_io_action[]; + // Schedule.c extern int RTS_VAR(context_switch); extern StgWord RTS_VAR(blocked_queue_hd), RTS_VAR(blocked_queue_tl); @@ -618,6 +626,8 @@ extern StgWord RTS_VAR(sched_mutex); // Apply.cmm // canned bitmap for each arg type extern StgWord stg_arg_bitmaps[]; +extern StgWord stg_ap_stack_entries[]; +extern StgWord stg_stack_save_entries[]; // Storage.c extern unsigned int RTS_VAR(alloc_blocks);