Mercurial > pub > dyncall > dyncall
diff dyncallback/dyncall_args_sparc64.c @ 191:2f7a7f3472cb
- first draft at sparc64 callbacks (floats not working, yet)
author | Tassilo Philipp |
---|---|
date | Fri, 17 Mar 2017 03:27:36 +0100 |
parents | 82a0eef83db0 |
children | 95cf20c0d1de |
line wrap: on
line diff
--- a/dyncallback/dyncall_args_sparc64.c Tue Mar 14 00:07:31 2017 +0100 +++ b/dyncallback/dyncall_args_sparc64.c Fri Mar 17 03:27:36 2017 +0100 @@ -6,7 +6,7 @@ Description: Callback's Arguments VM - Implementation for sparc64 - not yet License: - Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>, + Copyright (c) 2007-2017 Daniel Adler <dadler@uni-goettingen.de>, Tassilo Philipp <tphilipp@potion-studios.com> Permission to use, copy, modify, and distribute this software for any @@ -26,17 +26,18 @@ #include "dyncall_args_sparc64.h" -DCint dcbArgInt (DCArgs* p) { return 0; } -DCuint dcbArgUInt (DCArgs* p) { return 0; } -DCulonglong dcbArgULongLong(DCArgs* p) { return 0; } +DCulonglong dcbArgULongLong(DCArgs* p) { return *(DCulonglong*) p->arg_ptr++; } 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; } +DCulong dcbArgULong (DCArgs* p) { return (DCulong) dcbArgULongLong(p); } +DClong dcbArgLong (DCArgs* p) { return (DClong) dcbArgULongLong(p); } +DCuint dcbArgUInt (DCArgs* p) { return (DCuint) dcbArgULongLong(p); } +DCint dcbArgInt (DCArgs* p) { return (DCint) dcbArgULongLong(p); } +DCuchar dcbArgUChar (DCArgs* p) { return (DCuchar) dcbArgULongLong(p); } +DCchar dcbArgChar (DCArgs* p) { return (DCchar) dcbArgULongLong(p); } +DCushort dcbArgUShort (DCArgs* p) { return (DCushort) dcbArgULongLong(p); } +DCshort dcbArgShort (DCArgs* p) { return (DCshort) dcbArgULongLong(p); } +DCbool dcbArgBool (DCArgs* p) { return (DCbool) dcbArgULongLong(p); } +DCpointer dcbArgPointer (DCArgs* p) { return (DCpointer) dcbArgULongLong(p); } +DCdouble dcbArgDouble (DCArgs* p) { return *(DCdouble*) p->arg_ptr++; } +DCfloat dcbArgFloat (DCArgs* p) { return *(DCfloat*) p->arg_ptr++; } +