pike.git / src / code / amd64.c

version» Context lines:

pike.git/src/code/amd64.c:1586:    /* The add_sp above is not likely to have the zero-flag set    * after operation (since pike-sp is seldom 0).    */    jne( &label_C );    /* integer */    mov_mem_reg( sp_reg, OFFSETOF(svalue,u.integer), REG_RBX );    test_reg( REG_RBX );    jmp( &label_B );       LABEL_A; /* It is an object. Use the C version. */ -  amd64_call_c_opcode(instrs[F_BRANCH_WHEN_ZERO-F_OFFSET].address, -  instrs[F_BRANCH_WHEN_ZERO-F_OFFSET].flags ); +  amd64_call_c_opcode(instrs[F_BRANCH_WHEN_NON_ZERO-F_OFFSET].address, +  instrs[F_BRANCH_WHEN_NON_ZERO-F_OFFSET].flags );    amd64_load_sp_reg(); -  cmp_reg_imm( REG_RAX, -1 ); +  test_reg( REG_RAX );    jmp( &label_B );    LABEL_C;    /* not int or object. */    amd64_free_svalue_type( sp_reg, REG_RAX, 0 );    test_reg( sp_reg ); /* not zero. :) */       LABEL_B; /* Branch or not? */    if( op == F_BRANCH_WHEN_ZERO )    return jz_imm_rel32(0);    return jnz_imm_rel32(0);