Lines Matching refs:fc

2778 frame_need_space (Frame_Chunk *fc, int reg)  in frame_need_space()  argument
2780 int prev = fc->ncols; in frame_need_space()
2782 if (reg < fc->ncols) in frame_need_space()
2785 fc->ncols = reg + 1; in frame_need_space()
2786 fc->col_type = xcrealloc (fc->col_type, fc->ncols, sizeof (short int)); in frame_need_space()
2787 fc->col_offset = xcrealloc (fc->col_offset, fc->ncols, sizeof (int)); in frame_need_space()
2789 while (prev < fc->ncols) in frame_need_space()
2791 fc->col_type[prev] = DW_CFA_unreferenced; in frame_need_space()
2792 fc->col_offset[prev] = 0; in frame_need_space()
2798 frame_display_row (Frame_Chunk *fc, int *need_col_headers, int *max_regs) in frame_display_row() argument
2803 if (*max_regs < fc->ncols) in frame_display_row()
2804 *max_regs = fc->ncols; in frame_display_row()
2813 if (fc->col_type[r] != DW_CFA_unreferenced) in frame_display_row()
2815 if (r == fc->ra) in frame_display_row()
2824 printf ("%08lx ", fc->pc_begin); in frame_display_row()
2825 if (fc->cfa_exp) in frame_display_row()
2828 sprintf (tmp, "r%d%+d", fc->cfa_reg, fc->cfa_offset); in frame_display_row()
2831 for (r = 0; r < fc->ncols; r++) in frame_display_row()
2833 if (fc->col_type[r] != DW_CFA_unreferenced) in frame_display_row()
2835 switch (fc->col_type[r]) in frame_display_row()
2844 sprintf (tmp, "c%+d", fc->col_offset[r]); in frame_display_row()
2847 sprintf (tmp, "v%+d", fc->col_offset[r]); in frame_display_row()
2850 sprintf (tmp, "r%d", fc->col_offset[r]); in frame_display_row()
2920 Frame_Chunk *fc; in display_debug_frames() local
2959 fc = xmalloc (sizeof (Frame_Chunk)); in display_debug_frames()
2960 memset (fc, 0, sizeof (Frame_Chunk)); in display_debug_frames()
2962 fc->next = chunks; in display_debug_frames()
2963 chunks = fc; in display_debug_frames()
2964 fc->chunk_start = saved_start; in display_debug_frames()
2965 fc->ncols = 0; in display_debug_frames()
2966 fc->col_type = xmalloc (sizeof (short int)); in display_debug_frames()
2967 fc->col_offset = xmalloc (sizeof (int)); in display_debug_frames()
2968 frame_need_space (fc, max_regs-1); in display_debug_frames()
2972 fc->augmentation = (char *) start; in display_debug_frames()
2975 if (fc->augmentation[0] == 'z') in display_debug_frames()
2977 fc->code_factor = LEB (); in display_debug_frames()
2978 fc->data_factor = SLEB (); in display_debug_frames()
2981 fc->ra = GET (1); in display_debug_frames()
2985 fc->ra = LEB (); in display_debug_frames()
2991 else if (strcmp (fc->augmentation, "eh") == 0) in display_debug_frames()
2994 fc->code_factor = LEB (); in display_debug_frames()
2995 fc->data_factor = SLEB (); in display_debug_frames()
2998 fc->ra = GET (1); in display_debug_frames()
3002 fc->ra = LEB (); in display_debug_frames()
3007 fc->code_factor = LEB (); in display_debug_frames()
3008 fc->data_factor = SLEB (); in display_debug_frames()
3011 fc->ra = GET (1); in display_debug_frames()
3015 fc->ra = LEB (); in display_debug_frames()
3018 cie = fc; in display_debug_frames()
3023 fc->augmentation, fc->code_factor, fc->data_factor, in display_debug_frames()
3024 fc->ra); in display_debug_frames()
3030 printf (" Augmentation: \"%s\"\n", fc->augmentation); in display_debug_frames()
3031 printf (" Code alignment factor: %u\n", fc->code_factor); in display_debug_frames()
3032 printf (" Data alignment factor: %d\n", fc->data_factor); in display_debug_frames()
3033 printf (" Return address column: %d\n", fc->ra); in display_debug_frames()
3049 p = (unsigned char *) fc->augmentation + 1; in display_debug_frames()
3059 fc->fde_encoding = *q++; in display_debug_frames()
3065 if (fc->fde_encoding) in display_debug_frames()
3066 encoded_ptr_size = size_of_encoded_value (fc->fde_encoding); in display_debug_frames()
3069 frame_need_space (fc, fc->ra); in display_debug_frames()
3076 fc = & fde_fc; in display_debug_frames()
3077 memset (fc, 0, sizeof (Frame_Chunk)); in display_debug_frames()
3090 fc->ncols = 0; in display_debug_frames()
3091 fc->col_type = xmalloc (sizeof (short int)); in display_debug_frames()
3092 fc->col_offset = xmalloc (sizeof (int)); in display_debug_frames()
3093 frame_need_space (fc, max_regs - 1); in display_debug_frames()
3094 cie = fc; in display_debug_frames()
3095 fc->augmentation = ""; in display_debug_frames()
3096 fc->fde_encoding = 0; in display_debug_frames()
3100 fc->ncols = cie->ncols; in display_debug_frames()
3101 fc->col_type = xcmalloc (fc->ncols, sizeof (short int)); in display_debug_frames()
3102 fc->col_offset = xcmalloc (fc->ncols, sizeof (int)); in display_debug_frames()
3103 memcpy (fc->col_type, cie->col_type, fc->ncols * sizeof (short int)); in display_debug_frames()
3104 memcpy (fc->col_offset, cie->col_offset, fc->ncols * sizeof (int)); in display_debug_frames()
3105 fc->augmentation = cie->augmentation; in display_debug_frames()
3106 fc->code_factor = cie->code_factor; in display_debug_frames()
3107 fc->data_factor = cie->data_factor; in display_debug_frames()
3108 fc->cfa_reg = cie->cfa_reg; in display_debug_frames()
3109 fc->cfa_offset = cie->cfa_offset; in display_debug_frames()
3110 fc->ra = cie->ra; in display_debug_frames()
3111 frame_need_space (fc, max_regs-1); in display_debug_frames()
3112 fc->fde_encoding = cie->fde_encoding; in display_debug_frames()
3115 if (fc->fde_encoding) in display_debug_frames()
3116 encoded_ptr_size = size_of_encoded_value (fc->fde_encoding); in display_debug_frames()
3118 fc->pc_begin = get_encoded_value (start, fc->fde_encoding); in display_debug_frames()
3119 if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel in display_debug_frames()
3124 fc->pc_begin += section->address + (start - section_start); in display_debug_frames()
3126 fc->pc_range = byte_get (start, encoded_ptr_size); in display_debug_frames()
3139 fc->pc_begin, fc->pc_begin + fc->pc_range); in display_debug_frames()
3183 frame_need_space (fc, opa); in display_debug_frames()
3184 fc->col_type[opa] = DW_CFA_undefined; in display_debug_frames()
3187 frame_need_space (fc, opa); in display_debug_frames()
3188 fc->col_type[opa] = DW_CFA_undefined; in display_debug_frames()
3205 frame_need_space (fc, reg); in display_debug_frames()
3206 fc->col_type[reg] = DW_CFA_undefined; in display_debug_frames()
3210 frame_need_space (fc, reg); in display_debug_frames()
3211 fc->col_type[reg] = DW_CFA_undefined; in display_debug_frames()
3215 frame_need_space (fc, reg); in display_debug_frames()
3216 fc->col_type[reg] = DW_CFA_undefined; in display_debug_frames()
3220 frame_need_space (fc, reg); in display_debug_frames()
3221 fc->col_type[reg] = DW_CFA_undefined; in display_debug_frames()
3225 frame_need_space (fc, reg); in display_debug_frames()
3226 fc->col_type[reg] = DW_CFA_undefined; in display_debug_frames()
3246 frame_need_space (fc, reg); in display_debug_frames()
3247 fc->col_type[reg] = DW_CFA_undefined; in display_debug_frames()
3252 frame_need_space (fc, reg); in display_debug_frames()
3253 fc->col_type[reg] = DW_CFA_undefined; in display_debug_frames()
3269 frame_need_space (fc, reg); in display_debug_frames()
3270 fc->col_type[reg] = DW_CFA_undefined; in display_debug_frames()
3300 frame_display_row (fc, &need_col_headers, &max_regs); in display_debug_frames()
3303 opa * fc->code_factor, in display_debug_frames()
3304 fc->pc_begin + opa * fc->code_factor); in display_debug_frames()
3305 fc->pc_begin += opa * fc->code_factor; in display_debug_frames()
3312 opa, roffs * fc->data_factor); in display_debug_frames()
3313 fc->col_type[opa] = DW_CFA_offset; in display_debug_frames()
3314 fc->col_offset[opa] = roffs * fc->data_factor; in display_debug_frames()
3320 if ((fc->col_type[opa] = cie->col_type[opa]) == in display_debug_frames()
3322 fc->col_type[opa] = DW_CFA_placeholder; in display_debug_frames()
3323 fc->col_offset[opa] = cie->col_offset[opa]; in display_debug_frames()
3327 vma = get_encoded_value (start, fc->fde_encoding); in display_debug_frames()
3328 if ((fc->fde_encoding & 0x70) == DW_EH_PE_pcrel in display_debug_frames()
3333 frame_display_row (fc, &need_col_headers, &max_regs); in display_debug_frames()
3336 fc->pc_begin = vma; in display_debug_frames()
3342 frame_display_row (fc, &need_col_headers, &max_regs); in display_debug_frames()
3345 ofs * fc->code_factor, in display_debug_frames()
3346 fc->pc_begin + ofs * fc->code_factor); in display_debug_frames()
3347 fc->pc_begin += ofs * fc->code_factor; in display_debug_frames()
3353 frame_display_row (fc, &need_col_headers, &max_regs); in display_debug_frames()
3356 ofs * fc->code_factor, in display_debug_frames()
3357 fc->pc_begin + ofs * fc->code_factor); in display_debug_frames()
3358 fc->pc_begin += ofs * fc->code_factor; in display_debug_frames()
3364 frame_display_row (fc, &need_col_headers, &max_regs); in display_debug_frames()
3367 ofs * fc->code_factor, in display_debug_frames()
3368 fc->pc_begin + ofs * fc->code_factor); in display_debug_frames()
3369 fc->pc_begin += ofs * fc->code_factor; in display_debug_frames()
3377 reg, roffs * fc->data_factor); in display_debug_frames()
3378 fc->col_type[reg] = DW_CFA_offset; in display_debug_frames()
3379 fc->col_offset[reg] = roffs * fc->data_factor; in display_debug_frames()
3387 reg, roffs * fc->data_factor); in display_debug_frames()
3388 fc->col_type[reg] = DW_CFA_val_offset; in display_debug_frames()
3389 fc->col_offset[reg] = roffs * fc->data_factor; in display_debug_frames()
3396 if ((fc->col_type[opa] = cie->col_type[opa]) == in display_debug_frames()
3398 fc->col_type[opa] = DW_CFA_placeholder; in display_debug_frames()
3399 fc->col_offset[reg] = cie->col_offset[reg]; in display_debug_frames()
3406 fc->col_type[reg] = DW_CFA_undefined; in display_debug_frames()
3407 fc->col_offset[reg] = 0; in display_debug_frames()
3414 fc->col_type[reg] = DW_CFA_same_value; in display_debug_frames()
3415 fc->col_offset[reg] = 0; in display_debug_frames()
3423 fc->col_type[reg] = DW_CFA_register; in display_debug_frames()
3424 fc->col_offset[reg] = roffs; in display_debug_frames()
3431 rs->ncols = fc->ncols; in display_debug_frames()
3434 memcpy (rs->col_type, fc->col_type, rs->ncols); in display_debug_frames()
3435 memcpy (rs->col_offset, fc->col_offset, rs->ncols * sizeof (int)); in display_debug_frames()
3447 frame_need_space (fc, rs->ncols-1); in display_debug_frames()
3448 memcpy (fc->col_type, rs->col_type, rs->ncols); in display_debug_frames()
3449 memcpy (fc->col_offset, rs->col_offset, in display_debug_frames()
3460 fc->cfa_reg = LEB (); in display_debug_frames()
3461 fc->cfa_offset = LEB (); in display_debug_frames()
3462 fc->cfa_exp = 0; in display_debug_frames()
3465 fc->cfa_reg, fc->cfa_offset); in display_debug_frames()
3469 fc->cfa_reg = LEB (); in display_debug_frames()
3470 fc->cfa_exp = 0; in display_debug_frames()
3472 printf (" DW_CFA_def_cfa_reg: r%d\n", fc->cfa_reg); in display_debug_frames()
3476 fc->cfa_offset = LEB (); in display_debug_frames()
3478 printf (" DW_CFA_def_cfa_offset: %d\n", fc->cfa_offset); in display_debug_frames()
3494 fc->cfa_exp = 1; in display_debug_frames()
3507 fc->col_type[reg] = DW_CFA_expression; in display_debug_frames()
3520 fc->col_type[reg] = DW_CFA_val_expression; in display_debug_frames()
3527 frame_need_space (fc, reg); in display_debug_frames()
3530 reg, l * fc->data_factor); in display_debug_frames()
3531 fc->col_type[reg] = DW_CFA_offset; in display_debug_frames()
3532 fc->col_offset[reg] = l * fc->data_factor; in display_debug_frames()
3538 frame_need_space (fc, reg); in display_debug_frames()
3541 reg, l * fc->data_factor); in display_debug_frames()
3542 fc->col_type[reg] = DW_CFA_val_offset; in display_debug_frames()
3543 fc->col_offset[reg] = l * fc->data_factor; in display_debug_frames()
3547 fc->cfa_reg = LEB (); in display_debug_frames()
3548 fc->cfa_offset = SLEB (); in display_debug_frames()
3549 fc->cfa_offset = fc->cfa_offset * fc->data_factor; in display_debug_frames()
3550 fc->cfa_exp = 0; in display_debug_frames()
3553 fc->cfa_reg, fc->cfa_offset); in display_debug_frames()
3557 fc->cfa_offset = SLEB (); in display_debug_frames()
3558 fc->cfa_offset = fc->cfa_offset * fc->data_factor; in display_debug_frames()
3560 printf (" DW_CFA_def_cfa_offset_sf: %d\n", fc->cfa_offset); in display_debug_frames()
3566 frame_display_row (fc, &need_col_headers, &max_regs); in display_debug_frames()
3569 ofs * fc->code_factor, in display_debug_frames()
3570 fc->pc_begin + ofs * fc->code_factor); in display_debug_frames()
3571 fc->pc_begin += ofs * fc->code_factor; in display_debug_frames()
3588 frame_need_space (fc, reg); in display_debug_frames()
3591 reg, l * fc->data_factor); in display_debug_frames()
3592 fc->col_type[reg] = DW_CFA_offset; in display_debug_frames()
3593 fc->col_offset[reg] = l * fc->data_factor; in display_debug_frames()
3603 frame_display_row (fc, &need_col_headers, &max_regs); in display_debug_frames()