[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[cinvoke-svn] r85 - trunk/cinvoke/lib
From: |
will |
Subject: |
[cinvoke-svn] r85 - trunk/cinvoke/lib |
Date: |
10 Jul 2006 22:39:01 -0400 |
Author: will
Date: 2006-07-10 22:39:01 -0400 (Mon, 10 Jul 2006)
New Revision: 85
Modified:
trunk/cinvoke/lib/cinvoke.c
Log:
more fixes
Modified: trunk/cinvoke/lib/cinvoke.c
===================================================================
--- trunk/cinvoke/lib/cinvoke.c 2006-07-11 01:52:49 UTC (rev 84)
+++ trunk/cinvoke/lib/cinvoke.c 2006-07-11 02:39:01 UTC (rev 85)
@@ -342,12 +342,14 @@
ArchRetValue retval;
ArchRegParms regparms;
int stackindex = 0, i;
+ int stacksize = function->stacksize;
char *stackptr;
- arch_set_register_parms(®parms, function->callconv,
function->numparms, parameters, function->parmtypes);
+ arch_set_register_parms(®parms, function->callconv,
+ function->numparms, parameters, function->parmtypes);
- if (function->stacksize) {
- ARCH_PUT_STACK_BYTES(function->stacksize);
+ if (stacksize) {
+ ARCH_PUT_STACK_BYTES(stacksize);
ARCH_GET_STACK(stackptr);
#if ARCH_STACK_SKIPTOP
@@ -359,7 +361,7 @@
#endif
#endif
- for (i = function->numparms - 1; i >= 0; i--) {
+ for (i = 0; i < function->numparms; i++) {
int len = function->parmstacksizes[i];
int align = function->parmalignments[i];
int memsize = function->parmmemsizes[i];
@@ -428,7 +430,7 @@
*stackptr = '\0';
stackptr++;
diff--;
- }
+
while (memsize) {
*stackptr = *param;
*stackptr++;
@@ -456,8 +458,8 @@
ARCH_CALL(regparms, entrypoint)
ARCH_SAVE_RETURN(retval)
- if (function->callconv != CINV_CC_STDCALL && function->stacksize != 0) {
- ARCH_REMOVE_STACK_BYTES(function->stacksize)
+ if (function->callconv != CINV_CC_STDCALL && stacksize != 0) {
+ ARCH_REMOVE_STACK_BYTES(stacksize)
}
if (function->hasreturn)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [cinvoke-svn] r85 - trunk/cinvoke/lib,
will <=