[Mono-dev] JIT: MonoReg to replace gssize for registers
Mark Mason
mmason at upwardaccess.com
Thu Dec 11 14:40:16 EST 2008
Hello all,
Along the same lines as the SIZEOF_VOID_P change, I'd like to offer the
following new type to replace to use of 'gssize' when referring to a
machine register. 'gssize' comes from glib, and simply represents the
size of an integer -- which is not necessarily always the same as the
size of the underlying integer registers.
There are some other uses of gssize in mini/ that will need to be
updated as well, but this is a start.
Comments most welcome.
Thanks in advance,
Mark
Index: mini.h
===================================================================
--- mini.h (revision 121269)
+++ mini.h (working copy)
@@ -400,6 +400,13 @@
int size, align;
} MonoMemcpyArgs;
+/* C type matching the size of a machine register. Not always the same
as 'int' */
+#if SIZEOF_REGISTER == 4
+typedef gint32 MonoReg;
+#elif SIZEOF_REGISTER == 8
+typedef gint64 MonoReg;
+#endif
+
struct MonoInst {
guint16 opcode;
guint8 type; /* stack type */
@@ -415,7 +422,7 @@
union {
MonoInst *src;
MonoMethodVar *var;
- gssize const_val;
+ MonoReg const_val;
gpointer p;
MonoMethod *method;
MonoMethodSignature *signature;
More information about the Mono-devel-list
mailing list