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