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