215
215
FUNC_MODIFIES(*call_object)
216
216
FUNC_MODIFIES(*args);
219
void Parrot_pcc_set_call_from_c_args(PARROT_INTERP,
220
ARGIN(PMC *signature),
221
ARGIN(const char *sig),
223
__attribute__nonnull__(1)
224
__attribute__nonnull__(2)
225
__attribute__nonnull__(3);
228
void Parrot_pcc_set_call_from_varargs(PARROT_INTERP,
229
ARGIN(PMC *signature),
230
ARGIN(const char *sig),
231
ARGMOD(va_list *args))
232
__attribute__nonnull__(1)
233
__attribute__nonnull__(2)
234
__attribute__nonnull__(3)
235
__attribute__nonnull__(4)
236
FUNC_MODIFIES(*args);
218
238
void Parrot_pcc_merge_signature_for_tailcall(PARROT_INTERP,
219
ARGMOD_NULLOK(PMC * parent),
220
ARGMOD_NULLOK(PMC * tailcall))
240
ARGMOD(PMC *tailcall))
221
241
__attribute__nonnull__(1)
222
FUNC_MODIFIES(* parent)
223
FUNC_MODIFIES(* tailcall);
242
__attribute__nonnull__(2)
243
__attribute__nonnull__(3)
244
FUNC_MODIFIES(*parent)
245
FUNC_MODIFIES(*tailcall);
225
247
PARROT_CAN_RETURN_NULL
226
248
void Parrot_pcc_parse_signature_string(PARROT_INTERP,
277
299
PARROT_ASSERT_ARG(interp) \
278
300
, PARROT_ASSERT_ARG(signature) \
279
301
, PARROT_ASSERT_ARG(args))
302
#define ASSERT_ARGS_Parrot_pcc_set_call_from_c_args \
303
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
304
PARROT_ASSERT_ARG(interp) \
305
, PARROT_ASSERT_ARG(signature) \
306
, PARROT_ASSERT_ARG(sig))
307
#define ASSERT_ARGS_Parrot_pcc_set_call_from_varargs \
308
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
309
PARROT_ASSERT_ARG(interp) \
310
, PARROT_ASSERT_ARG(signature) \
311
, PARROT_ASSERT_ARG(sig) \
312
, PARROT_ASSERT_ARG(args))
280
313
#define ASSERT_ARGS_Parrot_pcc_merge_signature_for_tailcall \
281
314
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
282
PARROT_ASSERT_ARG(interp))
315
PARROT_ASSERT_ARG(interp) \
316
, PARROT_ASSERT_ARG(parent) \
317
, PARROT_ASSERT_ARG(tailcall))
283
318
#define ASSERT_ARGS_Parrot_pcc_parse_signature_string \
284
319
__attribute__unused__ int _ASSERT_ARGS_CHECK = (\
285
320
PARROT_ASSERT_ARG(interp) \
345
380
PARROT_PURE_FUNCTION
346
381
PARROT_CANNOT_RETURN_NULL
347
Regs_ni* Parrot_pcc_get_regs_ni(SHIM_INTERP, ARGIN(const PMC *ctx))
382
Regs_ni* Parrot_pcc_get_regs_ni(PARROT_INTERP, ARGIN(const PMC *ctx))
348
383
__attribute__nonnull__(2);
351
386
PARROT_PURE_FUNCTION
352
387
PARROT_CANNOT_RETURN_NULL
353
Regs_ps* Parrot_pcc_get_regs_ps(SHIM_INTERP, ARGIN(PMC *ctx))
388
Regs_ps* Parrot_pcc_get_regs_ps(PARROT_INTERP, ARGIN(PMC *ctx))
354
389
__attribute__nonnull__(2);
357
392
PARROT_PURE_FUNCTION
358
UINTVAL Parrot_pcc_get_regs_used(SHIM_INTERP,
393
UINTVAL Parrot_pcc_get_regs_used(PARROT_INTERP,
359
394
ARGIN(const PMC *ctx),
361
396
__attribute__nonnull__(2);
384
419
PARROT_CANNOT_RETURN_NULL
385
void Parrot_pcc_set_regs_ni(SHIM_INTERP,
420
void Parrot_pcc_set_regs_ni(PARROT_INTERP,
387
422
ARGIN(Regs_ni *bp))
388
423
__attribute__nonnull__(2)
392
427
PARROT_CANNOT_RETURN_NULL
393
void Parrot_pcc_set_regs_ps(SHIM_INTERP,
428
void Parrot_pcc_set_regs_ps(PARROT_INTERP,
395
430
ARGIN(Regs_ps *bp_ps))
396
431
__attribute__nonnull__(2)
397
432
__attribute__nonnull__(3);
400
void Parrot_pcc_set_regs_used(SHIM_INTERP,
435
void Parrot_pcc_set_regs_used(PARROT_INTERP,
450
485
__attribute__nonnull__(2);
452
487
PARROT_CANNOT_RETURN_NULL
453
PMC * Parrot_pcc_init_context(SHIM_INTERP,
488
PMC * Parrot_pcc_init_context(PARROT_INTERP,
455
490
ARGIN_NULLOK(PMC *old))
456
491
__attribute__nonnull__(2);