comparison dyncall/dyncall_callvm_mips_o32.c @ 533:71c884e610f0

- integration of patches from Raphael Luba, Thekla, Inc.: * integration of aggregate-by-value (struct, union) support patch for x64 (win and sysv) * windows/x64 asm additions to specify how stack unwinds (help for debuggers, exception handling, etc.) * see Changelog for details - new calling convention modes for thiscalls (platform agnostic, was specific before) * new signature character for platform agnostic thiscalls ('*' / DC_SIGCHAR_CC_THISCALL) - dcCallF(), dcVCallF(), dcArgF() and dcVArgF(): * added support for aggregates-by-value (wasn't part of patch) * change that those functions don't implicitly call dcReset() anymore, which was unflexible (breaking change) - added macros to feature test implementation for aggregate-by-value and syscall support - changed libdyncall_s.lib and libdyncallback_s.lib order in callback test makefiles, as some toolchains are picky about order - doc: * man page updates to describe aggregate interface * manual overview changes to highlight platforms with aggregate-by-value support - test/plain: replaced tests w/ old/stale sctruct interface with new aggregate one
author Tassilo Philipp
date Thu, 21 Apr 2022 13:35:47 +0200
parents ddfb9577a00e
children
comparison
equal deleted inserted replaced
532:d4bf63ab9164 533:71c884e610f0
197 , &dc_callvm_argLong_mips_o32 197 , &dc_callvm_argLong_mips_o32
198 , &dc_callvm_argLongLong_mips_o32 198 , &dc_callvm_argLongLong_mips_o32
199 , &dc_callvm_argFloat_mips_o32 199 , &dc_callvm_argFloat_mips_o32
200 , &dc_callvm_argDouble_mips_o32 200 , &dc_callvm_argDouble_mips_o32
201 , &dc_callvm_argPointer_mips_o32 201 , &dc_callvm_argPointer_mips_o32
202 , NULL /* argStruct */ 202 , NULL /* argAggr */
203 , (DCvoidvmfunc*) &dc_callvm_call_mips_o32 203 , (DCvoidvmfunc*) &dc_callvm_call_mips_o32
204 , (DCboolvmfunc*) &dc_callvm_call_mips_o32 204 , (DCboolvmfunc*) &dc_callvm_call_mips_o32
205 , (DCcharvmfunc*) &dc_callvm_call_mips_o32 205 , (DCcharvmfunc*) &dc_callvm_call_mips_o32
206 , (DCshortvmfunc*) &dc_callvm_call_mips_o32 206 , (DCshortvmfunc*) &dc_callvm_call_mips_o32
207 , (DCintvmfunc*) &dc_callvm_call_mips_o32 207 , (DCintvmfunc*) &dc_callvm_call_mips_o32
208 , (DClongvmfunc*) &dc_callvm_call_mips_o32 208 , (DClongvmfunc*) &dc_callvm_call_mips_o32
209 , (DClonglongvmfunc*) &dc_callvm_call_mips_o32 209 , (DClonglongvmfunc*) &dc_callvm_call_mips_o32
210 , (DCfloatvmfunc*) &dc_callvm_call_mips_o32 210 , (DCfloatvmfunc*) &dc_callvm_call_mips_o32
211 , (DCdoublevmfunc*) &dc_callvm_call_mips_o32 211 , (DCdoublevmfunc*) &dc_callvm_call_mips_o32
212 , (DCpointervmfunc*) &dc_callvm_call_mips_o32 212 , (DCpointervmfunc*) &dc_callvm_call_mips_o32
213 , NULL /* callStruct */ 213 , NULL /* callAggr */
214 , NULL /* beginAggr */
214 }; 215 };
215 216
216 /* mode: only a single mode available currently. */ 217 /* mode: only a single mode available currently. */
217 static void dc_callvm_mode_mips_o32(DCCallVM* in_self, DCint mode) 218 static void dc_callvm_mode_mips_o32(DCCallVM* in_self, DCint mode)
218 { 219 {