comparison dyncall/dyncall_callvm_mips_eabi.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
137 , &dc_callvm_argLong_mips_eabi 137 , &dc_callvm_argLong_mips_eabi
138 , &dc_callvm_argLongLong_mips_eabi 138 , &dc_callvm_argLongLong_mips_eabi
139 , &dc_callvm_argFloat_mips_eabi 139 , &dc_callvm_argFloat_mips_eabi
140 , &dc_callvm_argDouble_mips_eabi 140 , &dc_callvm_argDouble_mips_eabi
141 , &dc_callvm_argPointer_mips_eabi 141 , &dc_callvm_argPointer_mips_eabi
142 , NULL /* argStruct */ 142 , NULL /* argAggr */
143 , (DCvoidvmfunc*) &dc_callvm_call_mips_eabi 143 , (DCvoidvmfunc*) &dc_callvm_call_mips_eabi
144 , (DCboolvmfunc*) &dc_callvm_call_mips_eabi 144 , (DCboolvmfunc*) &dc_callvm_call_mips_eabi
145 , (DCcharvmfunc*) &dc_callvm_call_mips_eabi 145 , (DCcharvmfunc*) &dc_callvm_call_mips_eabi
146 , (DCshortvmfunc*) &dc_callvm_call_mips_eabi 146 , (DCshortvmfunc*) &dc_callvm_call_mips_eabi
147 , (DCintvmfunc*) &dc_callvm_call_mips_eabi 147 , (DCintvmfunc*) &dc_callvm_call_mips_eabi
148 , (DClongvmfunc*) &dc_callvm_call_mips_eabi 148 , (DClongvmfunc*) &dc_callvm_call_mips_eabi
149 , (DClonglongvmfunc*) &dc_callvm_call_mips_eabi 149 , (DClonglongvmfunc*) &dc_callvm_call_mips_eabi
150 , (DCfloatvmfunc*) &dc_callvm_call_mips_eabi 150 , (DCfloatvmfunc*) &dc_callvm_call_mips_eabi
151 , (DCdoublevmfunc*) &dc_callvm_call_mips_eabi 151 , (DCdoublevmfunc*) &dc_callvm_call_mips_eabi
152 , (DCpointervmfunc*) &dc_callvm_call_mips_eabi 152 , (DCpointervmfunc*) &dc_callvm_call_mips_eabi
153 , NULL /* callStruct */ 153 , NULL /* callAggr */
154 , NULL /* beginAggr */
154 }; 155 };
155 156
156 /* mode: only a single mode available currently. */ 157 /* mode: only a single mode available currently. */
157 static void dc_callvm_mode_mips_eabi(DCCallVM* in_self, DCint mode) 158 static void dc_callvm_mode_mips_eabi(DCCallVM* in_self, DCint mode)
158 { 159 {