diff options
author | 2019-12-10 10:17:23 +0000 | |
---|---|---|
committer | 2019-12-18 06:50:39 +0000 | |
commit | 00391824f4ee89f9fbed178a1ee32bc29fa77b3b (patch) | |
tree | aea6bc5e49801c5b4816257ab16a97181ef0d911 /runtime/stack.cc | |
parent | 001e5b33ba7065dde0b85450830b605733ae1685 (diff) |
Add an implementation of Nterp for x64.
And enable it on x64 when runtime and ArtMethod requirements are met
(see nterp.cc).
Test: test.py
Bug: 112676029
Change-Id: I772cd20a20fdc0ff99529df7495801d773091584
Diffstat (limited to 'runtime/stack.cc')
-rw-r--r-- | runtime/stack.cc | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/runtime/stack.cc b/runtime/stack.cc index 410e0fd144..72690da088 100644 --- a/runtime/stack.cc +++ b/runtime/stack.cc @@ -748,14 +748,13 @@ void StackVisitor::SanityCheckFrame() const { // Frame sanity. size_t frame_size = GetCurrentQuickFrameInfo().FrameSizeInBytes(); CHECK_NE(frame_size, 0u); - // A rough guess at an upper size we expect to see for a frame. + // For compiled code, we could try to have a rough guess at an upper size we expect + // to see for a frame: // 256 registers // 2 words HandleScope overhead // 3+3 register spills - // TODO: this seems architecture specific for the case of JNI frames. - // TODO: 083-compiler-regressions ManyFloatArgs shows this estimate is wrong. // const size_t kMaxExpectedFrameSize = (256 + 2 + 3 + 3) * sizeof(word); - const size_t kMaxExpectedFrameSize = 2 * KB; + const size_t kMaxExpectedFrameSize = interpreter::kMaxNterpFrame; CHECK_LE(frame_size, kMaxExpectedFrameSize) << method->PrettyMethod(); size_t return_pc_offset = GetCurrentQuickFrameInfo().GetReturnPcOffset(); CHECK_LT(return_pc_offset, frame_size); @@ -852,7 +851,6 @@ void StackVisitor::WalkStack(bool include_transitions) { cur_quick_frame_ = current_fragment->GetTopQuickFrame(); cur_quick_frame_pc_ = 0; cur_oat_quick_method_header_ = nullptr; - if (cur_quick_frame_ != nullptr) { // Handle quick stack frames. // Can't be both a shadow and a quick fragment. DCHECK(current_fragment->GetTopShadowFrame() == nullptr); |