pike.git / src / code / amd64.c

version» Context lines:

pike.git/src/code/amd64.c:1359:    flags = instrs[off].flags;    if (!(flags & I_BRANCH)) return -1;       switch( op )    {    case F_LOOP:    /* counter in pike_sp-1 */    /* decrement until 0. */    /* if not 0, branch */    /* otherwise, pop */ -  ins_debug_instr_prologue(op-F_OFFSET, a, 0); +  ins_debug_instr_prologue(off, 0, 0);    amd64_load_sp_reg();    mov_mem32_reg( sp_reg, -sizeof(struct svalue), REG_RAX );    /* Is it a normal integer? subtype -> 0, type -> PIKE_T_INT */    cmp_reg_imm( REG_RAX, PIKE_T_INT );    jne( &label_A );       /* if it is, is it 0? */    mov_mem_reg( sp_reg, -sizeof(struct svalue)+8, REG_RAX );    test_reg(REG_RAX);    jz( &label_B ); /* it is. */
pike.git/src/code/amd64.c:1545:    {    /* assign done, pop. */    amd64_add_sp( -1 );    amd64_free_svalue( sp_reg, 1 );    }    return;       case F_SIZEOF_LOCAL:    {    LABELS(); -  ins_debug_instr_prologue(b,0,0); +  ins_debug_instr_prologue(a-F_OFFSET, b, 0);    amd64_load_fp_reg();    amd64_load_sp_reg();       mov_mem_reg( fp_reg, OFFSETOF(pike_frame,locals), ARG1_REG);    add_reg_imm( ARG1_REG, b*sizeof(struct svalue));   #if 0    mov_sval_type( ARG1_REG, REG_RAX );    /* type in RAX, svalue in ARG1 */    cmp_reg_imm( REG_RAX, PIKE_T_ARRAY );    jne( &label_A );
pike.git/src/code/amd64.c:1739:    switch(a) {    case F_NUMBER64:    ins_debug_instr_prologue(a-F_OFFSET, b, c);    amd64_push_int((((unsigned INT64)b)<<32)|(unsigned INT32)c, 0);    return;    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, 0); +  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 );    /* RBX points to dst. */    amd64_free_svalue( REG_RBX, 0 );    /* assign rbx[0] = rbx[b-c] */    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, 0); +  ins_debug_instr_prologue(a-F_OFFSET, b, c);    amd64_load_fp_reg();    amd64_load_sp_reg();    mov_mem_reg(fp_reg, OFFSETOF(pike_frame, locals), REG_R8);    add_reg_imm( REG_R8, b*sizeof(struct svalue) );    amd64_push_svaluep(REG_R8);    add_reg_imm( REG_R8, (c-b)*sizeof(struct svalue) );    amd64_push_svaluep(REG_R8);   #else    ins_f_byte_with_arg( F_LOCAL, b );    ins_f_byte_with_arg( F_LOCAL, c );