1 %verify "executed" 2 %verify "unknown method" 3 %verify "null object" 4 /* 5 * Handle a jumbo interface method call. 6 */ 7 /* invoke-interface/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ 8 movzwl 8(rPC),%eax # eax<- CCCC 9 movl rSELF,%ecx 10 GET_VREG_R %eax %eax # eax<- "this" 11 EXPORT_PC 12 testl %eax,%eax # null this? 13 je common_errNullObject # yes, fail 14 movl offObject_clazz(%eax),%eax# eax<- thisPtr->clazz 15 movl %eax,OUT_ARG0(%esp) # arg0<- class 16 movl offThread_methodClassDex(%ecx),%eax # eax<- methodClassDex 17 movl offThread_method(%ecx),%ecx # ecx<- method 18 movl %eax,OUT_ARG3(%esp) # arg3<- dex 19 movl 2(rPC),%eax # eax<- AAAAAAAA 20 movl %ecx,OUT_ARG2(%esp) # arg2<- method 21 movl %eax,OUT_ARG1(%esp) # arg1<- AAAAAAAA 22 call dvmFindInterfaceMethodInCache # eax<- call(class, ref, method, dex) 23 testl %eax,%eax 24 je common_exceptionThrown 25 jmp common_invokeMethodJumbo 26