Various fixes to the interpreter. First 23 run-test tests pass.
- Factored out code to throw stack overflow error into its own method.
- Increased kStackOverflowReservedBytes to 10kB to support interpreter.
- Reordered return type checks to prevent type resolution with an
exception pending.
- Fixed field checks so they pass if the field is static or the object
is the declaring class.
- Suppressed using the interpreter for proxy methods.
Change-Id: Ide73ec928ab0aa7b31229c4e69679a35dd948e43
diff --git a/src/runtime_support.h b/src/runtime_support.h
index e54e05b..d0a6209 100644
--- a/src/runtime_support.h
+++ b/src/runtime_support.h
@@ -231,6 +231,8 @@
bool can_run_clinit, bool verify_access)
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
+extern void ThrowStackOverflowError(Thread* self) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
+
static inline String* ResolveStringFromCode(const AbstractMethod* referrer, uint32_t string_idx)
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {
ClassLinker* class_linker = Runtime::Current()->GetClassLinker();