1 %verify "executed" 2 %verify "unknown method" 3 /* 4 * Handle a jumbo static method call. 5 */ 6 /* invoke-static/jumbo {vCCCC..v(CCCC+BBBB-1)}, meth@AAAAAAAA */ 7 movl rSELF,%ecx 8 movl 2(rPC),%eax # eax<- AAAAAAAA 9 movl offThread_methodClassDex(%ecx),%ecx # ecx<- pDvmDex 10 EXPORT_PC 11 movl offDvmDex_pResMethods(%ecx),%ecx # ecx<- pDvmDex->pResMethods 12 movl (%ecx,%eax,4),%eax # eax<- resolved methodToCall 13 testl %eax,%eax 14 jne common_invokeMethodJumbo 15 movl rSELF,%ecx 16 movl offThread_method(%ecx),%ecx # ecx<- self->method 17 movl 2(rPC),%eax # eax<- AAAAAAAA 18 movl offMethod_clazz(%ecx),%ecx# ecx<- method->clazz 19 movl %eax,OUT_ARG1(%esp) # arg1<- AAAAAAAA 20 movl %ecx,OUT_ARG0(%esp) # arg0<- clazz 21 movl $$METHOD_STATIC,%eax 22 movl %eax,OUT_ARG2(%esp) # arg2<- flags 23 call dvmResolveMethod # call(clazz,ref,flags) 24 testl %eax,%eax # got null? 25 jne common_invokeMethodJumbo 26 jmp common_exceptionThrown 27