[Mono-dev] SIZEOF_VOID_P in the JIT

Mark Mason mmason at upwardaccess.com
Thu Dec 11 09:29:12 EST 2008


Hello,


On Thu, 2008-12-11 at 14:42 +0100, Zoltan Varga wrote:
> Hi,
> 
>   The approach looks fine.
> 
>             Zoltan

Thank you Zoltan.

Here's the patch to mono/configure.in that I came up with to introduce
SIZEOF_REGISTER. There's no 'portable' test for the size of a machine
register, so I simply check for mips/n32 directly. If you could look it
over, I'd appreciate it.

Thanks,
Mark

Index: configure.in
===================================================================
--- configure.in	(revision 120925)
+++ configure.in	(working copy)
@@ -1748,6 +1748,8 @@
 SQLITE3="libsqlite3.so.0"
 X11="libX11.so"
 
+sizeof_register="SIZEOF_VOID_P"
+
 jit_wanted=false
 interp_wanted=false
 case "$host" in
@@ -1761,6 +1763,20 @@
 		ACCESS_UNALIGNED="no"
 		JIT_SUPPORTED=yes
 		jit_wanted=true
+
+		AC_MSG_CHECKING(for mips n32)
+		AC_TRY_COMPILE([], [
+		void main () {
+		#if _MIPS_SIM != _ABIN32
+		#error Not mips n32
+		#endif
+   		}
+		],[
+		AC_MSG_RESULT(yes)
+		sizeof_register=8
+		],[
+		AC_MSG_RESULT(no)
+		])
 		;;
 	i*86-*-*)
 		TARGET=X86;
@@ -1916,6 +1932,14 @@
 		;;
 esac
 
+if test "x$sizeof_register" = "x4"; then
+   AC_DEFINE(SIZEOF_REGISTER,4,[size of machine integer registers])
+elif test "x$sizeof_register" = "x8"; then
+   AC_DEFINE(SIZEOF_REGISTER,8,[size of machine integer registers])
+else
+   AC_DEFINE(SIZEOF_REGISTER,SIZEOF_VOID_P,[size of machine integer
registers])
+fi
+
 if test "x$have_visibility_hidden" = "xyes"; then
    AC_DEFINE(HAVE_VISIBILITY_HIDDEN, 1, [Support for the visibility
("hidden") attribute])
 fi




More information about the Mono-devel-list mailing list