diff dyncall/dyncall_callvm_arm32_arm_armhf.c @ 47:c4de113dc1e9

- some armhf comments, doc clarification, cleanup
author cslag
date Sun, 20 Dec 2015 00:09:47 +0100
parents f01895437921
children 9e9d6a90492a
line wrap: on
line diff
--- a/dyncall/dyncall_callvm_arm32_arm_armhf.c	Sat Dec 19 23:40:15 2015 +0100
+++ b/dyncall/dyncall_callvm_arm32_arm_armhf.c	Sun Dec 20 00:09:47 2015 +0100
@@ -105,6 +105,11 @@
 
 static void a_double(DCCallVM* in_p, DCdouble x)
 {
+  union {
+    DCdouble d;
+    DCchar   b[8];
+  } v;
+
   DCCallVM_arm32_armhf* p = (DCCallVM_arm32_armhf*)in_p;
   if (p->d < 16) {
     * (double*) &p->S[p->d] = x;
@@ -116,22 +121,9 @@
       p->s = p->d;
     }
   } else {
-    p->s = 16;
-    union {  /*@@@decl at top, compat*/
-      DCdouble d;
-      DCchar   b[8];
-    } v; // ,w;
+    p->s = 16; /* fp registers all full - need to use stack now: stop filling gaps for single precision, also */
     v.d = x;
-#if 0
-    w.b[0] = v.b[7];
-    w.b[1] = v.b[6];
-    w.b[2] = v.b[5];
-    w.b[3] = v.b[4];
-    w.b[4] = v.b[3];
-    w.b[5] = v.b[2];
-    w.b[6] = v.b[1];
-    w.b[7] = v.b[0];
-#endif
+
     /* 64 bit values need to be aligned on 8 byte boundaries */
     dcVecSkip(&p->mVecHead, dcVecSize(&p->mVecHead) & 4);
     dcVecAppend(&p->mVecHead, &v.b[0], sizeof(DCdouble));