Mercurial > pub > dyncall > dyncall
comparison 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 |
comparison
equal
deleted
inserted
replaced
357:d982a00c2177 | 358:30aae7371373 |
---|---|
201 if(ch == DC_SIGCHAR_CC_PREFIX) | 201 if(ch == DC_SIGCHAR_CC_PREFIX) |
202 { | 202 { |
203 ptr++; | 203 ptr++; |
204 ch = *ptr++; | 204 ch = *ptr++; |
205 switch(ch) { | 205 switch(ch) { |
206 case DC_SIGCHAR_CC_DEFAULT: mode = DC_CALL_C_DEFAULT; break; | |
207 /*@@@ add ellipsis?*/ | |
208 case DC_SIGCHAR_CC_CDECL: mode = DC_CALL_C_X86_CDECL; break; | |
206 case DC_SIGCHAR_CC_STDCALL: mode = DC_CALL_C_X86_WIN32_STD; break; | 209 case DC_SIGCHAR_CC_STDCALL: mode = DC_CALL_C_X86_WIN32_STD; break; |
210 case DC_SIGCHAR_CC_FASTCALL_MS: mode = DC_CALL_C_X86_WIN32_FAST_MS; break; | |
211 case DC_SIGCHAR_CC_FASTCALL_GNU: mode = DC_CALL_C_X86_WIN32_FAST_GNU; break; | |
207 case DC_SIGCHAR_CC_THISCALL_MS: mode = DC_CALL_C_X86_WIN32_THIS_MS; break; | 212 case DC_SIGCHAR_CC_THISCALL_MS: mode = DC_CALL_C_X86_WIN32_THIS_MS; break; |
208 case DC_SIGCHAR_CC_FASTCALL_GNU: mode = DC_CALL_C_X86_WIN32_FAST_GNU; break; | 213 case DC_SIGCHAR_CC_THISCALL_GNU: mode = DC_CALL_C_X86_WIN32_THIS_GNU; break; |
209 case DC_SIGCHAR_CC_FASTCALL_MS: mode = DC_CALL_C_X86_WIN32_FAST_MS; break; | 214 case DC_SIGCHAR_CC_SYSCALL: mode = DC_CALL_SYS_DEFAULT; break; |
210 } | 215 } |
211 } | 216 } |
212 | 217 |
213 /* x86 configuration: */ | 218 /* x86 configuration: */ |
214 | 219 |