diff options
author | Shih-wei Liao <sliao@google.com> | 2012-03-04 14:28:35 -0800 |
---|---|---|
committer | Shih-wei Liao <sliao@google.com> | 2012-03-04 23:07:30 -0800 |
commit | 113f4fc6600ac72c3d5b8ef7c8a9e041116111d0 (patch) | |
tree | 2d185d86ad0e12f028661fba18f809338c982b39 /src | |
parent | a8a9c3490776ab897a15bebd31119c94ede5c19a (diff) | |
download | art-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.h | 24 | ||||
-rw-r--r-- | src/compiler_llvm/utils_llvm.cc | 7 |
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) |