From 12f1b99775bbf7dd82d0a897587ab6ed0e75ee22 Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Thu, 19 Jan 2017 18:00:45 -0800 Subject: Remove alignment bits in between stack maps Saves 0.65% of boot.oat size, probably similar on apps. Added BitMemoryRegion to avoid requiring adding state to StackMap. Added test to memory_region_test. Test: clean-oat-host && test-art-host Bug: 34621054 Change-Id: I40279c59e262bd5e3c6a9135f83e22b5b6900d68 --- runtime/stack_map.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'runtime/stack_map.cc') diff --git a/runtime/stack_map.cc b/runtime/stack_map.cc index 690b069c8e..e093293e75 100644 --- a/runtime/stack_map.cc +++ b/runtime/stack_map.cc @@ -198,7 +198,7 @@ void StackMap::Dump(VariableIndentationOutputStream* vios, << "StackMap" << header_suffix << std::hex << " [native_pc=0x" << code_offset + pc_offset << "]" - << " [entry_size=0x" << encoding.stack_map_size_in_bytes << "]" + << " [entry_size=0x" << encoding.stack_map_size_in_bits << " bits]" << " (dex_pc=0x" << GetDexPc(stack_map_encoding) << ", native_pc_offset=0x" << pc_offset << ", dex_register_map_offset=0x" << GetDexRegisterMapOffset(stack_map_encoding) @@ -206,7 +206,7 @@ void StackMap::Dump(VariableIndentationOutputStream* vios, << ", register_mask=0x" << GetRegisterMask(stack_map_encoding) << std::dec << ", stack_mask=0b"; - for (size_t i = 0, e = GetNumberOfStackMaskBits(stack_map_encoding); i < e; ++i) { + for (size_t i = 0, e = code_info.GetNumberOfStackMaskBits(encoding); i < e; ++i) { vios->Stream() << GetStackMaskBit(stack_map_encoding, e - i - 1); } vios->Stream() << ")\n"; -- cgit v1.2.3-59-g8ed1b