summaryrefslogtreecommitdiff
path: root/compiler/optimizing/stack_map_stream.h
diff options
context:
space:
mode:
authorRoland Levillain <rpl@google.com>2015-03-13 12:23:04 +0000
committerRoland Levillain <rpl@google.com>2015-03-13 12:54:45 +0000
commitede7bf8a5cef965974e7c1edcf46a41fbe50a49d (patch)
tree7f99657bd4f8591f7cf463c1a197e1a7575abab6 /compiler/optimizing/stack_map_stream.h
parent63346f57e2327894ce6c1e28e3d00342177538a6 (diff)
Align CodeInfo regions instead of their inner subregions.
Instead of word-aligning every stack map region, as well as the Dex register maps region of a CodeInfo object, just align the whole CodeInfo region itself. Change-Id: Ia35d213d2bd184729aa0d048874c76f7bc6da0f6
Diffstat (limited to 'compiler/optimizing/stack_map_stream.h')
-rw-r--r--compiler/optimizing/stack_map_stream.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/compiler/optimizing/stack_map_stream.h b/compiler/optimizing/stack_map_stream.h
index 8fb58d19a9..863bab29ac 100644
--- a/compiler/optimizing/stack_map_stream.h
+++ b/compiler/optimizing/stack_map_stream.h
@@ -99,10 +99,12 @@ class StackMapStream : public ValueObject {
}
size_t ComputeNeededSize() const {
- return CodeInfo::kFixedSize
+ size_t size = CodeInfo::kFixedSize
+ ComputeStackMapsSize()
+ ComputeDexRegisterMapsSize()
+ ComputeInlineInfoSize();
+ // On ARM, CodeInfo data must be 4-byte aligned.
+ return RoundUp(size, kWordAlignment);
}
size_t ComputeStackMaskSize() const {
@@ -110,7 +112,7 @@ class StackMapStream : public ValueObject {
}
size_t ComputeStackMapsSize() const {
- return stack_maps_.Size() * StackMap::ComputeAlignedStackMapSize(ComputeStackMaskSize());
+ return stack_maps_.Size() * StackMap::ComputeStackMapSize(ComputeStackMaskSize());
}
// Compute the size of the Dex register map of `entry`.
@@ -133,8 +135,7 @@ class StackMapStream : public ValueObject {
DexRegisterLocation entry = dex_register_maps_.Get(i);
size += DexRegisterMap::EntrySize(entry);
}
- // On ARM, the Dex register maps must be 4-byte aligned.
- return RoundUp(size, kWordAlignment);
+ return size;
}
// Compute the size of all the inline information pieces.