diff options
| author | 2014-05-02 14:40:15 +0100 | |
|---|---|---|
| committer | 2014-05-13 11:43:22 +0100 | |
| commit | 7624d25dad2d1ba25969ae704fccf68649103ae5 (patch) | |
| tree | de72194b76a4e23e0b15ec4085447ae7e4425815 /runtime/class_linker.cc | |
| parent | e1910f1d802dff79bba5ef61e1c4fd0b95f6e5b0 (diff) | |
Move quick frame info to OatQuickMethodHeader.
Rename OatMethodHeader to OatQuickMethodHeader, move frame
info from OatMethodOffsets to OatQuickMethodHeader. Retrieve
the info from other places for non-quick methods (portable
compiled bytecode or jni stub, generic jni, runtime,
abstract and proxy).
This change has a libcore/ companion CL
"Remove ArtMethod's quick fields for frame size and spills."
https://android-review.googlesource.com/94164
Bug: 11767815
Change-Id: I0e31a7875d76732e1ec479c86b9b5ca01203507f
Diffstat (limited to 'runtime/class_linker.cc')
| -rw-r--r-- | runtime/class_linker.cc | 26 |
1 files changed, 0 insertions, 26 deletions
diff --git a/runtime/class_linker.cc b/runtime/class_linker.cc index e3c162bdef..b2d8b375b6 100644 --- a/runtime/class_linker.cc +++ b/runtime/class_linker.cc @@ -1828,27 +1828,6 @@ static void LinkCode(const SirtRef<mirror::ArtMethod>& method, const OatFile::Oa DCHECK(method->GetEntryPointFromQuickCompiledCode() == GetQuickResolutionTrampoline(runtime->GetClassLinker()) || method->GetEntryPointFromQuickCompiledCode() == GetQuickGenericJniTrampoline()); - - DCHECK_EQ(method->GetFrameSizeInBytes<false>(), 0U); - - // Fix up method metadata if necessary. - uint32_t s_len; - const char* shorty = dex_file.GetMethodShorty(dex_file.GetMethodId(dex_method_index), &s_len); - uint32_t refs = 1; // Native method always has "this" or class. - for (uint32_t i = 1; i < s_len; ++i) { - if (shorty[i] == 'L') { - refs++; - } - } - size_t sirt_size = StackIndirectReferenceTable::GetAlignedSirtSize(refs); - - // Get the generic spill masks and base frame size. - mirror::ArtMethod* callee_save_method = - Runtime::Current()->GetCalleeSaveMethod(Runtime::kRefsAndArgs); - - method->SetFrameSizeInBytes(callee_save_method->GetFrameSizeInBytes() + sirt_size); - method->SetCoreSpillMask(callee_save_method->GetCoreSpillMask()); - method->SetFpSpillMask(callee_save_method->GetFpSpillMask()); } } @@ -3027,11 +3006,6 @@ mirror::ArtMethod* ClassLinker::CreateProxyMethod(Thread* self, // At runtime the method looks like a reference and argument saving method, clone the code // related parameters from this method. - mirror::ArtMethod* refs_and_args = - Runtime::Current()->GetCalleeSaveMethod(Runtime::kRefsAndArgs); - method->SetCoreSpillMask(refs_and_args->GetCoreSpillMask()); - method->SetFpSpillMask(refs_and_args->GetFpSpillMask()); - method->SetFrameSizeInBytes(refs_and_args->GetFrameSizeInBytes()); method->SetEntryPointFromQuickCompiledCode(GetQuickProxyInvokeHandler()); method->SetEntryPointFromPortableCompiledCode(GetPortableProxyInvokeHandler()); method->SetEntryPointFromInterpreter(artInterpreterToCompiledCodeBridge); |