summaryrefslogtreecommitdiff
path: root/runtime/stack_map.h
diff options
context:
space:
mode:
author David Srbecky <dsrbecky@google.com> 2018-08-03 11:06:38 +0100
committer David Srbecky <dsrbecky@google.com> 2018-08-03 16:00:00 +0100
commita2d29a3a772f17014197e829aa8cb41026f88f05 (patch)
tree5fea3c3e18db733655c55fdd91175f9870b4ad35 /runtime/stack_map.h
parent8e7ddc234ecbde21b0e6755cf66bcad858a817d2 (diff)
Add stack map fast path for GC.
Test: test-art-host-gtest-stack_map_test Change-Id: Ia04a07b560fcce2fb955d66d1924ee224dec420d
Diffstat (limited to 'runtime/stack_map.h')
-rw-r--r--runtime/stack_map.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/runtime/stack_map.h b/runtime/stack_map.h
index acde3e3a90..d6db05a3b8 100644
--- a/runtime/stack_map.h
+++ b/runtime/stack_map.h
@@ -271,9 +271,11 @@ class CodeInfo {
public:
enum DecodeFlags {
Default = 0,
+ // Limits the decoding only to the data needed by GC.
+ GcMasksOnly = 1,
// Limits the decoding only to the main stack map table and inline info table.
// This is sufficient for many use cases and makes the header decoding faster.
- InlineInfoOnly = 1,
+ InlineInfoOnly = 2,
};
explicit CodeInfo(const uint8_t* data, DecodeFlags flags = DecodeFlags::Default) {
@@ -446,10 +448,10 @@ class CodeInfo {
uint32_t fp_spill_mask_;
uint32_t number_of_dex_registers_;
BitTable<StackMap> stack_maps_;
- BitTable<InlineInfo> inline_infos_;
- BitTable<MethodInfo> method_infos_;
BitTable<RegisterMask> register_masks_;
BitTable<MaskInfo> stack_masks_;
+ BitTable<InlineInfo> inline_infos_;
+ BitTable<MethodInfo> method_infos_;
BitTable<MaskInfo> dex_register_masks_;
BitTable<DexRegisterMapInfo> dex_register_maps_;
BitTable<DexRegisterInfo> dex_register_catalog_;