Mercurial > pub > dyncall > dyncall
diff dyncall/dyncall_api.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 | 2fb084f98439 |
children | 71c884e610f0 |
line wrap: on
line diff
--- a/dyncall/dyncall_api.c Wed Feb 02 12:55:23 2022 +0100 +++ b/dyncall/dyncall_api.c Wed Feb 02 18:30:44 2022 +0100 @@ -6,7 +6,7 @@ Description: C interface to call vm License: - Copyright (c) 2007-2020 Daniel Adler <dadler@uni-goettingen.de>, + Copyright (c) 2007-2022 Daniel Adler <dadler@uni-goettingen.de>, Tassilo Philipp <tphilipp@potion-studios.com> Permission to use, copy, modify, and distribute this software for any @@ -29,124 +29,124 @@ #include "dyncall_callvm.h" void dcReset(DCCallVM* vm) -{ - vm->mVTpointer->reset(vm); +{ + vm->mVTpointer->reset(vm); } -void dcFree(DCCallVM* vm) -{ - vm->mVTpointer->free(vm); +void dcFree(DCCallVM* vm) +{ + vm->mVTpointer->free(vm); } -void dcMode(DCCallVM* vm,DCint mode) -{ +void dcMode(DCCallVM* vm,DCint mode) +{ vm->mVTpointer->mode(vm,mode); } -void dcArgBool(DCCallVM* vm,DCbool x) -{ - vm->mVTpointer->argBool(vm, x); +void dcArgBool(DCCallVM* vm,DCbool x) +{ + vm->mVTpointer->argBool(vm, x); } void dcArgChar(DCCallVM* vm,DCchar x) -{ - vm->mVTpointer->argChar(vm, x); +{ + vm->mVTpointer->argChar(vm, x); } -void dcArgShort(DCCallVM* vm,DCshort x) -{ - vm->mVTpointer->argShort(vm, x); +void dcArgShort(DCCallVM* vm,DCshort x) +{ + vm->mVTpointer->argShort(vm, x); } -void dcArgInt(DCCallVM* vm,DCint x) -{ - vm->mVTpointer->argInt(vm, x); +void dcArgInt(DCCallVM* vm,DCint x) +{ + vm->mVTpointer->argInt(vm, x); } -void dcArgLong(DCCallVM* vm,DClong x) -{ - vm->mVTpointer->argLong(vm, x); +void dcArgLong(DCCallVM* vm,DClong x) +{ + vm->mVTpointer->argLong(vm, x); } -void dcArgLongLong(DCCallVM* vm, DClonglong x) -{ - vm->mVTpointer->argLongLong(vm, x); +void dcArgLongLong(DCCallVM* vm, DClonglong x) +{ + vm->mVTpointer->argLongLong(vm, x); } -void dcArgFloat(DCCallVM* vm, DCfloat x) -{ - vm->mVTpointer->argFloat(vm, x); +void dcArgFloat(DCCallVM* vm, DCfloat x) +{ + vm->mVTpointer->argFloat(vm, x); } -void dcArgDouble(DCCallVM* vm, DCdouble x) -{ - vm->mVTpointer->argDouble(vm, x); +void dcArgDouble(DCCallVM* vm, DCdouble x) +{ + vm->mVTpointer->argDouble(vm, x); } -void dcArgPointer(DCCallVM* vm, DCpointer x) -{ - vm->mVTpointer->argPointer(vm, x); +void dcArgPointer(DCCallVM* vm, DCpointer x) +{ + vm->mVTpointer->argPointer(vm, x); } -void dcArgStruct(DCCallVM* vm, DCstruct* s, DCpointer x) -{ - vm->mVTpointer->argStruct(vm, s, x); +void dcArgStruct(DCCallVM* vm, DCstruct* s, DCpointer x) +{ + vm->mVTpointer->argStruct(vm, s, x); } -void dcCallVoid(DCCallVM* vm, DCpointer funcptr) -{ - vm->mVTpointer->callVoid(vm, funcptr); +void dcCallVoid(DCCallVM* vm, DCpointer funcptr) +{ + vm->mVTpointer->callVoid(vm, funcptr); } -DCchar dcCallChar(DCCallVM* vm, DCpointer funcptr) -{ - return vm->mVTpointer->callChar(vm, funcptr); +DCchar dcCallChar(DCCallVM* vm, DCpointer funcptr) +{ + return vm->mVTpointer->callChar(vm, funcptr); } -DCbool dcCallBool(DCCallVM* vm, DCpointer funcptr) -{ - return vm->mVTpointer->callBool(vm, funcptr); +DCbool dcCallBool(DCCallVM* vm, DCpointer funcptr) +{ + return vm->mVTpointer->callBool(vm, funcptr); } -DCshort dcCallShort(DCCallVM* vm, DCpointer funcptr) -{ - return vm->mVTpointer->callShort(vm, funcptr); +DCshort dcCallShort(DCCallVM* vm, DCpointer funcptr) +{ + return vm->mVTpointer->callShort(vm, funcptr); } -DCint dcCallInt(DCCallVM* vm, DCpointer funcptr) -{ - return vm->mVTpointer->callInt(vm, funcptr); +DCint dcCallInt(DCCallVM* vm, DCpointer funcptr) +{ + return vm->mVTpointer->callInt(vm, funcptr); } -DClong dcCallLong(DCCallVM* vm, DCpointer funcptr) -{ - return vm->mVTpointer->callLong(vm, funcptr); +DClong dcCallLong(DCCallVM* vm, DCpointer funcptr) +{ + return vm->mVTpointer->callLong(vm, funcptr); } -DClonglong dcCallLongLong(DCCallVM* vm, DCpointer funcptr) -{ - return vm->mVTpointer->callLongLong(vm, funcptr); +DClonglong dcCallLongLong(DCCallVM* vm, DCpointer funcptr) +{ + return vm->mVTpointer->callLongLong(vm, funcptr); } -DCfloat dcCallFloat(DCCallVM* vm, DCpointer funcptr) -{ - return vm->mVTpointer->callFloat(vm, funcptr); +DCfloat dcCallFloat(DCCallVM* vm, DCpointer funcptr) +{ + return vm->mVTpointer->callFloat(vm, funcptr); } -DCdouble dcCallDouble(DCCallVM* vm, DCpointer funcptr) -{ - return vm->mVTpointer->callDouble(vm, funcptr); +DCdouble dcCallDouble(DCCallVM* vm, DCpointer funcptr) +{ + return vm->mVTpointer->callDouble(vm, funcptr); } -DCpointer dcCallPointer(DCCallVM* vm, DCpointer funcptr) -{ - return vm->mVTpointer->callPointer(vm, funcptr); +DCpointer dcCallPointer(DCCallVM* vm, DCpointer funcptr) +{ + return vm->mVTpointer->callPointer(vm, funcptr); } -void dcCallStruct(DCCallVM* vm, DCpointer funcptr, DCstruct* s, DCpointer x) -{ - vm->mVTpointer->callStruct(vm, funcptr, s, x); +void dcCallStruct(DCCallVM* vm, DCpointer funcptr, DCstruct* s, DCpointer x) +{ + vm->mVTpointer->callStruct(vm, funcptr, s, x); } DCint dcGetError(DCCallVM *vm) @@ -159,6 +159,7 @@ switch(sig_char) { case DC_SIGCHAR_CC_DEFAULT: return DC_CALL_C_DEFAULT; + case DC_SIGCHAR_CC_THISCALL: return DC_CALL_C_DEFAULT_THIS; case DC_SIGCHAR_CC_ELLIPSIS: return DC_CALL_C_ELLIPSIS; case DC_SIGCHAR_CC_ELLIPSIS_VARARGS: return DC_CALL_C_ELLIPSIS_VARARGS; case DC_SIGCHAR_CC_CDECL: return DC_CALL_C_X86_CDECL;