comparison 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
comparison
equal deleted inserted replaced
190:06ee88ce4962 191:2f7a7f3472cb
4 Library: dyncallback 4 Library: dyncallback
5 File: dyncallback/dyncall_args_sparc64.c 5 File: dyncallback/dyncall_args_sparc64.c
6 Description: Callback's Arguments VM - Implementation for sparc64 - not yet 6 Description: Callback's Arguments VM - Implementation for sparc64 - not yet
7 License: 7 License:
8 8
9 Copyright (c) 2007-2015 Daniel Adler <dadler@uni-goettingen.de>, 9 Copyright (c) 2007-2017 Daniel Adler <dadler@uni-goettingen.de>,
10 Tassilo Philipp <tphilipp@potion-studios.com> 10 Tassilo Philipp <tphilipp@potion-studios.com>
11 11
12 Permission to use, copy, modify, and distribute this software for any 12 Permission to use, copy, modify, and distribute this software for any
13 purpose with or without fee is hereby granted, provided that the above 13 purpose with or without fee is hereby granted, provided that the above
14 copyright notice and this permission notice appear in all copies. 14 copyright notice and this permission notice appear in all copies.
24 */ 24 */
25 25
26 26
27 #include "dyncall_args_sparc64.h" 27 #include "dyncall_args_sparc64.h"
28 28
29 DCint dcbArgInt (DCArgs* p) { return 0; } 29 DCulonglong dcbArgULongLong(DCArgs* p) { return *(DCulonglong*) p->arg_ptr++; }
30 DCuint dcbArgUInt (DCArgs* p) { return 0; }
31 DCulonglong dcbArgULongLong(DCArgs* p) { return 0; }
32 DClonglong dcbArgLongLong (DCArgs* p) { return (DClonglong)dcbArgULongLong(p); } 30 DClonglong dcbArgLongLong (DCArgs* p) { return (DClonglong)dcbArgULongLong(p); }
33 DClong dcbArgLong (DCArgs* p) { return (DClong) dcbArgUInt(p); } 31 DCulong dcbArgULong (DCArgs* p) { return (DCulong) dcbArgULongLong(p); }
34 DCulong dcbArgULong (DCArgs* p) { return (DCulong) dcbArgUInt(p); } 32 DClong dcbArgLong (DCArgs* p) { return (DClong) dcbArgULongLong(p); }
35 DCchar dcbArgChar (DCArgs* p) { return (DCchar) dcbArgUInt(p); } 33 DCuint dcbArgUInt (DCArgs* p) { return (DCuint) dcbArgULongLong(p); }
36 DCuchar dcbArgUChar (DCArgs* p) { return (DCuchar) dcbArgUInt(p); } 34 DCint dcbArgInt (DCArgs* p) { return (DCint) dcbArgULongLong(p); }
37 DCshort dcbArgShort (DCArgs* p) { return (DCshort) dcbArgUInt(p); } 35 DCuchar dcbArgUChar (DCArgs* p) { return (DCuchar) dcbArgULongLong(p); }
38 DCushort dcbArgUShort (DCArgs* p) { return (DCushort) dcbArgUInt(p); } 36 DCchar dcbArgChar (DCArgs* p) { return (DCchar) dcbArgULongLong(p); }
39 DCbool dcbArgBool (DCArgs* p) { return (DCbool) dcbArgUInt(p); } 37 DCushort dcbArgUShort (DCArgs* p) { return (DCushort) dcbArgULongLong(p); }
40 DCpointer dcbArgPointer (DCArgs* p) { return (DCpointer) dcbArgUInt(p); } 38 DCshort dcbArgShort (DCArgs* p) { return (DCshort) dcbArgULongLong(p); }
41 DCdouble dcbArgDouble (DCArgs* p) { return 0.0; } 39 DCbool dcbArgBool (DCArgs* p) { return (DCbool) dcbArgULongLong(p); }
42 DCfloat dcbArgFloat (DCArgs* p) { return 0.0f; } 40 DCpointer dcbArgPointer (DCArgs* p) { return (DCpointer) dcbArgULongLong(p); }
41 DCdouble dcbArgDouble (DCArgs* p) { return *(DCdouble*) p->arg_ptr++; }
42 DCfloat dcbArgFloat (DCArgs* p) { return *(DCfloat*) p->arg_ptr++; }
43