pike.git / src / code / amd64.c

version» Context lines:

pike.git/src/code/amd64.c:1805:    mov_reg_mem( P_REG_RAX, P_REG_RBX, 0 );    mov_reg_mem( P_REG_RCX, P_REG_RBX, 8 );    /*    Note: For SVALUEPTR we know we do not have to free    the lvalue.    */    amd64_add_sp( -3 );    LABEL_B;    }    return; +     case F_AND:    {    LABELS();    ins_debug_instr_prologue(b, 0, 0);    amd64_load_sp_reg();    mov_mem8_reg(sp_reg, SVAL(-1).type, P_REG_RAX );    mov_mem8_reg(sp_reg, SVAL(-2).type, P_REG_RBX );    add_reg_reg(P_REG_RAX,P_REG_RBX);    /* test_reg(P_REG_RAX); int == 0 */    jnz(&label_A);
pike.git/src/code/amd64.c:1867:    amd64_load_sp_reg();    mov_mem8_reg(sp_reg, -1*sizeof(struct svalue), P_REG_RAX );    mov_mem8_reg(sp_reg, -2*sizeof(struct svalue), P_REG_RBX );    add_reg32_reg32(P_REG_RAX,P_REG_RBX);    /* test_reg(P_REG_RAX); int == 0 */    jnz(&label_A);       mov_mem_reg(sp_reg, SVAL(-1).value, P_REG_RCX );    cmp_reg_imm(P_REG_RCX,0);    jl( &label_A ); -  amd64_add_sp(-1); +     cmp_reg_imm(P_REG_RCX,63); -  jle( &label_B ); -  mov_imm_reg(P_REG_RCX,63); -  LABEL_B; -  shr_mem_reg(sp_reg,SVAL(-1).value, P_REG_RCX); -  jmp(&label_C); +  jl( &label_B );    LABEL_A;    amd64_call_c_opcode(addr, flags);    amd64_load_sp_reg(); -  +  jmp(&label_C); +  LABEL_B; +  shr_mem_reg( sp_reg, SVAL(-2).value, P_REG_RCX); +  amd64_add_sp(-1);    LABEL_C;    }    return;    case F_ADD_INTS:    {    ins_debug_instr_prologue(b, 0, 0);    amd64_load_sp_reg();    mov_mem_reg( sp_reg, -sizeof(struct svalue)*2, P_REG_RAX );    add_reg_mem( P_REG_RAX, sp_reg, -sizeof(struct svalue ) );   #if PIKE_T_INT != 0