summaryrefslogtreecommitdiff
path: root/runtime/interpreter/mterp/config_x86
blob: f1501e11d4f253a5acc9ecbfafcf16ad89035c43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
# Copyright (C) 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# Configuration for X86
#

handler-style computed-goto
handler-size 128

function-type-format FUNCTION_TYPE(%s)
function-size-format SIZE(%s,%s)
global-name-format SYMBOL(%s)

# source for alternate entry stub
asm-alt-stub x86/alt_stub.S

# file header and basic definitions
import x86/header.S

# arch-specific entry point to interpreter
import x86/entry.S

# Stub to switch to alternate interpreter
fallback-stub x86/fallback.S

# opcode list; argument to op-start is default directory
op-start x86
    # (override example:) op OP_SUB_FLOAT_2ADDR arm-vfp
    # (fallback example:) op OP_SUB_FLOAT_2ADDR FALLBACK

    # op op_nop FALLBACK
    # op op_move FALLBACK
    # op op_move_from16 FALLBACK
    # op op_move_16 FALLBACK
    # op op_move_wide FALLBACK
    # op op_move_wide_from16 FALLBACK
    # op op_move_wide_16 FALLBACK
    # op op_move_object FALLBACK
    # op op_move_object_from16 FALLBACK
    # op op_move_object_16 FALLBACK
    # op op_move_result FALLBACK
    # op op_move_result_wide FALLBACK
    # op op_move_result_object FALLBACK
    # op op_move_exception FALLBACK
    # op op_return_void FALLBACK
    # op op_return FALLBACK
    # op op_return_wide FALLBACK
    # op op_return_object FALLBACK
    # op op_const_4 FALLBACK
    # op op_const_16 FALLBACK
    # op op_const FALLBACK
    # op op_const_high16 FALLBACK
    # op op_const_wide_16 FALLBACK
    # op op_const_wide_32 FALLBACK
    # op op_const_wide FALLBACK
    # op op_const_wide_high16 FALLBACK
    # op op_const_string FALLBACK
    # op op_const_string_jumbo FALLBACK
    # op op_const_class FALLBACK
    # op op_monitor_enter FALLBACK
    # op op_monitor_exit FALLBACK
    # op op_check_cast FALLBACK
    # op op_instance_of FALLBACK
    # op op_array_length FALLBACK
    # op op_new_instance FALLBACK
    # op op_new_array FALLBACK
    # op op_filled_new_array FALLBACK
    # op op_filled_new_array_range FALLBACK
    # op op_fill_array_data FALLBACK
    # op op_throw FALLBACK
    # op op_goto FALLBACK
    # op op_goto_16 FALLBACK
    # op op_goto_32 FALLBACK
    # op op_packed_switch FALLBACK
    # op op_sparse_switch FALLBACK
    # op op_cmpl_float FALLBACK
    # op op_cmpg_float FALLBACK
    # op op_cmpl_double FALLBACK
    # op op_cmpg_double FALLBACK
    # op op_cmp_long FALLBACK
    # op op_if_eq FALLBACK
    # op op_if_ne FALLBACK
    # op op_if_lt FALLBACK
    # op op_if_ge FALLBACK
    # op op_if_gt FALLBACK
    # op op_if_le FALLBACK
    # op op_if_eqz FALLBACK
    # op op_if_nez FALLBACK
    # op op_if_ltz FALLBACK
    # op op_if_gez FALLBACK
    # op op_if_gtz FALLBACK
    # op op_if_lez FALLBACK
    # op op_unused_3e FALLBACK
    # op op_unused_3f FALLBACK
    # op op_unused_40 FALLBACK
    # op op_unused_41 FALLBACK
    # op op_unused_42 FALLBACK
    # op op_unused_43 FALLBACK
    # op op_aget FALLBACK
    # op op_aget_wide FALLBACK
    # op op_aget_object FALLBACK
    # op op_aget_boolean FALLBACK
    # op op_aget_byte FALLBACK
    # op op_aget_char FALLBACK
    # op op_aget_short FALLBACK
    # op op_aput FALLBACK
    # op op_aput_wide FALLBACK
    # op op_aput_object FALLBACK
    # op op_aput_boolean FALLBACK
    # op op_aput_byte FALLBACK
    # op op_aput_char FALLBACK
    # op op_aput_short FALLBACK
    # op op_iget FALLBACK
    # op op_iget_wide FALLBACK
    # op op_iget_object FALLBACK
    # op op_iget_boolean FALLBACK
    # op op_iget_byte FALLBACK
    # op op_iget_char FALLBACK
    # op op_iget_short FALLBACK
    # op op_iput FALLBACK
    # op op_iput_wide FALLBACK
    # op op_iput_object FALLBACK
    # op op_iput_boolean FALLBACK
    # op op_iput_byte FALLBACK
    # op op_iput_char FALLBACK
    # op op_iput_short FALLBACK
    # op op_sget FALLBACK
    # op op_sget_wide FALLBACK
    # op op_sget_object FALLBACK
    # op op_sget_boolean FALLBACK
    # op op_sget_byte FALLBACK
    # op op_sget_char FALLBACK
    # op op_sget_short FALLBACK
    # op op_sput FALLBACK
    # op op_sput_wide FALLBACK
    # op op_sput_object FALLBACK
    # op op_sput_boolean FALLBACK
    # op op_sput_byte FALLBACK
    # op op_sput_char FALLBACK
    # op op_sput_short FALLBACK
    # op op_invoke_virtual FALLBACK
    # op op_invoke_super FALLBACK
    # op op_invoke_direct FALLBACK
    # op op_invoke_static FALLBACK
    # op op_invoke_interface FALLBACK
    # op op_return_void_no_barrier FALLBACK
    # op op_invoke_virtual_range FALLBACK
    # op op_invoke_super_range FALLBACK
    # op op_invoke_direct_range FALLBACK
    # op op_invoke_static_range FALLBACK
    # op op_invoke_interface_range FALLBACK
    # op op_unused_79 FALLBACK
    # op op_unused_7a FALLBACK
    # op op_neg_int FALLBACK
    # op op_not_int FALLBACK
    # op op_neg_long FALLBACK
    # op op_not_long FALLBACK
    # op op_neg_float FALLBACK
    # op op_neg_double FALLBACK
    # op op_int_to_long FALLBACK
    # op op_int_to_float FALLBACK
    # op op_int_to_double FALLBACK
    # op op_long_to_int FALLBACK
    # op op_long_to_float FALLBACK
    # op op_long_to_double FALLBACK
    # op op_float_to_int FALLBACK
    # op op_float_to_long FALLBACK
    # op op_float_to_double FALLBACK
    # op op_double_to_int FALLBACK
    # op op_double_to_long FALLBACK
    # op op_double_to_float FALLBACK
    # op op_int_to_byte FALLBACK
    # op op_int_to_char FALLBACK
    # op op_int_to_short FALLBACK
    # op op_add_int FALLBACK
    # op op_sub_int FALLBACK
    # op op_mul_int FALLBACK
    # op op_div_int FALLBACK
    # op op_rem_int FALLBACK
    # op op_and_int FALLBACK
    # op op_or_int FALLBACK
    # op op_xor_int FALLBACK
    # op op_shl_int FALLBACK
    # op op_shr_int FALLBACK
    # op op_ushr_int FALLBACK
    # op op_add_long FALLBACK
    # op op_sub_long FALLBACK
    # op op_mul_long FALLBACK
    # op op_div_long FALLBACK
    # op op_rem_long FALLBACK
    # op op_and_long FALLBACK
    # op op_or_long FALLBACK
    # op op_xor_long FALLBACK
    # op op_shl_long FALLBACK
    # op op_shr_long FALLBACK
    # op op_ushr_long FALLBACK
    # op op_add_float FALLBACK
    # op op_sub_float FALLBACK
    # op op_mul_float FALLBACK
    # op op_div_float FALLBACK
    # op op_rem_float FALLBACK
    # op op_add_double FALLBACK
    # op op_sub_double FALLBACK
    # op op_mul_double FALLBACK
    # op op_div_double FALLBACK
    # op op_rem_double FALLBACK
    # op op_add_int_2addr FALLBACK
    # op op_sub_int_2addr FALLBACK
    # op op_mul_int_2addr FALLBACK
    # op op_div_int_2addr FALLBACK
    # op op_rem_int_2addr FALLBACK
    # op op_and_int_2addr FALLBACK
    # op op_or_int_2addr FALLBACK
    # op op_xor_int_2addr FALLBACK
    # op op_shl_int_2addr FALLBACK
    # op op_shr_int_2addr FALLBACK
    # op op_ushr_int_2addr FALLBACK
    # op op_add_long_2addr FALLBACK
    # op op_sub_long_2addr FALLBACK
    # op op_mul_long_2addr FALLBACK
    # op op_div_long_2addr FALLBACK
    # op op_rem_long_2addr FALLBACK
    # op op_and_long_2addr FALLBACK
    # op op_or_long_2addr FALLBACK
    # op op_xor_long_2addr FALLBACK
    # op op_shl_long_2addr FALLBACK
    # op op_shr_long_2addr FALLBACK
    # op op_ushr_long_2addr FALLBACK
    # op op_add_float_2addr FALLBACK
    # op op_sub_float_2addr FALLBACK
    # op op_mul_float_2addr FALLBACK
    # op op_div_float_2addr FALLBACK
    # op op_rem_float_2addr FALLBACK
    # op op_add_double_2addr FALLBACK
    # op op_sub_double_2addr FALLBACK
    # op op_mul_double_2addr FALLBACK
    # op op_div_double_2addr FALLBACK
    # op op_rem_double_2addr FALLBACK
    # op op_add_int_lit16 FALLBACK
    # op op_rsub_int FALLBACK
    # op op_mul_int_lit16 FALLBACK
    # op op_div_int_lit16 FALLBACK
    # op op_rem_int_lit16 FALLBACK
    # op op_and_int_lit16 FALLBACK
    # op op_or_int_lit16 FALLBACK
    # op op_xor_int_lit16 FALLBACK
    # op op_add_int_lit8 FALLBACK
    # op op_rsub_int_lit8 FALLBACK
    # op op_mul_int_lit8 FALLBACK
    # op op_div_int_lit8 FALLBACK
    # op op_rem_int_lit8 FALLBACK
    # op op_and_int_lit8 FALLBACK
    # op op_or_int_lit8 FALLBACK
    # op op_xor_int_lit8 FALLBACK
    # op op_shl_int_lit8 FALLBACK
    # op op_shr_int_lit8 FALLBACK
    # op op_ushr_int_lit8 FALLBACK
    # op op_iget_quick FALLBACK
    # op op_iget_wide_quick FALLBACK
    # op op_iget_object_quick FALLBACK
    # op op_iput_quick FALLBACK
    # op op_iput_wide_quick FALLBACK
    # op op_iput_object_quick FALLBACK
    # op op_invoke_virtual_quick FALLBACK
    # op op_invoke_virtual_range_quick FALLBACK
    # op op_iput_boolean_quick FALLBACK
    # op op_iput_byte_quick FALLBACK
    # op op_iput_char_quick FALLBACK
    # op op_iput_short_quick FALLBACK
    # op op_iget_boolean_quick FALLBACK
    # op op_iget_byte_quick FALLBACK
    # op op_iget_char_quick FALLBACK
    # op op_iget_short_quick FALLBACK
    op op_invoke_lambda FALLBACK
    # op op_unused_f4 FALLBACK
    op op_capture_variable FALLBACK
    op op_create_lambda FALLBACK
    op op_liberate_variable FALLBACK
    op op_box_lambda FALLBACK
    op op_unbox_lambda FALLBACK
    # op op_unused_fa FALLBACK
    # op op_unused_fb FALLBACK
    # op op_unused_fc FALLBACK
    # op op_unused_fd FALLBACK
    # op op_unused_fe FALLBACK
    # op op_unused_ff FALLBACK
op-end

# common subroutines for asm
import x86/footer.S