Mercurial > pub > dyncall > dyncall
diff dyncallback/dyncall_callback_x86.c @ 358:30aae7371373
- extended signature with calling convention mode switches for fastcall (gnu), default, cdecl, stdcall, arm (arm), arm (thumb), syscall
- made formatted call (dcV?{Call,Arg}F) interface use those calling convention mode signature specifications to begin with
- extended callf testcode with one standard and one vararg call to test those cc mode switches
author | Tassilo Philipp |
---|---|
date | Mon, 13 Apr 2020 15:12:01 +0200 |
parents | f5577f6bf97a |
children | 3bdd326dc269 |
line wrap: on
line diff
--- a/dyncallback/dyncall_callback_x86.c Tue Feb 25 18:16:13 2020 +0100 +++ b/dyncallback/dyncall_callback_x86.c Mon Apr 13 15:12:01 2020 +0200 @@ -203,10 +203,15 @@ ptr++; ch = *ptr++; switch(ch) { + case DC_SIGCHAR_CC_DEFAULT: mode = DC_CALL_C_DEFAULT; break; + /*@@@ add ellipsis?*/ + case DC_SIGCHAR_CC_CDECL: mode = DC_CALL_C_X86_CDECL; break; case DC_SIGCHAR_CC_STDCALL: mode = DC_CALL_C_X86_WIN32_STD; break; + case DC_SIGCHAR_CC_FASTCALL_MS: mode = DC_CALL_C_X86_WIN32_FAST_MS; break; + case DC_SIGCHAR_CC_FASTCALL_GNU: mode = DC_CALL_C_X86_WIN32_FAST_GNU; break; case DC_SIGCHAR_CC_THISCALL_MS: mode = DC_CALL_C_X86_WIN32_THIS_MS; break; - case DC_SIGCHAR_CC_FASTCALL_GNU: mode = DC_CALL_C_X86_WIN32_FAST_GNU; break; - case DC_SIGCHAR_CC_FASTCALL_MS: mode = DC_CALL_C_X86_WIN32_FAST_MS; break; + case DC_SIGCHAR_CC_THISCALL_GNU: mode = DC_CALL_C_X86_WIN32_THIS_GNU; break; + case DC_SIGCHAR_CC_SYSCALL: mode = DC_CALL_SYS_DEFAULT; break; } }