# HG changeset patch # User cslag # Date 1464528992 -7200 # Node ID 82a0eef83db082988b13f68f670e87f0de0c5b36 # Parent 2d58a542ddfcc21bbd95feb182c8457a9300a156 - cosmetics diff -r 2d58a542ddfc -r 82a0eef83db0 ToDo --- a/ToDo Sun May 29 13:16:38 2016 +0200 +++ b/ToDo Sun May 29 15:36:32 2016 +0200 @@ -45,7 +45,7 @@ - varargs for mips (might exist, but test all ABIs) - consider automatic type-promotion for arguments passed through DC_CALL_C_ELLIPSIS_VARARGS; this would make it easier to just pass arguments instead of having to know about the C - type promotions + type promotions (this is partly done, see todo-item above under 1.0) - syscalls for x64 * bsd * linux @@ -89,8 +89,8 @@ * e.g. enhance manual with a couple of examples (e.g. calling MessageBoxA on windows, etc.) - manuals for bindings (as stated in bindings-section, above) -urgent issues: --------------- +regressions: +------------ - finish SPARC/SPARC64 calling conventions in doc's callconv-appendix !!! - Haiku/gmake build doesn't build dynload due to the fact, that elf.h is not found on default installations (one has to install the system headers) @@ -110,10 +110,9 @@ bugs: ----- -- callconv set specifically for platform that has only one (default) excepts for some +- setting callconv, specifically for platforms that have only one (default)) excepts on some platforms, eg. setting X64_sysv on amd64/Linux - keeping cdecl which is the same in - this case, works -- callbacks on ppc32 only work on linux and apple (osx abi), but not BSD + this case, works (this should work now...) - vararg function calls don't work for ARM THUMB mode (Daniel's new interface for modesetting for varag args should be used); adapt test/ellipsis and/or retest @@ -121,11 +120,13 @@ ---------------------------------------------- - riscv - itanium +- superh/j-core - 68k, 88k, 6502, etc. +- arc - alpha -- superh - cell - blackfin +- seaforth - s/390 - z80 - hppa @@ -133,6 +134,4 @@ - atmel avr - propeller - amd29k -- arc -- seaforth diff -r 2d58a542ddfc -r 82a0eef83db0 dyncallback/dyncall_args_sparc32.c --- a/dyncallback/dyncall_args_sparc32.c Sun May 29 13:16:38 2016 +0200 +++ b/dyncallback/dyncall_args_sparc32.c Sun May 29 15:36:32 2016 +0200 @@ -28,15 +28,15 @@ DCint dcbArgInt (DCArgs* p) { return 0; } DCuint dcbArgUInt (DCArgs* p) { return 0; } -DCulonglong dcbArgULongLong (DCArgs* p) { return 0; } -DClonglong dcbArgLongLong(DCArgs* p) { return (DClonglong)dcbArgULongLong(p); } -DClong dcbArgLong (DCArgs* p) { return (DClong) dcbArgUInt(p); } -DCulong dcbArgULong (DCArgs* p) { return (DCulong) dcbArgUInt(p); } -DCchar dcbArgChar (DCArgs* p) { return (DCchar) dcbArgUInt(p); } -DCuchar dcbArgUChar (DCArgs* p) { return (DCuchar) dcbArgUInt(p); } -DCshort dcbArgShort (DCArgs* p) { return (DCshort) dcbArgUInt(p); } -DCushort dcbArgUShort (DCArgs* p) { return (DCushort)dcbArgUInt(p); } -DCbool dcbArgBool (DCArgs* p) { return (DCbool) dcbArgUInt(p); } -DCpointer dcbArgPointer (DCArgs* p) { return (DCpointer)dcbArgUInt(p); } +DCulonglong dcbArgULongLong(DCArgs* p) { return 0; } +DClonglong dcbArgLongLong (DCArgs* p) { return (DClonglong)dcbArgULongLong(p); } +DClong dcbArgLong (DCArgs* p) { return (DClong) dcbArgUInt(p); } +DCulong dcbArgULong (DCArgs* p) { return (DCulong) dcbArgUInt(p); } +DCchar dcbArgChar (DCArgs* p) { return (DCchar) dcbArgUInt(p); } +DCuchar dcbArgUChar (DCArgs* p) { return (DCuchar) dcbArgUInt(p); } +DCshort dcbArgShort (DCArgs* p) { return (DCshort) dcbArgUInt(p); } +DCushort dcbArgUShort (DCArgs* p) { return (DCushort) dcbArgUInt(p); } +DCbool dcbArgBool (DCArgs* p) { return (DCbool) dcbArgUInt(p); } +DCpointer dcbArgPointer (DCArgs* p) { return (DCpointer) dcbArgUInt(p); } DCdouble dcbArgDouble (DCArgs* p) { return 0.0; } DCfloat dcbArgFloat (DCArgs* p) { return 0.0f; } diff -r 2d58a542ddfc -r 82a0eef83db0 dyncallback/dyncall_args_sparc64.c --- a/dyncallback/dyncall_args_sparc64.c Sun May 29 13:16:38 2016 +0200 +++ b/dyncallback/dyncall_args_sparc64.c Sun May 29 15:36:32 2016 +0200 @@ -28,15 +28,15 @@ DCint dcbArgInt (DCArgs* p) { return 0; } DCuint dcbArgUInt (DCArgs* p) { return 0; } -DCulonglong dcbArgULongLong (DCArgs* p) { return 0; } -DClonglong dcbArgLongLong(DCArgs* p) { return (DClonglong)dcbArgULongLong(p); } -DClong dcbArgLong (DCArgs* p) { return (DClong) dcbArgUInt(p); } -DCulong dcbArgULong (DCArgs* p) { return (DCulong) dcbArgUInt(p); } -DCchar dcbArgChar (DCArgs* p) { return (DCchar) dcbArgUInt(p); } -DCuchar dcbArgUChar (DCArgs* p) { return (DCuchar) dcbArgUInt(p); } -DCshort dcbArgShort (DCArgs* p) { return (DCshort) dcbArgUInt(p); } -DCushort dcbArgUShort (DCArgs* p) { return (DCushort)dcbArgUInt(p); } -DCbool dcbArgBool (DCArgs* p) { return (DCbool) dcbArgUInt(p); } -DCpointer dcbArgPointer (DCArgs* p) { return (DCpointer)dcbArgUInt(p); } +DCulonglong dcbArgULongLong(DCArgs* p) { return 0; } +DClonglong dcbArgLongLong (DCArgs* p) { return (DClonglong)dcbArgULongLong(p); } +DClong dcbArgLong (DCArgs* p) { return (DClong) dcbArgUInt(p); } +DCulong dcbArgULong (DCArgs* p) { return (DCulong) dcbArgUInt(p); } +DCchar dcbArgChar (DCArgs* p) { return (DCchar) dcbArgUInt(p); } +DCuchar dcbArgUChar (DCArgs* p) { return (DCuchar) dcbArgUInt(p); } +DCshort dcbArgShort (DCArgs* p) { return (DCshort) dcbArgUInt(p); } +DCushort dcbArgUShort (DCArgs* p) { return (DCushort) dcbArgUInt(p); } +DCbool dcbArgBool (DCArgs* p) { return (DCbool) dcbArgUInt(p); } +DCpointer dcbArgPointer (DCArgs* p) { return (DCpointer) dcbArgUInt(p); } DCdouble dcbArgDouble (DCArgs* p) { return 0.0; } DCfloat dcbArgFloat (DCArgs* p) { return 0.0f; } diff -r 2d58a542ddfc -r 82a0eef83db0 dyncallback/dyncall_callback_sparc64.c --- a/dyncallback/dyncall_callback_sparc64.c Sun May 29 13:16:38 2016 +0200 +++ b/dyncallback/dyncall_callback_sparc64.c Sun May 29 15:36:32 2016 +0200 @@ -56,3 +56,4 @@ { return pcb->userdata; } +