Mercurial > pub > dyncall > dyncall
diff dyncall/dyncall_callvm_sparc64.c @ 466:ddfb9577a00e
introduced platform-native thiscall mode (DC_CALL_C_DEFAULT_THIS), as needed
for upcoming aggregate support (until now only x86 platforms allowed for
specifically selecting thiscall mode, given the different conventions on
the same platform); also added respective DC_SIGCHAR_CC_THISCALL ('*')
author | Tassilo Philipp |
---|---|
date | Wed, 02 Feb 2022 18:30:44 +0100 |
parents | ad5f9803f52f |
children | 71c884e610f0 |
line wrap: on
line diff
--- a/dyncall/dyncall_callvm_sparc64.c Wed Feb 02 12:55:23 2022 +0100 +++ b/dyncall/dyncall_callvm_sparc64.c Wed Feb 02 18:30:44 2022 +0100 @@ -92,60 +92,60 @@ static void dc_callvm_mode_v9(DCCallVM* in_self, DCint mode); -DCCallVM_vt gVT_v9_ellipsis = +DCCallVM_vt gVT_v9_ellipsis = { - &dc_callvm_free_v9, - &dc_callvm_reset_v9, - &dc_callvm_mode_v9, - &dc_callvm_argBool_v9, - &dc_callvm_argChar_v9, - &dc_callvm_argShort_v9, - &dc_callvm_argInt_v9, - &dc_callvm_argLong_v9, - &dc_callvm_argLongLong_v9, - &dc_callvm_argFloat_v9_ellipsis, - &dc_callvm_argDouble_v9_ellipsis, - &dc_callvm_argPointer_v9, - NULL /* argStruct */, - (DCvoidvmfunc*) &dcCall_v9, - (DCboolvmfunc*) &dcCall_v9, - (DCcharvmfunc*) &dcCall_v9, - (DCshortvmfunc*) &dcCall_v9, - (DCintvmfunc*) &dcCall_v9, - (DClongvmfunc*) &dcCall_v9, - (DClonglongvmfunc*) &dcCall_v9, - (DCfloatvmfunc*) &dcCall_v9, - (DCdoublevmfunc*) &dcCall_v9, - (DCpointervmfunc*) &dcCall_v9, + &dc_callvm_free_v9, + &dc_callvm_reset_v9, + &dc_callvm_mode_v9, + &dc_callvm_argBool_v9, + &dc_callvm_argChar_v9, + &dc_callvm_argShort_v9, + &dc_callvm_argInt_v9, + &dc_callvm_argLong_v9, + &dc_callvm_argLongLong_v9, + &dc_callvm_argFloat_v9_ellipsis, + &dc_callvm_argDouble_v9_ellipsis, + &dc_callvm_argPointer_v9, + NULL /* argStruct */, + (DCvoidvmfunc*) &dcCall_v9, + (DCboolvmfunc*) &dcCall_v9, + (DCcharvmfunc*) &dcCall_v9, + (DCshortvmfunc*) &dcCall_v9, + (DCintvmfunc*) &dcCall_v9, + (DClongvmfunc*) &dcCall_v9, + (DClonglongvmfunc*) &dcCall_v9, + (DCfloatvmfunc*) &dcCall_v9, + (DCdoublevmfunc*) &dcCall_v9, + (DCpointervmfunc*) &dcCall_v9, NULL /* callStruct */ }; /* CallVM virtual table. */ DCCallVM_vt gVT_v9 = { - &dc_callvm_free_v9, - &dc_callvm_reset_v9, - &dc_callvm_mode_v9, - &dc_callvm_argBool_v9, - &dc_callvm_argChar_v9, - &dc_callvm_argShort_v9, - &dc_callvm_argInt_v9, - &dc_callvm_argLong_v9, - &dc_callvm_argLongLong_v9, - &dc_callvm_argFloat_v9, - &dc_callvm_argDouble_v9, - &dc_callvm_argPointer_v9, - NULL /* argStruct */, - (DCvoidvmfunc*) &dcCall_v9, - (DCboolvmfunc*) &dcCall_v9, - (DCcharvmfunc*) &dcCall_v9, - (DCshortvmfunc*) &dcCall_v9, - (DCintvmfunc*) &dcCall_v9, - (DClongvmfunc*) &dcCall_v9, - (DClonglongvmfunc*) &dcCall_v9, - (DCfloatvmfunc*) &dcCall_v9, - (DCdoublevmfunc*) &dcCall_v9, - (DCpointervmfunc*) &dcCall_v9, + &dc_callvm_free_v9, + &dc_callvm_reset_v9, + &dc_callvm_mode_v9, + &dc_callvm_argBool_v9, + &dc_callvm_argChar_v9, + &dc_callvm_argShort_v9, + &dc_callvm_argInt_v9, + &dc_callvm_argLong_v9, + &dc_callvm_argLongLong_v9, + &dc_callvm_argFloat_v9, + &dc_callvm_argDouble_v9, + &dc_callvm_argPointer_v9, + NULL /* argStruct */, + (DCvoidvmfunc*) &dcCall_v9, + (DCboolvmfunc*) &dcCall_v9, + (DCcharvmfunc*) &dcCall_v9, + (DCshortvmfunc*) &dcCall_v9, + (DCintvmfunc*) &dcCall_v9, + (DClongvmfunc*) &dcCall_v9, + (DClonglongvmfunc*) &dcCall_v9, + (DCfloatvmfunc*) &dcCall_v9, + (DCdoublevmfunc*) &dcCall_v9, + (DCpointervmfunc*) &dcCall_v9, NULL /* callStruct */ }; @@ -157,6 +157,7 @@ switch(mode) { case DC_CALL_C_DEFAULT: + case DC_CALL_C_DEFAULT_THIS: case DC_CALL_C_SPARC64: case DC_CALL_C_ELLIPSIS: vt = &gVT_v9; @@ -165,8 +166,8 @@ vt = &gVT_v9_ellipsis; break; default: - self->mInterface.mError = DC_ERROR_UNSUPPORTED_MODE; - return; + self->mInterface.mError = DC_ERROR_UNSUPPORTED_MODE; + return; } dc_callvm_base_init(&self->mInterface, vt); }