X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Flibjit.c;h=a32742a1f709e05649ceee603a0f2fc8a8960522;hp=da8f25e5ae2dbc786251a01dd1fc6f40164fe4a7;hb=6d8fda8d1cd382e6d6626df5353d285176bd9bf2;hpb=9bcb1df0786a8193d65949c857baaba2f4296e84 diff --git a/src/libjit.c b/src/libjit.c index da8f25e..a32742a 100644 --- a/src/libjit.c +++ b/src/libjit.c @@ -36,13 +36,19 @@ static inline jit_type_t psi_jit_decl_arg_type(struct psi_decl_arg *darg); static inline jit_abi_t psi_jit_abi(const char *convention) { + if (!strcasecmp(convention, "stdcall")) { + return jit_abi_stdcall; + } + if (!strcasecmp(convention, "fastcall")) { + return jit_abi_fastcall; + } return jit_abi_cdecl; } static inline jit_type_t psi_jit_token_type(token_t t) { switch (t) { default: - ZEND_ASSERT(0); + assert(0); /* no break */ case PSI_T_VOID: return jit_type_void; @@ -155,7 +161,7 @@ static unsigned psi_jit_struct_type_elements(struct psi_decl_struct *strct, /* apply struct alignment padding */ offset = (offset + maxalign - 1) & ~(maxalign - 1); - ZEND_ASSERT(offset <= strct->size); + assert(offset <= strct->size); if (offset < strct->size) { nels += psi_jit_struct_type_pad(&(*fields)[nels], strct->size - offset); } @@ -517,7 +523,7 @@ static void psi_jit_call_va(struct psi_context *C, struct psi_call_frame *frame, signature = jit_type_create_signature(jit_abi_vararg, jit_type_get_return(info->signature), param_types, argc + va_count, 1); - ZEND_ASSERT(signature); + assert(signature); info->impl.fn.frame = frame; jit_apply(signature, decl->sym, args, argc, rval);