Refactor quick entrypoints
Remove FinishCalleeSaveFrameSetup.
Assembly routines write down anchor into TLS as well as placing runtime
method in callee save frame.
Simplify artSet64InstanceFromCode by not computing the referrer from the
stack in the C++ code.
Move assembly offset tests next to constant declaration and tidy arch_test.
Change-Id: Iededeebc05e54a1e2bb7bb3572b8ba012cffa1c8
diff --git a/runtime/stack.h b/runtime/stack.h
index 25e50a1..2f8df61 100644
--- a/runtime/stack.h
+++ b/runtime/stack.h
@@ -360,7 +360,7 @@
class PACKED(4) ManagedStack {
public:
ManagedStack()
- : link_(NULL), top_shadow_frame_(NULL), top_quick_frame_(NULL), top_quick_frame_pc_(0) {}
+ : top_quick_frame_(nullptr), link_(nullptr), top_shadow_frame_(nullptr) {}
void PushManagedStackFragment(ManagedStack* fragment) {
// Copy this top fragment into given fragment.
@@ -386,29 +386,16 @@
}
void SetTopQuickFrame(StackReference<mirror::ArtMethod>* top) {
- DCHECK(top_shadow_frame_ == NULL);
+ DCHECK(top_shadow_frame_ == nullptr);
top_quick_frame_ = top;
}
- uintptr_t GetTopQuickFramePc() const {
- return top_quick_frame_pc_;
- }
-
- void SetTopQuickFramePc(uintptr_t pc) {
- DCHECK(top_shadow_frame_ == NULL);
- top_quick_frame_pc_ = pc;
- }
-
static size_t TopQuickFrameOffset() {
return OFFSETOF_MEMBER(ManagedStack, top_quick_frame_);
}
- static size_t TopQuickFramePcOffset() {
- return OFFSETOF_MEMBER(ManagedStack, top_quick_frame_pc_);
- }
-
ShadowFrame* PushShadowFrame(ShadowFrame* new_top_frame) {
- DCHECK(top_quick_frame_ == NULL);
+ DCHECK(top_quick_frame_ == nullptr);
ShadowFrame* old_frame = top_shadow_frame_;
top_shadow_frame_ = new_top_frame;
new_top_frame->SetLink(old_frame);
@@ -416,8 +403,8 @@
}
ShadowFrame* PopShadowFrame() {
- DCHECK(top_quick_frame_ == NULL);
- CHECK(top_shadow_frame_ != NULL);
+ DCHECK(top_quick_frame_ == nullptr);
+ CHECK(top_shadow_frame_ != nullptr);
ShadowFrame* frame = top_shadow_frame_;
top_shadow_frame_ = frame->GetLink();
return frame;
@@ -428,7 +415,7 @@
}
void SetTopShadowFrame(ShadowFrame* top) {
- DCHECK(top_quick_frame_ == NULL);
+ DCHECK(top_quick_frame_ == nullptr);
top_shadow_frame_ = top;
}
@@ -441,10 +428,9 @@
bool ShadowFramesContain(StackReference<mirror::Object>* shadow_frame_entry) const;
private:
+ StackReference<mirror::ArtMethod>* top_quick_frame_;
ManagedStack* link_;
ShadowFrame* top_shadow_frame_;
- StackReference<mirror::ArtMethod>* top_quick_frame_;
- uintptr_t top_quick_frame_pc_;
};
class StackVisitor {