blob: 436dcd28f63dad7b2138f4dac1758d39f9b91c3c [file] [log] [blame]
buzbee1452bee2015-03-06 14:43:04 -08001# Copyright (C) 2015 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15#
16# Configuration for ARMv7-A targets.
17#
18
19handler-style computed-goto
20handler-size 128
21
22# source for alternate entry stub
23asm-alt-stub arm/alt_stub.S
24
25# file header and basic definitions
26import arm/header.S
27
28# arch-specific entry point to interpreter
29import arm/entry.S
30
31# Stub to switch to alternate interpreter
32fallback-stub arm/fallback.S
33
34# opcode list; argument to op-start is default directory
35op-start arm
36 # (override example:) op op_sub_float_2addr arm-vfp
37 # (fallback example:) op op_sub_float_2addr FALLBACK
38
39 # op op_nop FALLBACK
40 # op op_move FALLBACK
41 # op op_move_from16 FALLBACK
42 # op op_move_16 FALLBACK
43 # op op_move_wide FALLBACK
44 # op op_move_wide_from16 FALLBACK
45 # op op_move_wide_16 FALLBACK
46 # op op_move_object FALLBACK
47 # op op_move_object_from16 FALLBACK
48 # op op_move_object_16 FALLBACK
49 # op op_move_result FALLBACK
50 # op op_move_result_wide FALLBACK
51 # op op_move_result_object FALLBACK
52 # op op_move_exception FALLBACK
53 # op op_return_void FALLBACK
54 # op op_return FALLBACK
55 # op op_return_wide FALLBACK
56 # op op_return_object FALLBACK
57 # op op_const_4 FALLBACK
58 # op op_const_16 FALLBACK
59 # op op_const FALLBACK
60 # op op_const_high16 FALLBACK
61 # op op_const_wide_16 FALLBACK
62 # op op_const_wide_32 FALLBACK
63 # op op_const_wide FALLBACK
64 # op op_const_wide_high16 FALLBACK
65 # op op_const_string FALLBACK
66 # op op_const_string_jumbo FALLBACK
67 # op op_const_class FALLBACK
68 # op op_monitor_enter FALLBACK
69 # op op_monitor_exit FALLBACK
70 # op op_check_cast FALLBACK
71 # op op_instance_of FALLBACK
72 # op op_array_length FALLBACK
73 # op op_new_instance FALLBACK
74 # op op_new_array FALLBACK
75 # op op_filled_new_array FALLBACK
76 # op op_filled_new_array_range FALLBACK
77 # op op_fill_array_data FALLBACK
78 # op op_throw FALLBACK
79 # op op_goto FALLBACK
80 # op op_goto_16 FALLBACK
81 # op op_goto_32 FALLBACK
82 # op op_packed_switch FALLBACK
83 # op op_sparse_switch FALLBACK
84 # op op_cmpl_float FALLBACK
85 # op op_cmpg_float FALLBACK
86 # op op_cmpl_double FALLBACK
87 # op op_cmpg_double FALLBACK
88 # op op_cmp_long FALLBACK
89 # op op_if_eq FALLBACK
90 # op op_if_ne FALLBACK
91 # op op_if_lt FALLBACK
92 # op op_if_ge FALLBACK
93 # op op_if_gt FALLBACK
94 # op op_if_le FALLBACK
95 # op op_if_eqz FALLBACK
96 # op op_if_nez FALLBACK
97 # op op_if_ltz FALLBACK
98 # op op_if_gez FALLBACK
99 # op op_if_gtz FALLBACK
100 # op op_if_lez FALLBACK
101 # op op_unused_3e FALLBACK
102 # op op_unused_3f FALLBACK
103 # op op_unused_40 FALLBACK
104 # op op_unused_41 FALLBACK
105 # op op_unused_42 FALLBACK
106 # op op_unused_43 FALLBACK
107 # op op_aget FALLBACK
108 # op op_aget_wide FALLBACK
109 # op op_aget_object FALLBACK
110 # op op_aget_boolean FALLBACK
111 # op op_aget_byte FALLBACK
112 # op op_aget_char FALLBACK
113 # op op_aget_short FALLBACK
114 # op op_aput FALLBACK
115 # op op_aput_wide FALLBACK
116 # op op_aput_object FALLBACK
117 # op op_aput_boolean FALLBACK
118 # op op_aput_byte FALLBACK
119 # op op_aput_char FALLBACK
120 # op op_aput_short FALLBACK
121 # op op_iget FALLBACK
122 # op op_iget_wide FALLBACK
123 # op op_iget_object FALLBACK
124 # op op_iget_boolean FALLBACK
125 # op op_iget_byte FALLBACK
126 # op op_iget_char FALLBACK
127 # op op_iget_short FALLBACK
128 # op op_iput FALLBACK
129 # op op_iput_wide FALLBACK
130 # op op_iput_object FALLBACK
131 # op op_iput_boolean FALLBACK
132 # op op_iput_byte FALLBACK
133 # op op_iput_char FALLBACK
134 # op op_iput_short FALLBACK
135 # op op_sget FALLBACK
136 # op op_sget_wide FALLBACK
137 # op op_sget_object FALLBACK
138 # op op_sget_boolean FALLBACK
139 # op op_sget_byte FALLBACK
140 # op op_sget_char FALLBACK
141 # op op_sget_short FALLBACK
142 # op op_sput FALLBACK
143 # op op_sput_wide FALLBACK
144 # op op_sput_object FALLBACK
145 # op op_sput_boolean FALLBACK
146 # op op_sput_byte FALLBACK
147 # op op_sput_char FALLBACK
148 # op op_sput_short FALLBACK
149 # op op_invoke_virtual FALLBACK
150 # op op_invoke_super FALLBACK
151 # op op_invoke_direct FALLBACK
152 # op op_invoke_static FALLBACK
153 # op op_invoke_interface FALLBACK
154 # op op_return_void_no_barrier FALLBACK
155 # op op_invoke_virtual_range FALLBACK
156 # op op_invoke_super_range FALLBACK
157 # op op_invoke_direct_range FALLBACK
158 # op op_invoke_static_range FALLBACK
159 # op op_invoke_interface_range FALLBACK
160 # op op_unused_79 FALLBACK
161 # op op_unused_7a FALLBACK
162 # op op_neg_int FALLBACK
163 # op op_not_int FALLBACK
164 # op op_neg_long FALLBACK
165 # op op_not_long FALLBACK
166 # op op_neg_float FALLBACK
167 # op op_neg_double FALLBACK
168 # op op_int_to_long FALLBACK
169 # op op_int_to_float FALLBACK
170 # op op_int_to_double FALLBACK
171 # op op_long_to_int FALLBACK
172 # op op_long_to_float FALLBACK
173 # op op_long_to_double FALLBACK
174 # op op_float_to_int FALLBACK
175 # op op_float_to_long FALLBACK
176 # op op_float_to_double FALLBACK
177 # op op_double_to_int FALLBACK
178 # op op_double_to_long FALLBACK
179 # op op_double_to_float FALLBACK
180 # op op_int_to_byte FALLBACK
181 # op op_int_to_char FALLBACK
182 # op op_int_to_short FALLBACK
183 # op op_add_int FALLBACK
184 # op op_sub_int FALLBACK
185 # op op_mul_int FALLBACK
186 # op op_div_int FALLBACK
187 # op op_rem_int FALLBACK
188 # op op_and_int FALLBACK
189 # op op_or_int FALLBACK
190 # op op_xor_int FALLBACK
191 # op op_shl_int FALLBACK
192 # op op_shr_int FALLBACK
193 # op op_ushr_int FALLBACK
194 # op op_add_long FALLBACK
195 # op op_sub_long FALLBACK
196 # op op_mul_long FALLBACK
197 # op op_div_long FALLBACK
198 # op op_rem_long FALLBACK
199 # op op_and_long FALLBACK
200 # op op_or_long FALLBACK
201 # op op_xor_long FALLBACK
202 # op op_shl_long FALLBACK
203 # op op_shr_long FALLBACK
204 # op op_ushr_long FALLBACK
205 # op op_add_float FALLBACK
206 # op op_sub_float FALLBACK
207 # op op_mul_float FALLBACK
208 # op op_div_float FALLBACK
209 # op op_rem_float FALLBACK
210 # op op_add_double FALLBACK
211 # op op_sub_double FALLBACK
212 # op op_mul_double FALLBACK
213 # op op_div_double FALLBACK
214 # op op_rem_double FALLBACK
215 # op op_add_int_2addr FALLBACK
216 # op op_sub_int_2addr FALLBACK
217 # op op_mul_int_2addr FALLBACK
218 # op op_div_int_2addr FALLBACK
219 # op op_rem_int_2addr FALLBACK
220 # op op_and_int_2addr FALLBACK
221 # op op_or_int_2addr FALLBACK
222 # op op_xor_int_2addr FALLBACK
223 # op op_shl_int_2addr FALLBACK
224 # op op_shr_int_2addr FALLBACK
225 # op op_ushr_int_2addr FALLBACK
226 # op op_add_long_2addr FALLBACK
227 # op op_sub_long_2addr FALLBACK
228 # op op_mul_long_2addr FALLBACK
229 # op op_div_long_2addr FALLBACK
230 # op op_rem_long_2addr FALLBACK
231 # op op_and_long_2addr FALLBACK
232 # op op_or_long_2addr FALLBACK
233 # op op_xor_long_2addr FALLBACK
234 # op op_shl_long_2addr FALLBACK
235 # op op_shr_long_2addr FALLBACK
236 # op op_ushr_long_2addr FALLBACK
237 # op op_add_float_2addr FALLBACK
238 # op op_sub_float_2addr FALLBACK
239 # op op_mul_float_2addr FALLBACK
240 # op op_div_float_2addr FALLBACK
241 # op op_rem_float_2addr FALLBACK
242 # op op_add_double_2addr FALLBACK
243 # op op_sub_double_2addr FALLBACK
244 # op op_mul_double_2addr FALLBACK
245 # op op_div_double_2addr FALLBACK
246 # op op_rem_double_2addr FALLBACK
247 # op op_add_int_lit16 FALLBACK
248 # op op_rsub_int FALLBACK
249 # op op_mul_int_lit16 FALLBACK
250 # op op_div_int_lit16 FALLBACK
251 # op op_rem_int_lit16 FALLBACK
252 # op op_and_int_lit16 FALLBACK
253 # op op_or_int_lit16 FALLBACK
254 # op op_xor_int_lit16 FALLBACK
255 # op op_add_int_lit8 FALLBACK
256 # op op_rsub_int_lit8 FALLBACK
257 # op op_mul_int_lit8 FALLBACK
258 # op op_div_int_lit8 FALLBACK
259 # op op_rem_int_lit8 FALLBACK
260 # op op_and_int_lit8 FALLBACK
261 # op op_or_int_lit8 FALLBACK
262 # op op_xor_int_lit8 FALLBACK
263 # op op_shl_int_lit8 FALLBACK
264 # op op_shr_int_lit8 FALLBACK
265 # op op_ushr_int_lit8 FALLBACK
266 # op op_iget_quick FALLBACK
267 # op op_iget_wide_quick FALLBACK
268 # op op_iget_object_quick FALLBACK
269 # op op_iput_quick FALLBACK
270 # op op_iput_wide_quick FALLBACK
271 # op op_iput_object_quick FALLBACK
272 # op op_invoke_virtual_quick FALLBACK
273 # op op_invoke_virtual_range_quick FALLBACK
274 # op op_iput_boolean_quick FALLBACK
275 # op op_iput_byte_quick FALLBACK
276 # op op_iput_char_quick FALLBACK
277 # op op_iput_short_quick FALLBACK
278 # op op_iget_boolean_quick FALLBACK
279 # op op_iget_byte_quick FALLBACK
280 # op op_iget_char_quick FALLBACK
281 # op op_iget_short_quick FALLBACK
282 op op_invoke_lambda FALLBACK
283 # op op_unused_f4 FALLBACK
284 op op_capture_variable FALLBACK
285 op op_create_lambda FALLBACK
286 op op_liberate_variable FALLBACK
287 op op_box_lambda FALLBACK
288 op op_unbox_lambda FALLBACK
289 # op op_unused_fa FALLBACK
290 # op op_unused_fb FALLBACK
291 # op op_unused_fc FALLBACK
292 # op op_unused_fd FALLBACK
293 # op op_unused_fe FALLBACK
294 # op op_unused_ff FALLBACK
295op-end
296
297# common subroutines for asm
298import arm/footer.S