zcmp.S revision 0c2dc522d0e120f346cf0a40c8cf0c93346131c2
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
171:
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