summaryrefslogtreecommitdiffstats
path: root/runtime/stack.h
diff options
context:
space:
mode:
authorDave Allison <dallison@google.com>2014-04-01 01:07:45 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-04-01 01:07:45 +0000
commit81ed34e686532cebc1e17a273110decf0dd24e81 (patch)
tree885a781e5f8bd852e2c1615108ae7b17576a6567 /runtime/stack.h
parentcfd5acf281b0c509f86b13d73c6a8dfa3ea9922c (diff)
parentf943914730db8ad2ff03d49a2cacd31885d08fd7 (diff)
downloadart-81ed34e686532cebc1e17a273110decf0dd24e81.tar.gz
art-81ed34e686532cebc1e17a273110decf0dd24e81.tar.bz2
art-81ed34e686532cebc1e17a273110decf0dd24e81.zip
Merge "Implement implicit stack overflow checks"
Diffstat (limited to 'runtime/stack.h')
-rw-r--r--runtime/stack.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/runtime/stack.h b/runtime/stack.h
index 4ee5de1d89..ab903d6404 100644
--- a/runtime/stack.h
+++ b/runtime/stack.h
@@ -100,6 +100,14 @@ enum VRegBaseRegNum : int {
kVRegNonSpecialTempBaseReg = -3,
};
+// Special object used to mark the gap in the stack placed when a stack
+// overflow fault occurs during implicit stack checking. This is not
+// a real object - it is used simply as a valid address to which a
+// mirror::ArtMethod* can be compared during a stack walk. It is inserted
+// into the stack during the stack overflow signal handling to mark the gap
+// in which the memory is protected against read and write.
+extern void* stack_overflow_gap_marker;
+
// A reference from the shadow stack to a MirrorType object within the Java heap.
template<class MirrorType>
class MANAGED StackReference : public mirror::ObjectReference<false, MirrorType> {