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
diff --git a/runtime/memory_region.cc b/runtime/memory_region.cc
index 5bf0f40..b0ecab4 100644
--- a/runtime/memory_region.cc
+++ b/runtime/memory_region.cc
@@ -43,8 +43,8 @@
// Bits are stored in this order {7 6 5 4 3 2 1 0}.
// How many remaining bits in current byte is (bit_offset % kBitsPerByte) + 1.
uint8_t* out = ComputeInternalPointer<uint8_t>(bit_offset >> kBitsPerByteLog2);
- auto orig_len = length;
- auto orig_value = value;
+ size_t orig_len = length;
+ uint32_t orig_value = value;
uintptr_t bit_remainder = bit_offset % kBitsPerByte;
while (true) {
const uintptr_t remaining_bits = kBitsPerByte - bit_remainder;