Lines Matching refs:cfa

320 	cfi->cfa.base = CFI_UNDEFINED;  in init_cfi_state()
2248 state->cfa = initial_func_cfi.cfa; in set_func_state()
2251 state->stack_size = initial_func_cfi.cfa.offset; in set_func_state()
2335 if (arch_decode_hint_reg(hint->sp_reg, &cfi.cfa.base)) { in read_unwind_hints()
2340 cfi.cfa.offset = bswap_if_needed(file->elf, hint->sp_offset); in read_unwind_hints()
2726 if (cfi->cfa.base != initial_func_cfi.cfa.base || cfi->drap) in has_modified_stack_frame()
2729 if (cfi->cfa.offset != initial_func_cfi.cfa.offset) in has_modified_stack_frame()
2732 if (cfi->stack_size != initial_func_cfi.cfa.offset) in has_modified_stack_frame()
2755 if (cfi->cfa.base == CFI_BP && in has_valid_stack_frame()
2756 check_reg_frame_pos(&cfi->regs[CFI_BP], -cfi->cfa.offset) && in has_valid_stack_frame()
2757 check_reg_frame_pos(&cfi->regs[CFI_RA], -cfi->cfa.offset + 8)) in has_valid_stack_frame()
2770 struct cfi_reg *cfa = &cfi->cfa; in update_cfi_state_regs() local
2772 if (cfa->base != CFI_SP && cfa->base != CFI_SP_INDIRECT) in update_cfi_state_regs()
2777 cfa->offset += 8; in update_cfi_state_regs()
2781 cfa->offset -= 8; in update_cfi_state_regs()
2786 cfa->offset -= op->src.offset; in update_cfi_state_regs()
2863 struct cfi_reg *cfa = &cfi->cfa; in update_cfi_state() local
2871 if (cfa->base == CFI_UNDEFINED) { in update_cfi_state()
2890 cfa->base == CFI_SP && in update_cfi_state()
2891 check_reg_frame_pos(&regs[CFI_BP], -cfa->offset)) { in update_cfi_state()
2894 cfa->base = op->dest.reg; in update_cfi_state()
2907 else if (op->src.reg == CFI_SP && cfa->base == CFI_SP) { in update_cfi_state()
2924 (cfa->base == CFI_BP || cfa->base == cfi->drap_reg)) { in update_cfi_state()
2934 else if (op->dest.reg == cfa->base) { in update_cfi_state()
2937 if (cfa->base == CFI_SP && in update_cfi_state()
2948 cfa->offset = -cfi->vals[op->src.reg].offset; in update_cfi_state()
2949 cfi->stack_size = cfa->offset; in update_cfi_state()
2951 } else if (cfa->base == CFI_SP && in update_cfi_state()
2953 cfi->vals[op->src.reg].offset == cfa->offset) { in update_cfi_state()
2981 cfa->base = CFI_SP_INDIRECT; in update_cfi_state()
2984 cfa->base = CFI_UNDEFINED; in update_cfi_state()
2985 cfa->offset = 0; in update_cfi_state()
2991 cfi->vals[op->src.reg].offset == cfa->offset) { in update_cfi_state()
3024 if (cfa->base == CFI_SP) in update_cfi_state()
3025 cfa->offset -= op->src.offset; in update_cfi_state()
3032 if (cfa->base == CFI_SP && cfa->offset == op->src.offset) { in update_cfi_state()
3033 cfa->base = CFI_BP; in update_cfi_state()
3034 cfa->offset = 0; in update_cfi_state()
3041 if (cfa->base == CFI_BP && cfa->offset == 0) { in update_cfi_state()
3043 cfa->base = CFI_SP; in update_cfi_state()
3044 cfa->offset = -op->src.offset; in update_cfi_state()
3053 if (op->src.reg == CFI_SP && cfa->base == CFI_SP) { in update_cfi_state()
3079 cfa->base = CFI_SP; in update_cfi_state()
3080 cfa->offset = cfi->stack_size = -op->src.offset; in update_cfi_state()
3086 if (op->dest.reg == cfi->cfa.base && !(next_insn && next_insn->hint)) { in update_cfi_state()
3095 (cfi->drap_reg != CFI_UNDEFINED && cfa->base != CFI_SP) || in update_cfi_state()
3096 (cfi->drap_reg == CFI_UNDEFINED && cfa->base != CFI_BP)) { in update_cfi_state()
3103 cfa->base = cfi->drap_reg; in update_cfi_state()
3104 cfa->offset = cfi->stack_size = 0; in update_cfi_state()
3117 if (op->dest.reg == CFI_SP && cfa->base == CFI_SP_INDIRECT) { in update_cfi_state()
3120 cfa->base = CFI_SP; in update_cfi_state()
3124 if (!cfi->drap && op->dest.reg == cfa->base) { in update_cfi_state()
3127 cfa->base = CFI_SP; in update_cfi_state()
3130 if (cfi->drap && cfa->base == CFI_BP_INDIRECT && in update_cfi_state()
3135 cfa->base = cfi->drap_reg; in update_cfi_state()
3136 cfa->offset = 0; in update_cfi_state()
3146 if (cfa->base == CFI_SP) in update_cfi_state()
3147 cfa->offset -= 8; in update_cfi_state()
3152 if (!cfi->drap && op->dest.reg == cfa->base && in update_cfi_state()
3156 cfa->base = CFI_SP; in update_cfi_state()
3157 cfa->offset = cfi->stack_size; in update_cfi_state()
3164 cfa->base = cfi->drap_reg; in update_cfi_state()
3165 cfa->offset = 0; in update_cfi_state()
3175 } else if (op->src.reg == cfa->base && in update_cfi_state()
3176 op->src.offset == regs[op->dest.reg].offset + cfa->offset) { in update_cfi_state()
3201 if (cfa->base == CFI_SP) in update_cfi_state()
3202 cfa->offset += 8; in update_cfi_state()
3208 if (op->src.reg == cfa->base && op->src.reg == cfi->drap_reg) { in update_cfi_state()
3211 cfa->base = CFI_BP_INDIRECT; in update_cfi_state()
3212 cfa->offset = -cfi->stack_size; in update_cfi_state()
3217 } else if (op->src.reg == CFI_BP && cfa->base == cfi->drap_reg) { in update_cfi_state()
3236 cfa->base != CFI_BP) in update_cfi_state()
3243 if (op->src.reg == cfa->base && op->src.reg == cfi->drap_reg) { in update_cfi_state()
3246 cfa->base = CFI_BP_INDIRECT; in update_cfi_state()
3247 cfa->offset = op->dest.offset; in update_cfi_state()
3257 } else if (op->dest.reg == cfa->base) { in update_cfi_state()
3262 op->dest.offset - cfi->cfa.offset); in update_cfi_state()
3274 cfi->vals[op->dest.reg].offset = cfa->offset; in update_cfi_state()
3287 if (cfa->base == CFI_SP) in update_cfi_state()
3288 cfa->offset -= 8; in update_cfi_state()
3395 if (memcmp(&cfi1->cfa, &cfi2->cfa, sizeof(cfi1->cfa))) { in insn_cfi_match()
3398 cfi1->cfa.base, cfi1->cfa.offset, in insn_cfi_match()
3399 cfi2->cfa.base, cfi2->cfa.offset); in insn_cfi_match()
4057 if (state->cfi.cfa.base == CFI_UNDEFINED) in do_validate_branch()