.TP
.I cpu
This is the name of the architecture for which the mapping should be applied.
-Allowed values are: x86, x86-64, sparc, ppc, s390, s390x, arm, mips, alpha, hppa, ia64.
+Allowed values are: x86, x86-64, sparc, ppc, s390, s390x, arm, mips,
+alpha, hppa, ia64.
+.TP
+.I bits
+This is the size of registers on the target architecture, it can be
+either 32 or 64.
.PP
The attribute value for both attributes can be a comma-separated list of the allowed
values. Additionally, the first character may be a
#if defined(__i386__)
#define CONFIG_CPU "x86"
+#define CONFIG_BITS "32"
#elif defined(__x86_64__)
#define CONFIG_CPU "x86-64"
+#define CONFIG_BITS "64"
#elif defined(sparc) || defined(__sparc__)
#define CONFIG_CPU "sparc"
+#define CONFIG_BITS "32"
#elif defined(__ppc64__) || defined(__powerpc64__)
#define CONFIG_CPU "ppc64"
+#define CONFIG_BITS "64"
#elif defined(__ppc__) || defined(__powerpc__)
#define CONFIG_CPU "ppc"
+#define CONFIG_BITS "32"
#elif defined(__s390x__)
#define CONFIG_CPU "s390x"
+#define CONFIG_BITS "64"
#elif defined(__s390__)
#define CONFIG_CPU "s390"
+#define CONFIG_BITS "32"
#elif defined(__arm__)
#define CONFIG_CPU "arm"
+#define CONFIG_BITS "32"
#elif defined(__ia64__)
#define CONFIG_CPU "ia64"
+#define CONFIG_BITS "64"
#elif defined(__alpha__)
#define CONFIG_CPU "alpha"
+#define CONFIG_BITS "64"
#elif defined(hppa) || defined(__hppa__)
#define CONFIG_CPU "hppa"
+#define CONFIG_BITS "32"
#elif defined(mips) || defined(__mips) || defined(_mips)
#define CONFIG_CPU "mips"
+#define CONFIG_BITS "32"
#else
#warning Unknown CPU
#define CONFIG_CPU "unknownCPU"
info->ignore = TRUE;
else if (strcmp (attribute_names [i], "cpu") == 0 && !arch_matches (CONFIG_CPU, attribute_values [i]))
info->ignore = TRUE;
+ else if (strcmp (attribute_names [i], "bits") == 0 && !arch_matches (CONFIG_BITS, attribute_values [i]))
+ info->ignore = TRUE;
}
if (!info->ignore)
mono_dllmap_insert (info->assembly, info->dll, NULL, info->target, NULL);
ignore = TRUE;
else if (strcmp (attribute_names [i], "cpu") == 0 && !arch_matches (CONFIG_CPU, attribute_values [i]))
ignore = TRUE;
+ else if (strcmp (attribute_names [i], "bits") == 0 && !arch_matches (CONFIG_BITS, attribute_values [i]))
+ ignore = TRUE;
}
if (!dll)
dll = info->dll;