Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 1 | ;; |
| 2 | ;; Copyright (C) 2012 The Android Open Source Project |
| 3 | ;; |
| 4 | ;; Licensed under the Apache License, Version 2.0 (the "License"); |
| 5 | ;; you may not use this file except in compliance with the License. |
| 6 | ;; You may obtain a copy of the License at |
| 7 | ;; |
| 8 | ;; http://www.apache.org/licenses/LICENSE-2.0 |
| 9 | ;; |
| 10 | ;; Unless required by applicable law or agreed to in writing, software |
| 11 | ;; distributed under the License is distributed on an "AS IS" BASIS, |
| 12 | ;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 13 | ;; See the License for the specific language governing permissions and |
| 14 | ;; limitations under the License. |
| 15 | ;; |
| 16 | |
| 17 | |
| 18 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 19 | ; Type |
| 20 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 21 | |
| 22 | %JavaObject = type opaque |
| 23 | |
Logan Chien | 1b0a1b7 | 2012-03-15 06:20:17 +0800 | [diff] [blame] | 24 | %ShadowFrame = type { %ShadowFrame* ; Previous frame |
| 25 | , %JavaObject* ; Method object pointer |
| 26 | , i32 ; Line number for stack backtrace |
| 27 | , i32 ; Number of references |
| 28 | ; [0 x %JavaObject*] ; References |
| 29 | } |
Logan Chien | 3f71e70 | 2012-02-17 18:45:27 +0800 | [diff] [blame] | 30 | |
Logan Chien | 1b0a1b7 | 2012-03-15 06:20:17 +0800 | [diff] [blame] | 31 | declare void @__art_type_list(%JavaObject*, %ShadowFrame*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 32 | |
| 33 | |
| 34 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 35 | ; Thread |
| 36 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 37 | |
TDYa127 | 9d3ba24 | 2012-05-07 08:28:27 -0700 | [diff] [blame] | 38 | declare %JavaObject* @art_get_current_thread_from_code() |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 39 | declare void @art_set_current_thread_from_code(%JavaObject*) |
| 40 | |
TDYa127 | 706e9b6 | 2012-04-19 12:24:26 -0700 | [diff] [blame] | 41 | declare void @art_lock_object_from_code(%JavaObject*, %JavaObject*) |
| 42 | declare void @art_unlock_object_from_code(%JavaObject*, %JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 43 | |
TDYa127 | 853cd09 | 2012-04-21 22:15:31 -0700 | [diff] [blame] | 44 | declare void @art_test_suspend_from_code(%JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 45 | |
TDYa127 | de479be | 2012-05-31 08:03:26 -0700 | [diff] [blame] | 46 | declare %ShadowFrame* @art_push_shadow_frame_from_code(%JavaObject*, %ShadowFrame*, |
| 47 | %JavaObject*, i32) |
TDYa127 | 0de52be | 2012-05-27 20:49:31 -0700 | [diff] [blame] | 48 | declare void @art_pop_shadow_frame_from_code(%ShadowFrame*) |
Logan Chien | 3f71e70 | 2012-02-17 18:45:27 +0800 | [diff] [blame] | 49 | |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 50 | |
| 51 | |
| 52 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 53 | ; Exception |
| 54 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 55 | |
TDYa127 | 9d3ba24 | 2012-05-07 08:28:27 -0700 | [diff] [blame] | 56 | declare i1 @art_is_exception_pending_from_code() |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 57 | |
| 58 | declare void @art_throw_div_zero_from_code() |
| 59 | declare void @art_throw_array_bounds_from_code(i32, i32) |
| 60 | declare void @art_throw_no_such_method_from_code(i32) |
TDYa127 | 3f9137d | 2012-04-08 15:59:19 -0700 | [diff] [blame] | 61 | declare void @art_throw_null_pointer_exception_from_code(i32) |
TDYa127 | 4165a83 | 2012-04-03 17:47:16 -0700 | [diff] [blame] | 62 | declare void @art_throw_stack_overflow_from_code() |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 63 | declare void @art_throw_exception_from_code(%JavaObject*) |
Logan Chien | 9e5f5c1 | 2012-04-10 13:51:45 +0800 | [diff] [blame] | 64 | declare void @art_throw_verification_error_from_code(%JavaObject*, i32, i32) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 65 | |
| 66 | declare i32 @art_find_catch_block_from_code(%JavaObject*, i32) |
| 67 | |
| 68 | |
| 69 | |
| 70 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 71 | ; Object Space |
| 72 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 73 | |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 74 | declare %JavaObject* @art_alloc_object_from_code(i32, %JavaObject*, %JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 75 | declare %JavaObject* @art_alloc_object_from_code_with_access_check( |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 76 | i32, %JavaObject*, %JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 77 | |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 78 | declare %JavaObject* @art_alloc_array_from_code(i32, %JavaObject*, i32, %JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 79 | declare %JavaObject* @art_alloc_array_from_code_with_access_check( |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 80 | i32, %JavaObject*, i32, %JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 81 | declare %JavaObject* @art_check_and_alloc_array_from_code( |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 82 | i32, %JavaObject*, i32, %JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 83 | declare %JavaObject* @art_check_and_alloc_array_from_code_with_access_check( |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 84 | i32, %JavaObject*, i32, %JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 85 | |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 86 | declare void @art_find_instance_field_from_code(i32, %JavaObject*) |
| 87 | declare void @art_find_static_field_from_code(i32, %JavaObject*) |
| 88 | |
Logan Chien | 7e7fabc | 2012-04-10 18:59:11 +0800 | [diff] [blame] | 89 | declare %JavaObject* @art_find_static_method_from_code_with_access_check( |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 90 | i32, %JavaObject*, %JavaObject*, %JavaObject*) |
Logan Chien | 7e7fabc | 2012-04-10 18:59:11 +0800 | [diff] [blame] | 91 | declare %JavaObject* @art_find_direct_method_from_code_with_access_check( |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 92 | i32, %JavaObject*, %JavaObject*, %JavaObject*) |
Logan Chien | 7e7fabc | 2012-04-10 18:59:11 +0800 | [diff] [blame] | 93 | declare %JavaObject* @art_find_virtual_method_from_code_with_access_check( |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 94 | i32, %JavaObject*, %JavaObject*, %JavaObject*) |
Logan Chien | 7e7fabc | 2012-04-10 18:59:11 +0800 | [diff] [blame] | 95 | declare %JavaObject* @art_find_super_method_from_code_with_access_check( |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 96 | i32, %JavaObject*, %JavaObject*, %JavaObject*) |
Logan Chien | 7e7fabc | 2012-04-10 18:59:11 +0800 | [diff] [blame] | 97 | declare %JavaObject* @art_find_interface_method_from_code_with_access_check( |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 98 | i32, %JavaObject*, %JavaObject*, %JavaObject*) |
Logan Chien | 7e7fabc | 2012-04-10 18:59:11 +0800 | [diff] [blame] | 99 | declare %JavaObject* @art_find_interface_method_from_code( |
TDYa127 | da83d97 | 2012-04-18 00:21:49 -0700 | [diff] [blame] | 100 | i32, %JavaObject*, %JavaObject*, %JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 101 | |
TDYa127 | 706e9b6 | 2012-04-19 12:24:26 -0700 | [diff] [blame] | 102 | declare %JavaObject* @art_initialize_static_storage_from_code(i32, %JavaObject*, %JavaObject*) |
| 103 | declare %JavaObject* @art_initialize_type_from_code(i32, %JavaObject*, %JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 104 | declare %JavaObject* @art_initialize_type_and_verify_access_from_code( |
TDYa127 | 706e9b6 | 2012-04-19 12:24:26 -0700 | [diff] [blame] | 105 | i32, %JavaObject*, %JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 106 | |
| 107 | declare %JavaObject* @art_resolve_string_from_code(%JavaObject*, i32) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 108 | |
| 109 | declare i32 @art_set32_static_from_code(i32, %JavaObject*, i32) |
| 110 | declare i32 @art_set64_static_from_code(i32, %JavaObject*, i64) |
| 111 | declare i32 @art_set_obj_static_from_code(i32, %JavaObject*, %JavaObject*) |
| 112 | |
| 113 | declare i32 @art_get32_static_from_code(i32, %JavaObject*) |
| 114 | declare i64 @art_get64_static_from_code(i32, %JavaObject*) |
| 115 | declare %JavaObject* @art_get_obj_static_from_code(i32, %JavaObject*) |
| 116 | |
Logan Chien | 3b2b2e7 | 2012-03-06 16:11:45 +0800 | [diff] [blame] | 117 | declare i32 @art_set32_instance_from_code(i32, |
| 118 | %JavaObject*, |
| 119 | %JavaObject*, |
| 120 | i32) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 121 | |
Logan Chien | 3b2b2e7 | 2012-03-06 16:11:45 +0800 | [diff] [blame] | 122 | declare i32 @art_set64_instance_from_code(i32, |
| 123 | %JavaObject*, |
| 124 | %JavaObject*, |
| 125 | i64) |
| 126 | |
| 127 | declare i32 @art_set_obj_instance_from_code(i32, |
| 128 | %JavaObject*, |
| 129 | %JavaObject*, |
| 130 | %JavaObject*) |
| 131 | |
| 132 | declare i32 @art_get32_instance_from_code(i32, |
| 133 | %JavaObject*, |
| 134 | %JavaObject*) |
| 135 | |
| 136 | declare i64 @art_get64_instance_from_code(i32, |
| 137 | %JavaObject*, |
| 138 | %JavaObject*) |
| 139 | |
| 140 | declare %JavaObject* @art_get_obj_instance_from_code(i32, |
| 141 | %JavaObject*, |
| 142 | %JavaObject*) |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 143 | |
TDYa127 | 28f1a14 | 2012-03-15 21:51:52 -0700 | [diff] [blame] | 144 | declare %JavaObject* @art_decode_jobject_in_thread(%JavaObject*, |
| 145 | %JavaObject*) |
| 146 | |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 147 | |
Logan Chien | 86f5067 | 2012-04-24 13:08:45 +0800 | [diff] [blame] | 148 | declare void @art_fill_array_data_from_code(%JavaObject*, i32, |
| 149 | %JavaObject*, i32) |
| 150 | |
| 151 | |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 152 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
TDYa127 | 1b86d07 | 2012-04-05 17:38:56 -0700 | [diff] [blame] | 153 | ; Type Checking, in the nature of casting |
Logan Chien | 42e0e15 | 2012-01-13 15:42:36 +0800 | [diff] [blame] | 154 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 155 | |
| 156 | declare i32 @art_is_assignable_from_code(%JavaObject*, %JavaObject*) |
| 157 | declare void @art_check_cast_from_code(%JavaObject*, %JavaObject*) |
TDYa127 | 1b86d07 | 2012-04-05 17:38:56 -0700 | [diff] [blame] | 158 | declare void @art_check_put_array_element_from_code(%JavaObject*, %JavaObject*) |
TDYa127 | 8532191 | 2012-04-01 15:24:56 -0700 | [diff] [blame] | 159 | |
TDYa127 | a474687 | 2012-04-11 23:48:55 -0700 | [diff] [blame] | 160 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 161 | ; Math |
| 162 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 163 | |
jeffhao | 41005dd | 2012-05-09 17:58:52 -0700 | [diff] [blame] | 164 | declare i64 @art_d2l(double) |
| 165 | declare i32 @art_d2i(double) |
| 166 | declare i64 @art_f2l(float) |
| 167 | declare i32 @art_f2i(float) |
TDYa127 | a474687 | 2012-04-11 23:48:55 -0700 | [diff] [blame] | 168 | |
| 169 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 170 | ; Temporary runtime support, will be removed in the future |
| 171 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 172 | |
TDYa127 | 83bb662 | 2012-04-17 02:20:34 -0700 | [diff] [blame] | 173 | declare void @art_mark_gc_card_from_code(%JavaObject*, %JavaObject*) |
| 174 | |
TDYa127 | 0b686e5 | 2012-04-09 22:43:35 -0700 | [diff] [blame] | 175 | declare %JavaObject* @art_fix_stub_from_code(%JavaObject*) |
TDYa127 | 5bb8601 | 2012-04-11 05:57:28 -0700 | [diff] [blame] | 176 | |
| 177 | declare void @art_proxy_invoke_handler_from_code(%JavaObject*, ...) |