Home | History | Annotate | Download | only in x86
      1 %verify "branch taken"
      2 %verify "branch not taken"
      3     /*
      4      * Generic one-operand compare-and-branch operation.  Provide a "revcmp"
      5      * fragment that specifies the *reverse* comparison to perform, e.g.
      6      * for "if-le" you would use "gt".
      7      *
      8      * for: if-eqz, if-nez, if-ltz, if-gez, if-gtz, if-lez
      9      */
     10     /* if-cmp vAA, +BBBB */
     11     cmpl     $$0,(rFP,rINST,4)     # compare (vA, 0)
     12     movl     rSELF,%ecx
     13     movl     $$2,%eax              # assume branch not taken
     14     j${revcmp}   1f
     15     movswl   2(rPC),%eax           # fetch signed displacement
     16     movl     offThread_curHandlerTable(%ecx),rIBASE
     17 1:
     18     FETCH_INST_INDEXED %eax
     19     ADVANCE_PC_INDEXED %eax
     20 #if defined(WITH_JIT)
     21     GET_JIT_PROF_TABLE %ecx %eax
     22     cmp         $$0, %eax
     23     jne         common_updateProfile # set up %ebx & %edx & rPC
     24 #endif
     25     GOTO_NEXT
     26