diff options
Diffstat (limited to 'compiler/common_compiler_test.cc')
| -rw-r--r-- | compiler/common_compiler_test.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/compiler/common_compiler_test.cc b/compiler/common_compiler_test.cc index 97387a1c9c..a3d9a0bd6d 100644 --- a/compiler/common_compiler_test.cc +++ b/compiler/common_compiler_test.cc @@ -60,14 +60,18 @@ void CommonCompilerTest::MakeExecutable(mirror::ArtMethod* method) { const std::vector<uint8_t>& mapping_table = compiled_method->GetMappingTable(); uint32_t mapping_table_offset = mapping_table.empty() ? 0u : sizeof(OatQuickMethodHeader) + vmap_table.size() + mapping_table.size(); - OatQuickMethodHeader method_header(mapping_table_offset, vmap_table_offset, + const std::vector<uint8_t>& gc_map = *compiled_method->GetGcMap(); + uint32_t gc_map_offset = gc_map.empty() ? 0u + : sizeof(OatQuickMethodHeader) + vmap_table.size() + mapping_table.size() + gc_map.size(); + OatQuickMethodHeader method_header(mapping_table_offset, vmap_table_offset, gc_map_offset, compiled_method->GetFrameSizeInBytes(), compiled_method->GetCoreSpillMask(), compiled_method->GetFpSpillMask(), code_size); header_code_and_maps_chunks_.push_back(std::vector<uint8_t>()); std::vector<uint8_t>* chunk = &header_code_and_maps_chunks_.back(); - size_t size = sizeof(method_header) + code_size + vmap_table.size() + mapping_table.size(); + size_t size = sizeof(method_header) + code_size + vmap_table.size() + mapping_table.size() + + gc_map.size(); size_t code_offset = compiled_method->AlignCode(size - code_size); size_t padding = code_offset - (size - code_size); chunk->reserve(padding + size); @@ -75,6 +79,7 @@ void CommonCompilerTest::MakeExecutable(mirror::ArtMethod* method) { memcpy(&(*chunk)[0], &method_header, sizeof(method_header)); chunk->insert(chunk->begin(), vmap_table.begin(), vmap_table.end()); chunk->insert(chunk->begin(), mapping_table.begin(), mapping_table.end()); + chunk->insert(chunk->begin(), gc_map.begin(), gc_map.end()); chunk->insert(chunk->begin(), padding, 0); chunk->insert(chunk->end(), code->begin(), code->end()); CHECK_EQ(padding + size, chunk->size()); |