[aot] Don't hardcode the nursery size in aot write barriers
[mono.git] / mono / mini / mini-runtime.c
index 35cd3c32040e6b60621b68a615ef98dc6a3ac001..d073a2c1db6d4b4157b664eea19cccf1330e77c6 100644 (file)
@@ -1235,6 +1235,7 @@ mono_patch_info_hash (gconstpointer data)
        case MONO_PATCH_INFO_MSCORLIB_GOT_ADDR:
        case MONO_PATCH_INFO_GC_CARD_TABLE_ADDR:
        case MONO_PATCH_INFO_GC_NURSERY_START:
+       case MONO_PATCH_INFO_GC_NURSERY_BITS:
        case MONO_PATCH_INFO_JIT_TLS_ID:
        case MONO_PATCH_INFO_GOT_OFFSET:
        case MONO_PATCH_INFO_GC_SAFE_POINT_FLAG:
@@ -1662,6 +1663,15 @@ mono_resolve_patch_target (MonoMethod *method, MonoDomain *domain, guint8 *code,
                target = mono_gc_get_nursery (&shift_bits, &size);
                break;
        }
+       case MONO_PATCH_INFO_GC_NURSERY_BITS: {
+               int shift_bits;
+               size_t size;
+
+               mono_gc_get_nursery (&shift_bits, &size);
+
+               target = (gpointer)(mgreg_t)shift_bits;
+               break;
+       }
        case MONO_PATCH_INFO_CASTCLASS_CACHE: {
                target = mono_domain_alloc0 (domain, sizeof (gpointer));
                break;