-/* When the returned value is in R1 and it is a pointer, so doesn't
- need tagging ... */
-#define STG_CtoI_RET_R1p_Template(label) \
- IFN_(label) \
- { \
- StgPtr bco; \
- FB_ \
- bco = ((StgPtr*)Sp)[1]; \
- Sp -= 1; \
- ((StgPtr*)Sp)[0] = R1.p; \
- Sp -= 1; \
- ((StgPtr*)Sp)[0] = bco; \
- JMP_(stg_yield_to_interpreter); \
- FE_ \
- }
-
-STG_CtoI_RET_R1p_Template(stg_ctoi_ret_R1p_entry);
-STG_CtoI_RET_R1p_Template(stg_ctoi_ret_R1p_0_entry);
-STG_CtoI_RET_R1p_Template(stg_ctoi_ret_R1p_1_entry);
-STG_CtoI_RET_R1p_Template(stg_ctoi_ret_R1p_2_entry);
-STG_CtoI_RET_R1p_Template(stg_ctoi_ret_R1p_3_entry);
-STG_CtoI_RET_R1p_Template(stg_ctoi_ret_R1p_4_entry);
-STG_CtoI_RET_R1p_Template(stg_ctoi_ret_R1p_5_entry);
-STG_CtoI_RET_R1p_Template(stg_ctoi_ret_R1p_6_entry);
-STG_CtoI_RET_R1p_Template(stg_ctoi_ret_R1p_7_entry);
-
-VEC_POLY_INFO_TABLE(stg_ctoi_ret_R1p,0, NULL/*srt*/, 0/*srt_off*/, 0/*srt_len*/, RET_BCO,, EF_);
-
-
-
-/* When the returned value is in R1 and it isn't a pointer. */
-#define STG_CtoI_RET_R1n_Template(label) \
- IFN_(label) \
- { \
- StgPtr bco; \
- FB_ \
- bco = ((StgPtr*)Sp)[1]; \
- Sp -= 1; \
- ((StgPtr*)Sp)[0] = (StgPtr)R1.i; \
- Sp -= 1; \
- ((StgPtr*)Sp)[0] = (StgPtr)1; /* tag */ \
- Sp -= 1; \
- ((StgPtr*)Sp)[0] = bco; \
- JMP_(stg_yield_to_interpreter); \
- FE_ \
- }
-
-STG_CtoI_RET_R1n_Template(stg_ctoi_ret_R1n_entry);
-STG_CtoI_RET_R1n_Template(stg_ctoi_ret_R1n_0_entry);
-STG_CtoI_RET_R1n_Template(stg_ctoi_ret_R1n_1_entry);
-STG_CtoI_RET_R1n_Template(stg_ctoi_ret_R1n_2_entry);
-STG_CtoI_RET_R1n_Template(stg_ctoi_ret_R1n_3_entry);
-STG_CtoI_RET_R1n_Template(stg_ctoi_ret_R1n_4_entry);
-STG_CtoI_RET_R1n_Template(stg_ctoi_ret_R1n_5_entry);
-STG_CtoI_RET_R1n_Template(stg_ctoi_ret_R1n_6_entry);
-STG_CtoI_RET_R1n_Template(stg_ctoi_ret_R1n_7_entry);
-
-VEC_POLY_INFO_TABLE(stg_ctoi_ret_R1n,0, NULL/*srt*/, 0/*srt_off*/, 0/*srt_len*/, RET_BCO,, EF_);
-
-
-
-/* When the returned value is in F1 ... */
-#define STG_CtoI_RET_F1_Template(label) \
- IFN_(label) \
- { \
- StgPtr bco; \
- FB_ \
- bco = ((StgPtr*)Sp)[1]; \
- Sp -= sizeofW(StgFloat); \
- ASSIGN_FLT((W_*)Sp, F1); \
- Sp -= 1; \
- ((StgPtr*)Sp)[0] = (StgPtr)sizeofW(StgFloat); \
- Sp -= 1; \
- ((StgPtr*)Sp)[0] = bco; \
- JMP_(stg_yield_to_interpreter); \
- FE_ \
- }
-
-STG_CtoI_RET_F1_Template(stg_ctoi_ret_F1_entry);
-STG_CtoI_RET_F1_Template(stg_ctoi_ret_F1_0_entry);
-STG_CtoI_RET_F1_Template(stg_ctoi_ret_F1_1_entry);
-STG_CtoI_RET_F1_Template(stg_ctoi_ret_F1_2_entry);
-STG_CtoI_RET_F1_Template(stg_ctoi_ret_F1_3_entry);
-STG_CtoI_RET_F1_Template(stg_ctoi_ret_F1_4_entry);
-STG_CtoI_RET_F1_Template(stg_ctoi_ret_F1_5_entry);
-STG_CtoI_RET_F1_Template(stg_ctoi_ret_F1_6_entry);
-STG_CtoI_RET_F1_Template(stg_ctoi_ret_F1_7_entry);
-
-VEC_POLY_INFO_TABLE(stg_ctoi_ret_F1,0, NULL/*srt*/, 0/*srt_off*/, 0/*srt_len*/, RET_BCO,, EF_);
-
-
-/* When the returned value is in D1 ... */
-#define STG_CtoI_RET_D1_Template(label) \
- IFN_(label) \
- { \
- StgPtr bco; \
- FB_ \
- bco = ((StgPtr*)Sp)[1]; \
- Sp -= sizeofW(StgDouble); \
- ASSIGN_DBL((W_*)Sp, D1); \
- Sp -= 1; \
- ((StgPtr*)Sp)[0] = (StgPtr)sizeofW(StgDouble); \
- Sp -= 1; \
- ((StgPtr*)Sp)[0] = bco; \
- JMP_(stg_yield_to_interpreter); \
- FE_ \