summaryrefslogtreecommitdiffstats
path: root/runtime/stack.h
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2014-09-22 22:51:09 -0700
committerIan Rogers <irogers@google.com>2014-10-20 16:01:28 -0700
commit1d8cdbc5202378a5f1a4b3a1fba610675ed4dcd5 (patch)
tree6a1b0f49aee5a97b513bd0becc734d284aa7fb65 /runtime/stack.h
parent1c1786f193323d3bd706463894001117f3471595 (diff)
downloadart-1d8cdbc5202378a5f1a4b3a1fba610675ed4dcd5.zip
art-1d8cdbc5202378a5f1a4b3a1fba610675ed4dcd5.tar.gz
art-1d8cdbc5202378a5f1a4b3a1fba610675ed4dcd5.tar.bz2
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
Diffstat (limited to 'runtime/stack.h')
-rw-r--r--runtime/stack.h28
1 files changed, 7 insertions, 21 deletions
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 ShadowFrame {
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 @@ class PACKED(4) ManagedStack {
}
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 @@ class PACKED(4) ManagedStack {
}
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 @@ class PACKED(4) ManagedStack {
}
void SetTopShadowFrame(ShadowFrame* top) {
- DCHECK(top_quick_frame_ == NULL);
+ DCHECK(top_quick_frame_ == nullptr);
top_shadow_frame_ = top;
}
@@ -441,10 +428,9 @@ class PACKED(4) ManagedStack {
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 {