pike.git / src / code / amd64.c

version» Context lines:

pike.git/src/code/amd64.c:1744:    case F_MARK_AND_EXTERNAL:    ins_f_byte(F_MARK);    ins_f_byte_with_2_args(F_EXTERNAL, b, c);    return;    case F_LOCAL_2_LOCAL:    ins_debug_instr_prologue(a-F_OFFSET, b, c);    if( b != c )    {    int b_c_dist = b-c;    amd64_load_fp_reg(); -  mov_mem_reg(fp_reg, OFFSETOF(pike_frame, locals), REG_RAX ); -  add_reg_imm_reg( REG_RAX, b*sizeof(struct svalue), REG_RBX ); +  mov_mem_reg( fp_reg, OFFSETOF(pike_frame, locals), REG_RBX ); +  add_reg_imm( REG_RBX, b*sizeof(struct svalue) );    /* RBX points to dst. */    amd64_free_svalue( REG_RBX, 0 ); -  /* assign rbx[0] = rbx[b-c] */ +  /* assign rbx[0] = rbx[c-b] */    mov_mem_reg( REG_RBX, (c-b)*sizeof(struct svalue), REG_RAX );    mov_mem_reg( REG_RBX, (c-b)*sizeof(struct svalue)+8, REG_RCX );    mov_reg_mem( REG_RAX, REG_RBX, 0 );    mov_reg_mem( REG_RCX, REG_RBX, 8 );    amd64_ref_svalue( REG_RBX, 1 );    }    return;    case F_2_LOCALS:   #if 1    ins_debug_instr_prologue(a-F_OFFSET, b, c);