122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch   /* Copyright (C) 2008 The Android Open Source Project
222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    *
322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * Licensed under the Apache License, Version 2.0 (the "License");
422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * you may not use this file except in compliance with the License.
522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * You may obtain a copy of the License at
622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    *
722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * http://www.apache.org/licenses/LICENSE-2.0
822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    *
922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * Unless required by applicable law or agreed to in writing, software
1022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * distributed under the License is distributed on an "AS IS" BASIS,
1122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * See the License for the specific language governing permissions and
1322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * limitations under the License.
1422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    */
1522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
1622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch   /*
1722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * File: entry.S
1822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    */
1922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
2022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch#define ASSIST_DEBUGGER 1
2122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    .text
2222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    .align      2
2322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    .global     dvmMterpStdRun
2422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    .type       dvmMterpStdRun, %function
2522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
2622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch   /*
2722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * Save registers, initialize sp and fp.
2822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * On entry:
2922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    *     bool MterpGlue(glue *)
3022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    */
3122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
3222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    .macro      MTERP_ENTRY
3322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        4(%esp), %ecx           # get first argument
3422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        %ebp, -4(%esp)          # save caller base pointer
3522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        %ebx, -8(%esp)          # save %ebx
3622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        %esi, -12(%esp)         # save %esi
3722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        %edi, -16(%esp)         # save %edi
3822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    lea         -40(%esp), %ebp         # set callee base pointer
3922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    lea         -40(%esp), %esp         # set callee stack pointer
4022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    .endm
4122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
4222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch   /*
4322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * Restore registers.
4422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * This function returns a boolean "changeInterp" value.
4522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * The return value is from dvmMterpStdBail().
4622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    */
4722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
4822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    .macro      MTERP_EXIT
4922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    lea         40(%esp), %esp          # correct stack pointer
5022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        -16(%esp), %edi         # restore %edi
5122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        -12(%esp), %esi         # restore %esi
5222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        -8(%esp), %ebx          # restore %ebx
5322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        -4(%esp), %ebp          # restore caller base pointer
5422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    ret                                 # return
5522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    .endm
5622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
5722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch   /*
5822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * DvmMterpStdRun entry point: save stack pointer, setup memory locations, get
5922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * entry point, start executing instructions.
6022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    */
6122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
6222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie BirchdvmMterpStdRun:
6322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    MTERP_ENTRY
6422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        %ecx, rGLUE             # save value for pMterpGlue
6522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        offGlue_pc(%ecx), rPC   # get program counter
6622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    cmp         $$kInterpEntryInstr, offGlue_entryPoint(%ecx) # check instruction
6722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        offGlue_fp(%ecx), rFP   # get frame pointer
6822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        %esp, offGlue_bailPtr(%ecx) # save SP for eventual return
6922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    FFETCH      %edx                    # %edx<- opcode
7022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    jne         .Lnot_instr             # no, handle it
7122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    FGETOP_JMPa %edx                    # start executing the instruction at rPC
7222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
7322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch   /*
7422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * Not an instruction. Are we returning from a method?
7522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    */
7622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
7722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.Lnot_instr:
7822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    cmpl        $$kInterpEntryReturn, offGlue_entryPoint(%ecx)
7922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    je          common_returnFromMethod
8022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
8122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch   /*
8222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * No, are we throwing an exception?
8322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    */
8422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
8522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.Lnot_return:
8622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    cmpl        $$kInterpEntryThrow, offGlue_entryPoint(%ecx)
8722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    je          common_exceptionThrown
8822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
8922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch   /*
9022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * No, then we must abort.
9122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    */
9222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
9322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.Lbad_arg:
9422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    pushl       offGlue_entryPoint(%ecx)
9522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        $$.LstrBadEntryPoint, -4(%esp)
9622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    lea         -4(%esp), %esp
9722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    call        printf
9822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    lea         8(%esp), %esp
9922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    call        dvmAbort                # call (void)
10022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
10122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch   /*
10222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * Restore the stack pointer and PC from the save point established on entry and
10322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * return to whoever called dvmMterpStdRun.
10422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    *
10522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * On entry:
10622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    *  4(%esp) MterpGlue* glue
10722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    *  8(%esp) bool changeInterp
10822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    */
10922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
11022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    .global     dvmMterpStdBail
11122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    .type       dvmMterpStdBail, %function
11222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
11322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie BirchdvmMterpStdBail:
11422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        4(%esp), %ecx           # get first argument
11522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        8(%esp), %eax           # get second argument
11622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    movl        offGlue_bailPtr(%ecx), %esp # sp <- saved SP
11722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    MTERP_EXIT
11822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
11922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch   /*
12022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    * String references.
12122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    */
12222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
12322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.LstrBadEntryPoint:
12422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch    .asciz "Bad entry point %d\n"
12522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
12622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch
12722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie BirchdvmAsmInstructionJmpTable = .LdvmAsmInstructionJmpTable
12822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.LdvmAsmInstructionJmpTable:
12922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_NOP
13022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE
13122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_FROM16
13222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_16
13322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_WIDE
13422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_WIDE_FROM16
13522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_WIDE_16
13622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_OBJECT
13722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_OBJECT_FROM16
13822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_OBJECT_16
13922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_RESULT
14022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_RESULT_WIDE
14122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_RESULT_OBJECT
14222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MOVE_EXCEPTION
14322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_RETURN_VOID
14422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_RETURN
14522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_RETURN_WIDE
14622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_RETURN_OBJECT
14722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CONST_4
14822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CONST_16
14922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CONST
15022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CONST_HIGH16
15122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CONST_WIDE_16
15222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CONST_WIDE_32
15322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CONST_WIDE
15422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CONST_WIDE_HIGH16
15522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CONST_STRING
15622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CONST_STRING_JUMBO
15722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CONST_CLASS
15822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MONITOR_ENTER
15922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MONITOR_EXIT
16022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CHECK_CAST
16122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INSTANCE_OF
16222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_ARRAY_LENGTH
16322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_NEW_INSTANCE
16422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_NEW_ARRAY
16522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_FILLED_NEW_ARRAY
16622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_FILLED_NEW_ARRAY_RANGE
16722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_FILL_ARRAY_DATA
16822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_THROW
16922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_GOTO
17022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_GOTO_16
17122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_GOTO_32
17222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_PACKED_SWITCH
17322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SPARSE_SWITCH
17422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CMPL_FLOAT
17522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CMPG_FLOAT
17622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CMPL_DOUBLE
17722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CMPG_DOUBLE
17822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_CMP_LONG
17922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_EQ
18022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_NE
18122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_LT
18222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_GE
18322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_GT
18422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_LE
18522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_EQZ
18622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_NEZ
18722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_LTZ
18822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_GEZ
18922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_GTZ
19022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IF_LEZ
19122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_UNUSED_3E
19222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_UNUSED_3F
19322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_UNUSED_40
19422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_UNUSED_41
19522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_UNUSED_42
19622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_UNUSED_43
19722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AGET
19822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AGET_WIDE
19922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AGET_OBJECT
20022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AGET_BOOLEAN
20122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AGET_BYTE
20222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AGET_CHAR
20322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AGET_SHORT
20422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_APUT
20522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_APUT_WIDE
20622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_APUT_OBJECT
20722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_APUT_BOOLEAN
20822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_APUT_BYTE
20922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_APUT_CHAR
21022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_APUT_SHORT
21122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IGET
21222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IGET_WIDE
21322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IGET_OBJECT
21422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IGET_BOOLEAN
21522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IGET_BYTE
21622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IGET_CHAR
21722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IGET_SHORT
21822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IPUT
21922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IPUT_WIDE
22022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IPUT_OBJECT
22122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IPUT_BOOLEAN
22222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IPUT_BYTE
22322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IPUT_CHAR
22422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IPUT_SHORT
22522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SGET
22622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SGET_WIDE
22722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SGET_OBJECT
22822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SGET_BOOLEAN
22922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SGET_BYTE
23022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SGET_CHAR
23122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SGET_SHORT
23222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SPUT
23322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SPUT_WIDE
23422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SPUT_OBJECT
23522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SPUT_BOOLEAN
23622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SPUT_BYTE
23722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SPUT_CHAR
23822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SPUT_SHORT
23922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_VIRTUAL
24022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_SUPER
24122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_DIRECT
24222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_STATIC
24322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_INTERFACE
24422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_UNUSED_73
24522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_VIRTUAL_RANGE
24622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_SUPER_RANGE
24722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_DIRECT_RANGE
24822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_STATIC_RANGE
24922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_INTERFACE_RANGE
25022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_UNUSED_79
25122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_UNUSED_7A
25222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_NEG_INT
25322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_NOT_INT
25422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_NEG_LONG
25522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_NOT_LONG
25622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_NEG_FLOAT
25722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_NEG_DOUBLE
25822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INT_TO_LONG
25922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INT_TO_FLOAT
26022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INT_TO_DOUBLE
26122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_LONG_TO_INT
26222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_LONG_TO_FLOAT
26322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_LONG_TO_DOUBLE
26422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_FLOAT_TO_INT
26522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_FLOAT_TO_LONG
26622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_FLOAT_TO_DOUBLE
26722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DOUBLE_TO_INT
26822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DOUBLE_TO_LONG
26922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DOUBLE_TO_FLOAT
27022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INT_TO_BYTE
27122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INT_TO_CHAR
27222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INT_TO_SHORT
27322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_ADD_INT
27422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SUB_INT
27522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MUL_INT
27622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DIV_INT
27722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_REM_INT
27822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AND_INT
27922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_OR_INT
28022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_XOR_INT
28122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SHL_INT
28222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SHR_INT
28322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_USHR_INT
28422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_ADD_LONG
28522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SUB_LONG
28622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MUL_LONG
28722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DIV_LONG
28822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_REM_LONG
28922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AND_LONG
29022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_OR_LONG
29122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_XOR_LONG
29222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SHL_LONG
29322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SHR_LONG
29422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_USHR_LONG
29522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_ADD_FLOAT
29622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SUB_FLOAT
29722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MUL_FLOAT
29822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DIV_FLOAT
29922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_REM_FLOAT
30022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_ADD_DOUBLE
30122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SUB_DOUBLE
30222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MUL_DOUBLE
30322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DIV_DOUBLE
30422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_REM_DOUBLE
30522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_ADD_INT_2ADDR
30622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SUB_INT_2ADDR
30722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MUL_INT_2ADDR
30822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DIV_INT_2ADDR
30922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_REM_INT_2ADDR
31022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AND_INT_2ADDR
31122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_OR_INT_2ADDR
31222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_XOR_INT_2ADDR
31322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SHL_INT_2ADDR
31422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SHR_INT_2ADDR
31522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_USHR_INT_2ADDR
31622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_ADD_LONG_2ADDR
31722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SUB_LONG_2ADDR
31822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MUL_LONG_2ADDR
31922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DIV_LONG_2ADDR
32022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_REM_LONG_2ADDR
32122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AND_LONG_2ADDR
32222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_OR_LONG_2ADDR
32322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_XOR_LONG_2ADDR
32422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SHL_LONG_2ADDR
32522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SHR_LONG_2ADDR
32622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_USHR_LONG_2ADDR
32722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_ADD_FLOAT_2ADDR
32822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SUB_FLOAT_2ADDR
32922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MUL_FLOAT_2ADDR
33022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DIV_FLOAT_2ADDR
33122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_REM_FLOAT_2ADDR
33222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_ADD_DOUBLE_2ADDR
33322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SUB_DOUBLE_2ADDR
33422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MUL_DOUBLE_2ADDR
33522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DIV_DOUBLE_2ADDR
33622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_REM_DOUBLE_2ADDR
33722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_ADD_INT_LIT16
33822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_RSUB_INT
33922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MUL_INT_LIT16
34022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DIV_INT_LIT16
34122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_REM_INT_LIT16
34222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AND_INT_LIT16
34322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_OR_INT_LIT16
34422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_XOR_INT_LIT16
34522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_ADD_INT_LIT8
34622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_RSUB_INT_LIT8
34722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_MUL_INT_LIT8
34822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_DIV_INT_LIT8
34922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_REM_INT_LIT8
35022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_AND_INT_LIT8
35122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_OR_INT_LIT8
35222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_XOR_INT_LIT8
35322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SHL_INT_LIT8
35422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_SHR_INT_LIT8
35522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_USHR_INT_LIT8
356f8f23d402dc1eef107995b29ad4d91ee5b4e1c34Johnnie Birch.long .L_OP_IGET_VOLATILE
357f8f23d402dc1eef107995b29ad4d91ee5b4e1c34Johnnie Birch.long .L_OP_IPUT_VOLATILE
358f8f23d402dc1eef107995b29ad4d91ee5b4e1c34Johnnie Birch.long .L_OP_SGET_VOLATILE
359f8f23d402dc1eef107995b29ad4d91ee5b4e1c34Johnnie Birch.long .L_OP_SPUT_VOLATILE
360f8f23d402dc1eef107995b29ad4d91ee5b4e1c34Johnnie Birch.long .L_OP_IGET_OBJECT_VOLATILE
361fbdcfb9ea9e2a78f295834424c3f24986ea45dacBrian Carlstrom.long .L_OP_IGET_WIDE_VOLATILE
362fbdcfb9ea9e2a78f295834424c3f24986ea45dacBrian Carlstrom.long .L_OP_IPUT_WIDE_VOLATILE
363fbdcfb9ea9e2a78f295834424c3f24986ea45dacBrian Carlstrom.long .L_OP_SGET_WIDE_VOLATILE
364fbdcfb9ea9e2a78f295834424c3f24986ea45dacBrian Carlstrom.long .L_OP_SPUT_WIDE_VOLATILE
365fbdcfb9ea9e2a78f295834424c3f24986ea45dacBrian Carlstrom.long .L_OP_BREAKPOINT
36622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_THROW_VERIFICATION_ERROR
36722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_EXECUTE_INLINE
368fbdcfb9ea9e2a78f295834424c3f24986ea45dacBrian Carlstrom.long .L_OP_EXECUTE_INLINE_RANGE
3690346e9dcddccd449c731e42ef83708ff6d8f0976Andy McFadden.long .L_OP_INVOKE_OBJECT_INIT_RANGE
370ac815100951522b19b3dc4f21100e57400a82267buzbee.long .L_OP_RETURN_VOID_BARRIER
37122d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IGET_QUICK
37222d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IGET_WIDE_QUICK
37322d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IGET_OBJECT_QUICK
37422d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IPUT_QUICK
37522d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IPUT_WIDE_QUICK
37622d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_IPUT_OBJECT_QUICK
37722d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_VIRTUAL_QUICK
37822d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_VIRTUAL_QUICK_RANGE
37922d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_SUPER_QUICK
38022d404a75a00cda0b0ebed1034c2808ba060b05fJohnnie Birch.long .L_OP_INVOKE_SUPER_QUICK_RANGE
381f8f23d402dc1eef107995b29ad4d91ee5b4e1c34Johnnie Birch.long .L_OP_IPUT_OBJECT_VOLATILE
382f8f23d402dc1eef107995b29ad4d91ee5b4e1c34Johnnie Birch.long .L_OP_SGET_OBJECT_VOLATILE
383f8f23d402dc1eef107995b29ad4d91ee5b4e1c34Johnnie Birch.long .L_OP_SPUT_OBJECT_VOLATILE
384ab35b50311951feea3782151dd5422ee944685c2Elliott Hughes.long .L_OP_UNUSED_FF
385