cinvoke-svn
[Top][All Lists]
Advanced

[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(&regparms, function->callconv, 
function->numparms, parameters, function->parmtypes);
+       arch_set_register_parms(&regparms, 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)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]