From 9d04a20bde1b1855cefc64aebc1a44e253b1a13b Mon Sep 17 00:00:00 2001 From: Hiroshi Yamauchi Date: Fri, 31 Jan 2014 13:35:49 -0800 Subject: (Experimental) Add Brooks pointers. This feature is disabled by default. Verified that the Brooks pointers are installed correctly by using the CMS/SS collectors. Change-Id: Ia9be9814ab6e29169ac85edc4792ce8c81d552a9 --- runtime/asm_support.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'runtime/asm_support.h') diff --git a/runtime/asm_support.h b/runtime/asm_support.h index 4c42099..0c1a72a 100644 --- a/runtime/asm_support.h +++ b/runtime/asm_support.h @@ -17,6 +17,8 @@ #ifndef ART_RUNTIME_ASM_SUPPORT_H_ #define ART_RUNTIME_ASM_SUPPORT_H_ +#include "brooks_pointer.h" + // Value loaded into rSUSPEND for quick. When this value is counted down to zero we do a suspend // check. #define SUSPEND_CHECK_INTERVAL (1000) @@ -25,6 +27,8 @@ #define CLASS_OFFSET 0 #define LOCK_WORD_OFFSET 4 +#ifndef USE_BROOKS_POINTER + // Offsets within java.lang.Class. #define CLASS_COMPONENT_TYPE_OFFSET 12 @@ -43,4 +47,26 @@ #define METHOD_PORTABLE_CODE_OFFSET 40 #define METHOD_QUICK_CODE_OFFSET 48 +#else + +// Offsets within java.lang.Class. +#define CLASS_COMPONENT_TYPE_OFFSET 20 + +// Array offsets. +#define ARRAY_LENGTH_OFFSET 16 +#define OBJECT_ARRAY_DATA_OFFSET 20 + +// Offsets within java.lang.String. +#define STRING_VALUE_OFFSET 16 +#define STRING_COUNT_OFFSET 20 +#define STRING_OFFSET_OFFSET 28 +#define STRING_DATA_OFFSET 20 + +// Offsets within java.lang.Method. +#define METHOD_DEX_CACHE_METHODS_OFFSET 20 +#define METHOD_PORTABLE_CODE_OFFSET 48 +#define METHOD_QUICK_CODE_OFFSET 56 + +#endif + #endif // ART_RUNTIME_ASM_SUPPORT_H_ -- cgit v1.1