entry.S revision ab35b50311951feea3782151dd5422ee944685c2
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