From: Hiroshi Yamauchi Date: Fri, 2 Oct 2015 20:41:34 +0000 (-0700) Subject: Make it possible to change the read barrier type as build config. X-Git-Tag: android-x86-7.1-r1~889^2~225^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=2e287754fcc0f3ecd10fcc9623800d935618360a;p=android-x86%2Fart.git Make it possible to change the read barrier type as build config. Bug: 12687968 Change-Id: Ib43dab4d4e68a5a962347fcc2163c3100cb5b760 --- diff --git a/build/Android.common_build.mk b/build/Android.common_build.mk index 288bdddfe..b50712429 100644 --- a/build/Android.common_build.mk +++ b/build/Android.common_build.mk @@ -300,9 +300,17 @@ ifeq ($(ART_HEAP_POISONING),true) art_asflags += -DART_HEAP_POISONING=1 endif +# +# Used to change the read barrier type. Valid values are BAKER, BROOKS, TABLELOOKUP. +# The default is BAKER. +# +ART_READ_BARRIER_TYPE ?= BAKER + ifeq ($(ART_USE_READ_BARRIER),true) art_cflags += -DART_USE_READ_BARRIER=1 + art_cflags += -DART_READ_BARRIER_TYPE_IS_$(ART_READ_BARRIER_TYPE)=1 art_asflags += -DART_USE_READ_BARRIER=1 + art_asflags += -DART_READ_BARRIER_TYPE_IS_$(ART_READ_BARRIER_TYPE)=1 endif ifeq ($(ART_USE_TLAB),true) @@ -392,7 +400,6 @@ art_debug_cflags := art_non_debug_cflags := art_host_non_debug_cflags := art_target_non_debug_cflags := -art_default_gc_type := art_default_gc_type_cflags := ART_HOST_LDLIBS := diff --git a/runtime/read_barrier_c.h b/runtime/read_barrier_c.h index 710c21f03..8e5b1872f 100644 --- a/runtime/read_barrier_c.h +++ b/runtime/read_barrier_c.h @@ -26,10 +26,16 @@ // table-lookup read barriers. #ifdef ART_USE_READ_BARRIER +#if ART_READ_BARRIER_TYPE_IS_BAKER #define USE_BAKER_READ_BARRIER -// #define USE_BROOKS_READ_BARRIER -// #define USE_TABLE_LOOKUP_READ_BARRIER +#elif ART_READ_BARRIER_TYPE_IS_BROOKS +#define USE_BROOKS_READ_BARRIER +#elif ART_READ_BARRIER_TYPE_IS_TABLELOOKUP +#define USE_TABLE_LOOKUP_READ_BARRIER +#else +#error "ART read barrier type must be set" #endif +#endif // ART_USE_READ_BARRIER #ifdef ART_HEAP_POISONING #define USE_HEAP_POISONING