summaryrefslogtreecommitdiffstats
path: root/runtime/asm_support.h
diff options
context:
space:
mode:
authorHiroshi Yamauchi <yamauchi@google.com>2014-01-31 13:35:49 -0800
committerHiroshi Yamauchi <yamauchi@google.com>2014-02-25 13:56:48 -0800
commit9d04a20bde1b1855cefc64aebc1a44e253b1a13b (patch)
tree85b8315677c3d6545ac6c8b27db7cb00b82e68b7 /runtime/asm_support.h
parent0f8aa6b38f204ccacd3ac12bb844e628cec2215b (diff)
downloadart-9d04a20bde1b1855cefc64aebc1a44e253b1a13b.zip
art-9d04a20bde1b1855cefc64aebc1a44e253b1a13b.tar.gz
art-9d04a20bde1b1855cefc64aebc1a44e253b1a13b.tar.bz2
(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
Diffstat (limited to 'runtime/asm_support.h')
-rw-r--r--runtime/asm_support.h26
1 files changed, 26 insertions, 0 deletions
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_