diff options
author | Jeff Hao <jeffhao@google.com> | 2013-10-29 20:10:49 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-10-29 20:10:49 +0000 |
commit | c844a0f04e07bb0b8761e2648392251d522c89c1 (patch) | |
tree | bcec746a18c3c6c752586adfe46c6468bd6e9d9a /runtime/arch/arm/quick_entrypoints_arm.S | |
parent | fea1024bb9d35a1e61ebfbf2b76f565029547990 (diff) | |
parent | 88474b416eb257078e590bf9bc7957cee604a186 (diff) | |
download | art-c844a0f04e07bb0b8761e2648392251d522c89c1.zip art-c844a0f04e07bb0b8761e2648392251d522c89c1.tar.gz art-c844a0f04e07bb0b8761e2648392251d522c89c1.tar.bz2 |
Merge "Implement Interface Method Tables (IMT)." into dalvik-dev
Diffstat (limited to 'runtime/arch/arm/quick_entrypoints_arm.S')
-rw-r--r-- | runtime/arch/arm/quick_entrypoints_arm.S | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/runtime/arch/arm/quick_entrypoints_arm.S b/runtime/arch/arm/quick_entrypoints_arm.S index c11349802..50a5176 100644 --- a/runtime/arch/arm/quick_entrypoints_arm.S +++ b/runtime/arch/arm/quick_entrypoints_arm.S @@ -1041,6 +1041,18 @@ ENTRY art_quick_proxy_invoke_handler DELIVER_PENDING_EXCEPTION END art_quick_proxy_invoke_handler + /* + * Called to resolve an imt conflict. r12 is a hidden argument that holds the target method's + * dex method index. + */ +ENTRY art_quick_imt_conflict_trampoline + ldr r0, [sp, #0] @ load caller Method* + ldr r0, [r0, #METHOD_DEX_CACHE_METHODS_OFFSET] @ load dex_cache_resolved_methods + add r0, #OBJECT_ARRAY_DATA_OFFSET @ get starting address of data + ldr r0, [r0, r12, lsl 2] @ load the target method + b art_quick_invoke_interface_trampoline +END art_quick_imt_conflict_trampoline + .extern artQuickResolutionTrampoline ENTRY art_quick_resolution_trampoline SETUP_REF_AND_ARGS_CALLEE_SAVE_FRAME |