Home | History | Annotate | Download | only in x86
      1 %default {"routine":"art_quick_ldiv"}
      2 /* art_quick_* methods has quick abi,
      3  *   so use eax, ecx, edx, ebx for args
      4  */
      5     /* div vAA, vBB, vCC */
      6     .extern $routine
      7     mov     rIBASE, LOCAL0(%esp)            # save rIBASE/%edx
      8     mov     rINST, LOCAL1(%esp)             # save rINST/%ebx
      9     movzbl  3(rPC), %eax                    # eax <- CC
     10     GET_VREG %ecx, %eax
     11     GET_VREG_HIGH %ebx, %eax
     12     movl    %ecx, %edx
     13     orl     %ebx, %ecx
     14     jz      common_errDivideByZero
     15     movzbl  2(rPC), %eax                    # eax <- BB
     16     GET_VREG_HIGH %ecx, %eax
     17     GET_VREG %eax, %eax
     18     call    SYMBOL($routine)
     19     mov     LOCAL1(%esp), rINST             # restore rINST/%ebx
     20     SET_VREG_HIGH rIBASE, rINST
     21     SET_VREG %eax, rINST
     22     mov     LOCAL0(%esp), rIBASE            # restore rIBASE/%edx
     23     ADVANCE_PC_FETCH_AND_GOTO_NEXT 2
     24