changeset 109:9e677d4c0b6b

- mips comment cleanups - mips callback args prep for non-o32
author cslag
date Sat, 11 Jun 2016 21:44:38 +0200
parents bf8aef292216
children 9aa75a74614c
files dyncall/dyncall_call_mips_eabi_gas.s dyncallback/dyncall_args_mips.c dyncallback/dyncall_args_mips.h dyncallback/dyncall_args_mips_o32.c dyncallback/dyncall_callback_mips_o32_gas.s
diffstat 5 files changed, 20 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/dyncall/dyncall_call_mips_eabi_gas.s	Sat Jun 11 21:38:46 2016 +0200
+++ b/dyncall/dyncall_call_mips_eabi_gas.s	Sat Jun 11 21:44:38 2016 +0200
@@ -89,7 +89,7 @@
 	lw	$10,24($13)
 	lw	$11,28($13)
 
-	/* load single-precise floating pointer parameter registers */
+	/* load single-precision floating pointer parameter registers */
 
 	lwc1	$f12, 32($13)
 	lwc1	$f13, 36($13)
--- a/dyncallback/dyncall_args_mips.c	Sat Jun 11 21:38:46 2016 +0200
+++ b/dyncallback/dyncall_args_mips.c	Sat Jun 11 21:44:38 2016 +0200
@@ -3,7 +3,7 @@
  Package: dyncall
  Library: dyncallback
  File: dyncallback/dyncall_args_mips.c
- Description: Callback's Arguments VM - Implementation for MIPS
+ Description: Callback's Arguments VM - Implementation for non-o32 MIPS
  License:
 
    Copyright (c) 2013-2015 Daniel Adler <dadler@uni-goettingen.de>,
@@ -29,11 +29,11 @@
 DCint dcbArgInt(DCArgs* p)
 {
   DCint value;
-  if(p->reg_count.i < DCARGS_MIPS_PARAM_REGS)
-    value = p->reg_data.i[p->reg_count.i++];
+  if(p->reg_count.i < DCARGS_MIPS_NUM_IREGS)
+    value = p->ireg_data[p->reg_count.i++];
   else {
-    value = *((int*)p->stackptr);
-    p->stackptr += sizeof(int);
+    value = *((DCint*)p->stackptr);
+    p->stackptr += sizeof(DCint);
   }
   return value;
 }
@@ -66,11 +66,11 @@
 DCfloat dcbArgFloat(DCArgs* p)
 {
   DCfloat result;
-  if(p->reg_count.f < DCARGS_MIPS_PARAM_REGS)
-    result = (DCfloat)p->reg_data.f[p->reg_count.f++];
+  if(p->reg_count.f < DCARGS_MIPS_NUM_FREGS)
+    result = (DCfloat)p->freg_data[p->reg_count.f++];
   else {
-    result = *((float*)p->stackptr);
-    p->stackptr += sizeof(float);
+    result = *((DCfloat*)p->stackptr);
+    p->stackptr += sizeof(DCfloat);
   }
   return result;
 }
@@ -78,7 +78,7 @@
 {
   union {
     DCdouble result;
-    DCfloat f[2];
+    DCfloat  f[2];
   } d;
   p->reg_count.f += (p->reg_count.f & 1); // Skip one reg if not aligned.
 #if defined(DC__Endian_LITTLE)
--- a/dyncallback/dyncall_args_mips.h	Sat Jun 11 21:38:46 2016 +0200
+++ b/dyncallback/dyncall_args_mips.h	Sat Jun 11 21:44:38 2016 +0200
@@ -33,13 +33,15 @@
 {
 	/* Don't change order! */
 #if defined(DC__ABI_MIPS_O32)
-	int freg_count;
+	DCint freg_count;
 #else
-#  define DCARGS_MIPS_PARAM_REGS 8
-	struct { int i; float f; } reg_data[DCARGS_MIPS_PARAM_REGS];
-	struct { int i; int   f; } reg_count;
+#  define DCARGS_MIPS_NUM_IREGS 8
+#  define DCARGS_MIPS_NUM_FREGS 8
+	DCint   ireg_data[DCARGS_MIPS_NUM_IREGS];
+	DCfloat freg_data[DCARGS_MIPS_NUM_FREGS];
+	struct { DCshort i; DCshort f; } reg_count;
 #endif
-	unsigned char* stackptr;
+	unsigned DCchar* stackptr;
 };
 
 #endif /* DYNCALLBACK_ARGS_MIPS_H */
--- a/dyncallback/dyncall_args_mips_o32.c	Sat Jun 11 21:38:46 2016 +0200
+++ b/dyncallback/dyncall_args_mips_o32.c	Sat Jun 11 21:44:38 2016 +0200
@@ -3,7 +3,7 @@
  Package: dyncall
  Library: dyncallback
  File: dyncallback/dyncall_args_mips.c
- Description: Callback's Arguments VM - Implementation for MIPS
+ Description: Callback's Arguments VM - Implementation for MIPS o32
  License:
 
    Copyright (c) 2013-2015 Daniel Adler <dadler@uni-goettingen.de>,
--- a/dyncallback/dyncall_callback_mips_o32_gas.s	Sat Jun 11 21:38:46 2016 +0200
+++ b/dyncallback/dyncall_callback_mips_o32_gas.s	Sat Jun 11 21:44:38 2016 +0200
@@ -43,7 +43,7 @@
 	.set    noreorder
 
 	/* Prolog. Just store the minimum, return address, spill area.     */
-	/* Frame size of 48b comes from following areas (each 8b aligned); */
+	/* Frame size of 56b comes from following areas (each 8b aligned): */
 	/*   local: fpregs:16 + retval:8 + DCArgs:8 */
 	/*   save:  ra:4 (+ pad:4)                  */
 	/*   param: spill:16                        */