/* * This handler transfers control to the interpeter without performing * any lookups. It may be called either as part of a normal chaining * operation, or from the transition code in header.S. We distinquish * the two cases by looking at the link register. If called from a * translation chain, it will point to the chaining Dalvik PC -3. * On entry: * lr - if NULL: * r1 - the Dalvik PC to begin interpretation. * else * [lr, #3] contains Dalvik PC to begin interpretation * rSELF - pointer to thread * rFP - Dalvik frame pointer */ cmp lr, #0 #if defined(WORKAROUND_CORTEX_A9_745320) /* Don't use conditional loads if the HW defect exists */ beq 101f ldr r1,[lr, #3] 101: #else ldrne r1,[lr, #3] #endif ldr r2, .LinterpPunt mov r0, r1 @ set Dalvik PC bx r2 @ doesn't return .LinterpPunt: .word dvmJitToInterpPunt