Mercurial > pub > dyncall > dyncall
diff dyncall/dyncall_callvm_arm32_arm_armhf.c @ 366:ad5f9803f52f
- removal of some unnecessary headers that only contained internally used forward declarations, so no need to have them
author | Tassilo Philipp |
---|---|
date | Wed, 15 Apr 2020 14:57:23 +0200 |
parents | f5577f6bf97a |
children | ddfb9577a00e |
line wrap: on
line diff
--- a/dyncall/dyncall_callvm_arm32_arm_armhf.c Tue Apr 14 19:58:31 2020 +0200 +++ b/dyncall/dyncall_callvm_arm32_arm_armhf.c Wed Apr 15 14:57:23 2020 +0200 @@ -6,7 +6,7 @@ Description: ARM 'armhf' ABI implementation License: - Copyright (c) 2007-2018 Daniel Adler <dadler@uni-goettingen.de>, + Copyright (c) 2007-2020 Daniel Adler <dadler@uni-goettingen.de>, Tassilo Philipp <tphilipp@potion-studios.com> Permission to use, copy, modify, and distribute this software for any @@ -28,6 +28,21 @@ #include "dyncall_alloc.h" +/* +** arm32 armhf mode calling convention calls +** +** - hybrid return-type call (bool ... pointer) +** +** Note the return type of this declaration is intentially of double-word size (despite +** the return value not being used in the code below). +** On some platforms the compiler generates cleanup code in the caller +** (dyncall_callvm_arm32_arm_armhf.c's call()) that reuses- thus overwrites - r0 and r1. +** With this "hint", we preserve those registers by letting the compiler assume both +** registers are used for the return type. +*/ +DClonglong dcCall_arm32_armhf(DCpointer target, DCpointer stackdata, DCsize size, DCfloat* p_s16); + + static void deinit(DCCallVM* in_self) { dcFreeMem(in_self);