summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShih-wei Liao <sliao@google.com>2012-03-04 14:28:35 -0800
committerShih-wei Liao <sliao@google.com>2012-03-04 23:07:30 -0800
commit113f4fc6600ac72c3d5b8ef7c8a9e041116111d0 (patch)
tree2d185d86ad0e12f028661fba18f809338c982b39 /src
parenta8a9c3490776ab897a15bebd31119c94ede5c19a (diff)
downloadart-113f4fc6600ac72c3d5b8ef7c8a9e041116111d0.zip
art-113f4fc6600ac72c3d5b8ef7c8a9e041116111d0.tar.gz
art-113f4fc6600ac72c3d5b8ef7c8a9e041116111d0.tar.bz2
Add runtime support routines to runtime_support_llvm.h and utils_llvm.
E.g., to pass compiler_test, add art_throw_null_pointer_exception_from_code. Change-Id: Ib8a367fd52ee82dcafe8f916050f0b59e5eda3bb
Diffstat (limited to 'src')
-rw-r--r--src/compiler_llvm/runtime_support_llvm.h24
-rw-r--r--src/compiler_llvm/utils_llvm.cc7
2 files changed, 31 insertions, 0 deletions
diff --git a/src/compiler_llvm/runtime_support_llvm.h b/src/compiler_llvm/runtime_support_llvm.h
index 548222a..c21cd7e 100644
--- a/src/compiler_llvm/runtime_support_llvm.h
+++ b/src/compiler_llvm/runtime_support_llvm.h
@@ -5,12 +5,36 @@
namespace art {
+//----------------------------------------------------------------------------
+// Thread
+//----------------------------------------------------------------------------
+
void art_push_shadow_frame_from_code(void* new_shadow_frame);
void art_pop_shadow_frame_from_code();
+
+//----------------------------------------------------------------------------
+// Exception
+//----------------------------------------------------------------------------
+
bool art_is_exception_pending_from_code();
+void art_throw_div_zero_from_code();
+
+void art_throw_array_bounds_from_code(int32_t length, int32_t index);
+
+void art_throw_no_such_method_from_code(int32_t method_idx);
+
+void art_throw_null_pointer_exception_from_code();
+
+void art_throw_stack_overflow_from_code(void*);
+
+void art_throw_exception_from_code(Object* exception);
+
+int32_t art_find_catch_block_from_code(Object* exception, int32_t dex_pc);
+
+
void art_test_suspend_from_code();
void art_set_current_thread_from_code(void* thread_object_addr);
diff --git a/src/compiler_llvm/utils_llvm.cc b/src/compiler_llvm/utils_llvm.cc
index 93fad37..ca50f6f 100644
--- a/src/compiler_llvm/utils_llvm.cc
+++ b/src/compiler_llvm/utils_llvm.cc
@@ -122,6 +122,13 @@ void* find_sym(void* context, char const* name) {
DEF("art_push_shadow_frame_from_code", art_push_shadow_frame_from_code)
DEF("art_pop_shadow_frame_from_code", art_pop_shadow_frame_from_code)
DEF("art_is_exception_pending_from_code", art_is_exception_pending_from_code)
+ DEF("art_throw_div_zero_from_code", art_throw_div_zero_from_code)
+ DEF("art_throw_array_bounds_from_code", art_throw_array_bounds_from_code)
+ DEF("art_throw_no_such_method_from_code", art_throw_no_such_method_from_code)
+ DEF("art_throw_null_pointer_exception_from_code", art_throw_null_pointer_exception_from_code)
+ DEF("art_throw_stack_overflow_from_code", art_throw_stack_overflow_from_code)
+ DEF("art_throw_exception_from_code", art_throw_exception_from_code)
+ DEF("art_find_catch_block_from_code", art_find_catch_block_from_code)
DEF("art_test_suspend_from_code", art_test_suspend_from_code)
DEF("art_set_current_thread_from_code", art_set_current_thread_from_code)
DEF("printf", printf)