X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fsgen%2Fsgen-minor-copy-object.h;h=b1e07c167a6eaad6ec933ef2af3204b73fb8792f;hb=42874b6479cf103ca2e044b95c27a2edbb21d75c;hp=9ba0d129522e677b98bf87768d72b09c1e2fc2c4;hpb=f704d56c378b28e252572db4730a6e13edc14aa0;p=mono.git diff --git a/mono/sgen/sgen-minor-copy-object.h b/mono/sgen/sgen-minor-copy-object.h index 9ba0d129522..b1e07c167a6 100644 --- a/mono/sgen/sgen-minor-copy-object.h +++ b/mono/sgen/sgen-minor-copy-object.h @@ -14,6 +14,18 @@ #if defined(SGEN_SIMPLE_NURSERY) +#ifdef SGEN_SIMPLE_PAR_NURSERY + +#ifdef SGEN_CONCURRENT_MAJOR +#define SERIAL_COPY_OBJECT simple_par_nursery_with_concurrent_major_copy_object +#define SERIAL_COPY_OBJECT_FROM_OBJ simple_par_nursery_with_concurrent_major_copy_object_from_obj +#else +#define SERIAL_COPY_OBJECT simple_par_nursery_copy_object +#define SERIAL_COPY_OBJECT_FROM_OBJ simple_par_nursery_copy_object_from_obj +#endif + +#else + #ifdef SGEN_CONCURRENT_MAJOR #define SERIAL_COPY_OBJECT simple_nursery_serial_with_concurrent_major_copy_object #define SERIAL_COPY_OBJECT_FROM_OBJ simple_nursery_serial_with_concurrent_major_copy_object_from_obj @@ -22,6 +34,8 @@ #define SERIAL_COPY_OBJECT_FROM_OBJ simple_nursery_serial_copy_object_from_obj #endif +#endif + #elif defined (SGEN_SPLIT_NURSERY) #ifdef SGEN_CONCURRENT_MAJOR @@ -108,7 +122,11 @@ SERIAL_COPY_OBJECT (GCObject **obj_slot, SgenGrayQueue *queue) HEAVY_STAT (++stat_objects_copied_nursery); +#ifdef SGEN_SIMPLE_PAR_NURSERY + copy = copy_object_no_checks_par (obj, queue); +#else copy = copy_object_no_checks (obj, queue); +#endif SGEN_UPDATE_REFERENCE (obj_slot, copy); } @@ -214,7 +232,11 @@ SERIAL_COPY_OBJECT_FROM_OBJ (GCObject **obj_slot, SgenGrayQueue *queue) HEAVY_STAT (++stat_objects_copied_nursery); +#ifdef SGEN_SIMPLE_PAR_NURSERY + copy = copy_object_no_checks_par (obj, queue); +#else copy = copy_object_no_checks (obj, queue); +#endif #ifdef SGEN_CONCURRENT_MAJOR /* * If an object is evacuated to the major heap and a reference to it, from the major