Home | History | Annotate | Download | only in x86
      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