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);