
# 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 ARM64
#

handler-style computed-goto
handler-size 128

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

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

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

# opcode list; argument to op-start is default directory
op-start arm64
    # (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_unused_f3 FALLBACK
    # op op_unused_f4 FALLBACK
    # op op_unused_f5 FALLBACK
    # op op_unused_f6 FALLBACK
    # op op_unused_f7 FALLBACK
    # op op_unused_f8 FALLBACK
    # op op_unused_f9 FALLBACK
    # op op_invoke_polymorphic FALLBACK
    # op op_invoke_polymorphic_range FALLBACK
    # op op_invoke_custom FALLBACK
    # op op_invoke_custom_range FALLBACK
    # op op_const_method_handle FALLBACK
    # op op_const_method_type FALLBACK
op-end

# common subroutines for asm; we emit the footer before alternate
# entry stubs, so that TBZ/TBNZ from ops can reach targets in footer
import arm64/footer.S

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

# emit alternate entry stubs
alt-ops

# finish by closing .cfi info
import arm64/close_cfi.S
