Home | History | Annotate | Download | only in mterp
      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 ARMv7-A targets.
     17 #
     18 
     19 handler-style computed-goto
     20 handler-size 128
     21 
     22 # source for alternate entry stub
     23 asm-alt-stub arm/alt_stub.S
     24 
     25 # file header and basic definitions
     26 import arm/header.S
     27 
     28 # arch-specific entry point to interpreter
     29 import arm/entry.S
     30 
     31 # Stub to switch to alternate interpreter
     32 fallback-stub arm/fallback.S
     33 
     34 # opcode list; argument to op-start is default directory
     35 op-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
    295 op-end
    296 
    297 # common subroutines for asm
    298 import arm/footer.S
    299