blob: 7ea12f9b5cdb037b0df0a4c9119864fea90105b0 [file] [log] [blame]
Logan Chien42e0e152012-01-13 15:42:36 +08001;;
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 Chien1b0a1b72012-03-15 06:20:17 +080024%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 Chien3f71e702012-02-17 18:45:27 +080030
Logan Chien1b0a1b72012-03-15 06:20:17 +080031declare void @__art_type_list(%JavaObject*, %ShadowFrame*)
Logan Chien42e0e152012-01-13 15:42:36 +080032
33
34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
35; Thread
36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
37
TDYa1279d3ba242012-05-07 08:28:27 -070038declare %JavaObject* @art_get_current_thread_from_code()
TDYa127c1478262012-06-20 20:22:27 -070039declare %JavaObject* @art_set_current_thread_from_code(%JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +080040
TDYa127706e9b62012-04-19 12:24:26 -070041declare void @art_lock_object_from_code(%JavaObject*, %JavaObject*)
42declare void @art_unlock_object_from_code(%JavaObject*, %JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +080043
TDYa127853cd092012-04-21 22:15:31 -070044declare void @art_test_suspend_from_code(%JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +080045
TDYa127de479be2012-05-31 08:03:26 -070046declare %ShadowFrame* @art_push_shadow_frame_from_code(%JavaObject*, %ShadowFrame*,
47 %JavaObject*, i32)
TDYa1270de52be2012-05-27 20:49:31 -070048declare void @art_pop_shadow_frame_from_code(%ShadowFrame*)
Logan Chien3f71e702012-02-17 18:45:27 +080049
Logan Chien42e0e152012-01-13 15:42:36 +080050
51
52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
53; Exception
54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
55
Logan Chien42e0e152012-01-13 15:42:36 +080056declare void @art_throw_div_zero_from_code()
57declare void @art_throw_array_bounds_from_code(i32, i32)
58declare void @art_throw_no_such_method_from_code(i32)
TDYa1273f9137d2012-04-08 15:59:19 -070059declare void @art_throw_null_pointer_exception_from_code(i32)
TDYa1274165a832012-04-03 17:47:16 -070060declare void @art_throw_stack_overflow_from_code()
Logan Chien42e0e152012-01-13 15:42:36 +080061declare void @art_throw_exception_from_code(%JavaObject*)
62
63declare i32 @art_find_catch_block_from_code(%JavaObject*, i32)
64
65
66
67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
68; Object Space
69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
70
TDYa127da83d972012-04-18 00:21:49 -070071declare %JavaObject* @art_alloc_object_from_code(i32, %JavaObject*, %JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +080072declare %JavaObject* @art_alloc_object_from_code_with_access_check(
TDYa127da83d972012-04-18 00:21:49 -070073 i32, %JavaObject*, %JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +080074
TDYa127da83d972012-04-18 00:21:49 -070075declare %JavaObject* @art_alloc_array_from_code(i32, %JavaObject*, i32, %JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +080076declare %JavaObject* @art_alloc_array_from_code_with_access_check(
TDYa127da83d972012-04-18 00:21:49 -070077 i32, %JavaObject*, i32, %JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +080078declare %JavaObject* @art_check_and_alloc_array_from_code(
TDYa127da83d972012-04-18 00:21:49 -070079 i32, %JavaObject*, i32, %JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +080080declare %JavaObject* @art_check_and_alloc_array_from_code_with_access_check(
TDYa127da83d972012-04-18 00:21:49 -070081 i32, %JavaObject*, i32, %JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +080082
Logan Chien42e0e152012-01-13 15:42:36 +080083declare void @art_find_instance_field_from_code(i32, %JavaObject*)
84declare void @art_find_static_field_from_code(i32, %JavaObject*)
85
Logan Chien7e7fabc2012-04-10 18:59:11 +080086declare %JavaObject* @art_find_static_method_from_code_with_access_check(
TDYa127da83d972012-04-18 00:21:49 -070087 i32, %JavaObject*, %JavaObject*, %JavaObject*)
Logan Chien7e7fabc2012-04-10 18:59:11 +080088declare %JavaObject* @art_find_direct_method_from_code_with_access_check(
TDYa127da83d972012-04-18 00:21:49 -070089 i32, %JavaObject*, %JavaObject*, %JavaObject*)
Logan Chien7e7fabc2012-04-10 18:59:11 +080090declare %JavaObject* @art_find_virtual_method_from_code_with_access_check(
TDYa127da83d972012-04-18 00:21:49 -070091 i32, %JavaObject*, %JavaObject*, %JavaObject*)
Logan Chien7e7fabc2012-04-10 18:59:11 +080092declare %JavaObject* @art_find_super_method_from_code_with_access_check(
TDYa127da83d972012-04-18 00:21:49 -070093 i32, %JavaObject*, %JavaObject*, %JavaObject*)
Logan Chien7e7fabc2012-04-10 18:59:11 +080094declare %JavaObject* @art_find_interface_method_from_code_with_access_check(
TDYa127da83d972012-04-18 00:21:49 -070095 i32, %JavaObject*, %JavaObject*, %JavaObject*)
Logan Chien7e7fabc2012-04-10 18:59:11 +080096declare %JavaObject* @art_find_interface_method_from_code(
TDYa127da83d972012-04-18 00:21:49 -070097 i32, %JavaObject*, %JavaObject*, %JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +080098
TDYa127706e9b62012-04-19 12:24:26 -070099declare %JavaObject* @art_initialize_static_storage_from_code(i32, %JavaObject*, %JavaObject*)
100declare %JavaObject* @art_initialize_type_from_code(i32, %JavaObject*, %JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +0800101declare %JavaObject* @art_initialize_type_and_verify_access_from_code(
TDYa127706e9b62012-04-19 12:24:26 -0700102 i32, %JavaObject*, %JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +0800103
104declare %JavaObject* @art_resolve_string_from_code(%JavaObject*, i32)
Logan Chien42e0e152012-01-13 15:42:36 +0800105
106declare i32 @art_set32_static_from_code(i32, %JavaObject*, i32)
107declare i32 @art_set64_static_from_code(i32, %JavaObject*, i64)
108declare i32 @art_set_obj_static_from_code(i32, %JavaObject*, %JavaObject*)
109
110declare i32 @art_get32_static_from_code(i32, %JavaObject*)
111declare i64 @art_get64_static_from_code(i32, %JavaObject*)
112declare %JavaObject* @art_get_obj_static_from_code(i32, %JavaObject*)
113
Logan Chien3b2b2e72012-03-06 16:11:45 +0800114declare i32 @art_set32_instance_from_code(i32,
115 %JavaObject*,
116 %JavaObject*,
117 i32)
Logan Chien42e0e152012-01-13 15:42:36 +0800118
Logan Chien3b2b2e72012-03-06 16:11:45 +0800119declare i32 @art_set64_instance_from_code(i32,
120 %JavaObject*,
121 %JavaObject*,
122 i64)
123
124declare i32 @art_set_obj_instance_from_code(i32,
125 %JavaObject*,
126 %JavaObject*,
127 %JavaObject*)
128
129declare i32 @art_get32_instance_from_code(i32,
130 %JavaObject*,
131 %JavaObject*)
132
133declare i64 @art_get64_instance_from_code(i32,
134 %JavaObject*,
135 %JavaObject*)
136
137declare %JavaObject* @art_get_obj_instance_from_code(i32,
138 %JavaObject*,
139 %JavaObject*)
Logan Chien42e0e152012-01-13 15:42:36 +0800140
TDYa12728f1a142012-03-15 21:51:52 -0700141declare %JavaObject* @art_decode_jobject_in_thread(%JavaObject*,
142 %JavaObject*)
143
Logan Chien42e0e152012-01-13 15:42:36 +0800144
Logan Chien86f50672012-04-24 13:08:45 +0800145declare void @art_fill_array_data_from_code(%JavaObject*, i32,
146 %JavaObject*, i32)
147
148
Logan Chien42e0e152012-01-13 15:42:36 +0800149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TDYa1271b86d072012-04-05 17:38:56 -0700150; Type Checking, in the nature of casting
Logan Chien42e0e152012-01-13 15:42:36 +0800151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
152
153declare i32 @art_is_assignable_from_code(%JavaObject*, %JavaObject*)
154declare void @art_check_cast_from_code(%JavaObject*, %JavaObject*)
TDYa1271b86d072012-04-05 17:38:56 -0700155declare void @art_check_put_array_element_from_code(%JavaObject*, %JavaObject*)
TDYa12785321912012-04-01 15:24:56 -0700156
TDYa127a4746872012-04-11 23:48:55 -0700157;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
158; Math
159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
160
jeffhao41005dd2012-05-09 17:58:52 -0700161declare i64 @art_d2l(double)
162declare i32 @art_d2i(double)
163declare i64 @art_f2l(float)
164declare i32 @art_f2i(float)
TDYa127a4746872012-04-11 23:48:55 -0700165
166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TDYa1273d71d802012-08-15 03:47:03 -0700167; JNI
168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
169
170declare i32 @art_jni_method_start(%JavaObject*)
171
172declare i32 @art_jni_method_start_synchronized(%JavaObject*,
173 %JavaObject*)
174
175declare void @art_jni_method_end(i32,
176 %JavaObject*)
177
178
179declare void @art_jni_method_end_synchronized(i32,
180 %JavaObject*,
181 %JavaObject*)
182
183declare %JavaObject* @art_jni_method_end_with_reference(%JavaObject*,
184 i32,
185 %JavaObject*)
186
187declare %JavaObject* @art_jni_method_end_with_reference_synchronized(%JavaObject*,
188 i32,
189 %JavaObject*,
190 %JavaObject*)
191
192;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TDYa127a4746872012-04-11 23:48:55 -0700193; Temporary runtime support, will be removed in the future
194;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
195
TDYa1273d71d802012-08-15 03:47:03 -0700196declare i1 @art_is_exception_pending_from_code()
197
TDYa12783bb6622012-04-17 02:20:34 -0700198declare void @art_mark_gc_card_from_code(%JavaObject*, %JavaObject*)
199
TDYa1275bb86012012-04-11 05:57:28 -0700200declare void @art_proxy_invoke_handler_from_code(%JavaObject*, ...)