Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: descriptor.h 7329 2007-02-11 21:24:14Z twisti $
-
*/
#include "config.h"
+
+#include <stdint.h>
+
#include "vm/types.h"
#include "toolbox/hashtable.h"
#include "vmcore/references.h"
#include "vmcore/utf8.h"
+#include "arch.h" /* needed for HAS_ADDRESS_REGISTER_FILE */
/* data structures ************************************************************/
#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 {
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 */
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);