summaryrefslogtreecommitdiff
path: root/compiler/optimizing/stack_map_test.cc
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2017-01-19 18:00:45 -0800
committerMathieu Chartier <mathieuc@google.com>2017-01-27 10:04:05 -0800
commit12f1b99775bbf7dd82d0a897587ab6ed0e75ee22 (patch)
treef8cb3a7334652e59577b7ff97a1805d1bf4ddd94 /compiler/optimizing/stack_map_test.cc
parentd8f6e6430b26bf199f4a52f0624becb7c29f3c19 (diff)
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
Diffstat (limited to 'compiler/optimizing/stack_map_test.cc')
-rw-r--r--compiler/optimizing/stack_map_test.cc27
1 files changed, 21 insertions, 6 deletions
diff --git a/compiler/optimizing/stack_map_test.cc b/compiler/optimizing/stack_map_test.cc
index f68695bcbc..da4597e385 100644
--- a/compiler/optimizing/stack_map_test.cc
+++ b/compiler/optimizing/stack_map_test.cc
@@ -27,10 +27,10 @@ namespace art {
// Check that the stack mask of given stack map is identical
// to the given bit vector. Returns true if they are same.
static bool CheckStackMask(
+ int number_of_bits,
const StackMap& stack_map,
StackMapEncoding& encoding,
const BitVector& bit_vector) {
- int number_of_bits = stack_map.GetNumberOfStackMaskBits(encoding);
if (bit_vector.GetHighestBitSet() >= number_of_bits) {
return false;
}
@@ -81,7 +81,10 @@ TEST(StackMapTest, Test1) {
ASSERT_EQ(64u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA));
ASSERT_EQ(0x3u, stack_map.GetRegisterMask(encoding.stack_map_encoding));
- ASSERT_TRUE(CheckStackMask(stack_map, encoding.stack_map_encoding, sp_mask));
+ ASSERT_TRUE(CheckStackMask(code_info.GetNumberOfStackMaskBits(encoding),
+ stack_map,
+ encoding.stack_map_encoding,
+ sp_mask));
ASSERT_TRUE(stack_map.HasDexRegisterMap(encoding.stack_map_encoding));
DexRegisterMap dex_register_map =
@@ -196,7 +199,10 @@ TEST(StackMapTest, Test2) {
ASSERT_EQ(64u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA));
ASSERT_EQ(0x3u, stack_map.GetRegisterMask(encoding.stack_map_encoding));
- ASSERT_TRUE(CheckStackMask(stack_map, encoding.stack_map_encoding, sp_mask1));
+ ASSERT_TRUE(CheckStackMask(code_info.GetNumberOfStackMaskBits(encoding),
+ stack_map,
+ encoding.stack_map_encoding,
+ sp_mask1));
ASSERT_TRUE(stack_map.HasDexRegisterMap(encoding.stack_map_encoding));
DexRegisterMap dex_register_map =
@@ -255,7 +261,10 @@ TEST(StackMapTest, Test2) {
ASSERT_EQ(128u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA));
ASSERT_EQ(0xFFu, stack_map.GetRegisterMask(encoding.stack_map_encoding));
- ASSERT_TRUE(CheckStackMask(stack_map, encoding.stack_map_encoding, sp_mask2));
+ ASSERT_TRUE(CheckStackMask(code_info.GetNumberOfStackMaskBits(encoding),
+ stack_map,
+ encoding.stack_map_encoding,
+ sp_mask2));
ASSERT_TRUE(stack_map.HasDexRegisterMap(encoding.stack_map_encoding));
DexRegisterMap dex_register_map =
@@ -309,7 +318,10 @@ TEST(StackMapTest, Test2) {
ASSERT_EQ(192u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA));
ASSERT_EQ(0xABu, stack_map.GetRegisterMask(encoding.stack_map_encoding));
- ASSERT_TRUE(CheckStackMask(stack_map, encoding.stack_map_encoding, sp_mask3));
+ ASSERT_TRUE(CheckStackMask(code_info.GetNumberOfStackMaskBits(encoding),
+ stack_map,
+ encoding.stack_map_encoding,
+ sp_mask3));
ASSERT_TRUE(stack_map.HasDexRegisterMap(encoding.stack_map_encoding));
DexRegisterMap dex_register_map =
@@ -363,7 +375,10 @@ TEST(StackMapTest, Test2) {
ASSERT_EQ(256u, stack_map.GetNativePcOffset(encoding.stack_map_encoding, kRuntimeISA));
ASSERT_EQ(0xCDu, stack_map.GetRegisterMask(encoding.stack_map_encoding));
- ASSERT_TRUE(CheckStackMask(stack_map, encoding.stack_map_encoding, sp_mask4));
+ ASSERT_TRUE(CheckStackMask(code_info.GetNumberOfStackMaskBits(encoding),
+ stack_map,
+ encoding.stack_map_encoding,
+ sp_mask4));
ASSERT_TRUE(stack_map.HasDexRegisterMap(encoding.stack_map_encoding));
DexRegisterMap dex_register_map =