Branch: Tag:

2014-08-18

2014-08-18 13:28:39 by Per Hedbor <ph@opera.com>

Checking using tst_reg32 is not optimal in branch_if_non_zero.

2247:    amd64_add_sp(-1);       LABEL_B; /* Branch or not? */ -  test_reg32( P_REG_RBX ); +  test_reg( P_REG_RBX );    if( op == F_BRANCH_WHEN_ZERO )    return jz_imm_rel32(0);    return jnz_imm_rel32(0);
2314:    LABEL_A;    mov_imm_reg( 0, P_REG_RBX );    LABEL_B; -  test_reg32(P_REG_RBX); +  test_reg(P_REG_RBX);    return jnz_imm_rel32(0);       case F_LOOP:
3117:    checked. That is not nessasarily true.    */    mov_sval_type( ARG1_REG, P_REG_RCX ); -  cmp_reg32_imm( P_REG_RCX, PIKE_T_INT ); je( &label_C ); +  cmp_reg32_imm( P_REG_RCX, PIKE_T_INT ); +  je( &label_C );    mov_imm_reg( 1, P_REG_RAX );    shl_reg32_reg( P_REG_RAX, P_REG_RCX );    and_reg32_imm( P_REG_RAX, BIT_FUNCTION|BIT_OBJECT );