* Removed all Id tags.
[cacao.git] / src / vmcore / descriptor.h
index 294429cf8c1bc144c0c912d7c521e237fd43b786..dae43e7212ad34510e372336fb04e7c9195f36f5 100644 (file)
@@ -22,8 +22,6 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: descriptor.h 7329 2007-02-11 21:24:14Z twisti $
-
 */
 
 
@@ -39,6 +37,9 @@ typedef struct methoddesc      methoddesc;
 
 
 #include "config.h"
+
+#include <stdint.h>
+
 #include "vm/types.h"
 
 #include "toolbox/hashtable.h"
@@ -50,6 +51,7 @@ typedef struct methoddesc      methoddesc;
 #include "vmcore/references.h"
 #include "vmcore/utf8.h"
 
+#include "arch.h"              /* needed for HAS_ADDRESS_REGISTER_FILE */
 
 /* data structures ************************************************************/
 
@@ -114,8 +116,9 @@ struct paramdesc {
 #if defined(__MIPS__)
        u1   type;                  /* TYPE_??? of the register allocated         */
 #endif
-       bool inmemory;              /* argument in register or on stack           */
-       s4   regoff;                /* register index or stack offset             */
+       bool     inmemory;          /* argument in register or on stack           */
+       uint32_t index;             /* index into argument register array         */
+       uint32_t regoff;            /* register index or stack offset             */
 };
 
 struct methoddesc {
@@ -123,6 +126,9 @@ struct methoddesc {
        s2         paramslots;      /* like above but LONG,DOUBLE count twice     */
        s4         argintreguse;    /* number of used integer argument registers  */
        s4         argfltreguse;    /* number of used float argument registers    */
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       s4         argadrreguse;    /* number of used address registers */
+#endif
        s4         memuse;          /* number of stack slots used                 */
        paramdesc *params;          /* allocated parameter descriptions [3]       */
        typedesc   returntype;      /* parsed descriptor of the return type       */
@@ -152,8 +158,8 @@ descriptor_pool * descriptor_pool_new(classinfo *referer);
 bool descriptor_pool_add_class(descriptor_pool *pool,utf *name);
 bool descriptor_pool_add(descriptor_pool *pool,utf *desc,int *paramslots);
 
-u2 descriptor_to_basic_type(utf *desc);
-u2 descriptor_typesize(typedesc *td);
+int  descriptor_to_basic_type(utf *desc);
+int  descriptor_typesize(typedesc *td);
 
 constant_classref * descriptor_pool_create_classrefs(descriptor_pool *pool,
                                                                                                         s4 *count);