1# 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 X86
17#
18
19handler-style computed-goto
20handler-size 128
21
22function-type-format FUNCTION_TYPE(%s)
23function-size-format SIZE(%s,%s)
24global-name-format SYMBOL(%s)
25
26# source for alternate entry stub
27asm-alt-stub x86/alt_stub.S
28
29# file header and basic definitions
30import x86/header.S
31
32# arch-specific entry point to interpreter
33import x86/entry.S
34
35# Stub to switch to alternate interpreter
36fallback-stub x86/fallback.S
37
38# opcode list; argument to op-start is default directory
39op-start x86
40    # (override example:) op OP_SUB_FLOAT_2ADDR arm-vfp
41    # (fallback example:) op OP_SUB_FLOAT_2ADDR FALLBACK
42
43    # op op_nop FALLBACK
44    # op op_move FALLBACK
45    # op op_move_from16 FALLBACK
46    # op op_move_16 FALLBACK
47    # op op_move_wide FALLBACK
48    # op op_move_wide_from16 FALLBACK
49    # op op_move_wide_16 FALLBACK
50    # op op_move_object FALLBACK
51    # op op_move_object_from16 FALLBACK
52    # op op_move_object_16 FALLBACK
53    # op op_move_result FALLBACK
54    # op op_move_result_wide FALLBACK
55    # op op_move_result_object FALLBACK
56    # op op_move_exception FALLBACK
57    # op op_return_void FALLBACK
58    # op op_return FALLBACK
59    # op op_return_wide FALLBACK
60    # op op_return_object FALLBACK
61    # op op_const_4 FALLBACK
62    # op op_const_16 FALLBACK
63    # op op_const FALLBACK
64    # op op_const_high16 FALLBACK
65    # op op_const_wide_16 FALLBACK
66    # op op_const_wide_32 FALLBACK
67    # op op_const_wide FALLBACK
68    # op op_const_wide_high16 FALLBACK
69    # op op_const_string FALLBACK
70    # op op_const_string_jumbo FALLBACK
71    # op op_const_class FALLBACK
72    # op op_monitor_enter FALLBACK
73    # op op_monitor_exit FALLBACK
74    # op op_check_cast FALLBACK
75    # op op_instance_of FALLBACK
76    # op op_array_length FALLBACK
77    # op op_new_instance FALLBACK
78    # op op_new_array FALLBACK
79    # op op_filled_new_array FALLBACK
80    # op op_filled_new_array_range FALLBACK
81    # op op_fill_array_data FALLBACK
82    # op op_throw FALLBACK
83    # op op_goto FALLBACK
84    # op op_goto_16 FALLBACK
85    # op op_goto_32 FALLBACK
86    # op op_packed_switch FALLBACK
87    # op op_sparse_switch FALLBACK
88    # op op_cmpl_float FALLBACK
89    # op op_cmpg_float FALLBACK
90    # op op_cmpl_double FALLBACK
91    # op op_cmpg_double FALLBACK
92    # op op_cmp_long FALLBACK
93    # op op_if_eq FALLBACK
94    # op op_if_ne FALLBACK
95    # op op_if_lt FALLBACK
96    # op op_if_ge FALLBACK
97    # op op_if_gt FALLBACK
98    # op op_if_le FALLBACK
99    # op op_if_eqz FALLBACK
100    # op op_if_nez FALLBACK
101    # op op_if_ltz FALLBACK
102    # op op_if_gez FALLBACK
103    # op op_if_gtz FALLBACK
104    # op op_if_lez FALLBACK
105    # op op_unused_3e FALLBACK
106    # op op_unused_3f FALLBACK
107    # op op_unused_40 FALLBACK
108    # op op_unused_41 FALLBACK
109    # op op_unused_42 FALLBACK
110    # op op_unused_43 FALLBACK
111    # op op_aget FALLBACK
112    # op op_aget_wide FALLBACK
113    # op op_aget_object FALLBACK
114    # op op_aget_boolean FALLBACK
115    # op op_aget_byte FALLBACK
116    # op op_aget_char FALLBACK
117    # op op_aget_short FALLBACK
118    # op op_aput FALLBACK
119    # op op_aput_wide FALLBACK
120    # op op_aput_object FALLBACK
121    # op op_aput_boolean FALLBACK
122    # op op_aput_byte FALLBACK
123    # op op_aput_char FALLBACK
124    # op op_aput_short FALLBACK
125    # op op_iget FALLBACK
126    # op op_iget_wide FALLBACK
127    # op op_iget_object FALLBACK
128    # op op_iget_boolean FALLBACK
129    # op op_iget_byte FALLBACK
130    # op op_iget_char FALLBACK
131    # op op_iget_short FALLBACK
132    # op op_iput FALLBACK
133    # op op_iput_wide FALLBACK
134    # op op_iput_object FALLBACK
135    # op op_iput_boolean FALLBACK
136    # op op_iput_byte FALLBACK
137    # op op_iput_char FALLBACK
138    # op op_iput_short FALLBACK
139    # op op_sget FALLBACK
140    # op op_sget_wide FALLBACK
141    # op op_sget_object FALLBACK
142    # op op_sget_boolean FALLBACK
143    # op op_sget_byte FALLBACK
144    # op op_sget_char FALLBACK
145    # op op_sget_short FALLBACK
146    # op op_sput FALLBACK
147    # op op_sput_wide FALLBACK
148    # op op_sput_object FALLBACK
149    # op op_sput_boolean FALLBACK
150    # op op_sput_byte FALLBACK
151    # op op_sput_char FALLBACK
152    # op op_sput_short FALLBACK
153    # op op_invoke_virtual FALLBACK
154    # op op_invoke_super FALLBACK
155    # op op_invoke_direct FALLBACK
156    # op op_invoke_static FALLBACK
157    # op op_invoke_interface FALLBACK
158    # op op_return_void_no_barrier FALLBACK
159    # op op_invoke_virtual_range FALLBACK
160    # op op_invoke_super_range FALLBACK
161    # op op_invoke_direct_range FALLBACK
162    # op op_invoke_static_range FALLBACK
163    # op op_invoke_interface_range FALLBACK
164    # op op_unused_79 FALLBACK
165    # op op_unused_7a FALLBACK
166    # op op_neg_int FALLBACK
167    # op op_not_int FALLBACK
168    # op op_neg_long FALLBACK
169    # op op_not_long FALLBACK
170    # op op_neg_float FALLBACK
171    # op op_neg_double FALLBACK
172    # op op_int_to_long FALLBACK
173    # op op_int_to_float FALLBACK
174    # op op_int_to_double FALLBACK
175    # op op_long_to_int FALLBACK
176    # op op_long_to_float FALLBACK
177    # op op_long_to_double FALLBACK
178    # op op_float_to_int FALLBACK
179    # op op_float_to_long FALLBACK
180    # op op_float_to_double FALLBACK
181    # op op_double_to_int FALLBACK
182    # op op_double_to_long FALLBACK
183    # op op_double_to_float FALLBACK
184    # op op_int_to_byte FALLBACK
185    # op op_int_to_char FALLBACK
186    # op op_int_to_short FALLBACK
187    # op op_add_int FALLBACK
188    # op op_sub_int FALLBACK
189    # op op_mul_int FALLBACK
190    # op op_div_int FALLBACK
191    # op op_rem_int FALLBACK
192    # op op_and_int FALLBACK
193    # op op_or_int FALLBACK
194    # op op_xor_int FALLBACK
195    # op op_shl_int FALLBACK
196    # op op_shr_int FALLBACK
197    # op op_ushr_int FALLBACK
198    # op op_add_long FALLBACK
199    # op op_sub_long FALLBACK
200    # op op_mul_long FALLBACK
201    # op op_div_long FALLBACK
202    # op op_rem_long FALLBACK
203    # op op_and_long FALLBACK
204    # op op_or_long FALLBACK
205    # op op_xor_long FALLBACK
206    # op op_shl_long FALLBACK
207    # op op_shr_long FALLBACK
208    # op op_ushr_long FALLBACK
209    # op op_add_float FALLBACK
210    # op op_sub_float FALLBACK
211    # op op_mul_float FALLBACK
212    # op op_div_float FALLBACK
213    # op op_rem_float FALLBACK
214    # op op_add_double FALLBACK
215    # op op_sub_double FALLBACK
216    # op op_mul_double FALLBACK
217    # op op_div_double FALLBACK
218    # op op_rem_double FALLBACK
219    # op op_add_int_2addr FALLBACK
220    # op op_sub_int_2addr FALLBACK
221    # op op_mul_int_2addr FALLBACK
222    # op op_div_int_2addr FALLBACK
223    # op op_rem_int_2addr FALLBACK
224    # op op_and_int_2addr FALLBACK
225    # op op_or_int_2addr FALLBACK
226    # op op_xor_int_2addr FALLBACK
227    # op op_shl_int_2addr FALLBACK
228    # op op_shr_int_2addr FALLBACK
229    # op op_ushr_int_2addr FALLBACK
230    # op op_add_long_2addr FALLBACK
231    # op op_sub_long_2addr FALLBACK
232    # op op_mul_long_2addr FALLBACK
233    # op op_div_long_2addr FALLBACK
234    # op op_rem_long_2addr FALLBACK
235    # op op_and_long_2addr FALLBACK
236    # op op_or_long_2addr FALLBACK
237    # op op_xor_long_2addr FALLBACK
238    # op op_shl_long_2addr FALLBACK
239    # op op_shr_long_2addr FALLBACK
240    # op op_ushr_long_2addr FALLBACK
241    # op op_add_float_2addr FALLBACK
242    # op op_sub_float_2addr FALLBACK
243    # op op_mul_float_2addr FALLBACK
244    # op op_div_float_2addr FALLBACK
245    # op op_rem_float_2addr FALLBACK
246    # op op_add_double_2addr FALLBACK
247    # op op_sub_double_2addr FALLBACK
248    # op op_mul_double_2addr FALLBACK
249    # op op_div_double_2addr FALLBACK
250    # op op_rem_double_2addr FALLBACK
251    # op op_add_int_lit16 FALLBACK
252    # op op_rsub_int FALLBACK
253    # op op_mul_int_lit16 FALLBACK
254    # op op_div_int_lit16 FALLBACK
255    # op op_rem_int_lit16 FALLBACK
256    # op op_and_int_lit16 FALLBACK
257    # op op_or_int_lit16 FALLBACK
258    # op op_xor_int_lit16 FALLBACK
259    # op op_add_int_lit8 FALLBACK
260    # op op_rsub_int_lit8 FALLBACK
261    # op op_mul_int_lit8 FALLBACK
262    # op op_div_int_lit8 FALLBACK
263    # op op_rem_int_lit8 FALLBACK
264    # op op_and_int_lit8 FALLBACK
265    # op op_or_int_lit8 FALLBACK
266    # op op_xor_int_lit8 FALLBACK
267    # op op_shl_int_lit8 FALLBACK
268    # op op_shr_int_lit8 FALLBACK
269    # op op_ushr_int_lit8 FALLBACK
270    # op op_iget_quick FALLBACK
271    # op op_iget_wide_quick FALLBACK
272    # op op_iget_object_quick FALLBACK
273    # op op_iput_quick FALLBACK
274    # op op_iput_wide_quick FALLBACK
275    # op op_iput_object_quick FALLBACK
276    # op op_invoke_virtual_quick FALLBACK
277    # op op_invoke_virtual_range_quick FALLBACK
278    # op op_iput_boolean_quick FALLBACK
279    # op op_iput_byte_quick FALLBACK
280    # op op_iput_char_quick FALLBACK
281    # op op_iput_short_quick FALLBACK
282    # op op_iget_boolean_quick FALLBACK
283    # op op_iget_byte_quick FALLBACK
284    # op op_iget_char_quick FALLBACK
285    # op op_iget_short_quick FALLBACK
286    # op op_unused_f3 FALLBACK
287    # op op_unused_f4 FALLBACK
288    # op op_unused_f5 FALLBACK
289    # op op_unused_f6 FALLBACK
290    # op op_unused_f7 FALLBACK
291    # op op_unused_f8 FALLBACK
292    # op op_unused_f9 FALLBACK
293    # op op_invoke_polymorphic FALLBACK
294    # op op_invoke_polymorphic_range FALLBACK
295    # op op_invoke_custom FALLBACK
296    # op op_invoke_custom_range FALLBACK
297    # op op_const_method_handle FALLBACK
298    # op op_const_method_type FALLBACK
299op-end
300
301# common subroutines for asm
302import x86/footer.S
303