Home | History | Annotate | Download | only in x86
      1 /*
      2  * Inter-instruction transfer stub.  Call out to MterpCheckBefore to handle
      3  * any interesting requests and then jump to the real instruction
      4  * handler.  Unlike the Arm handler, we can't do this as a tail call
      5  * because rIBASE is caller save and we need to reload it.
      6  *
      7  * Note that unlike in the Arm implementation, we should never arrive
      8  * here with a zero breakFlag because we always refresh rIBASE on
      9  * return.
     10  */
     11     .extern MterpCheckBefore
     12     EXPORT_PC
     13 
     14     movl    rSELF, %ecx
     15     movl    %ecx, OUT_ARG0(%esp)
     16     leal    OFF_FP_SHADOWFRAME(rFP), %eax
     17     movl    %eax, OUT_ARG1(%esp)
     18     call    SYMBOL(MterpCheckBefore)        # (self, shadow_frame)
     19     REFRESH_IBASE
     20     jmp     .L_op_nop+(${opnum}*${handler_size_bytes})
     21