Lines Matching refs:cfa
249 cfi->cfa.base = CFI_UNDEFINED; in init_cfi_state()
1540 state->cfa = initial_func_cfi.cfa; in set_func_state()
1543 state->stack_size = initial_func_cfi.cfa.offset; in set_func_state()
1599 insn->cfi.cfa.offset = bswap_if_needed(hint->sp_offset); in read_unwind_hints()
1883 if (cfi->cfa.base != initial_func_cfi.cfa.base || cfi->drap) in has_modified_stack_frame()
1886 if (cfi->cfa.offset != initial_func_cfi.cfa.offset) in has_modified_stack_frame()
1889 if (cfi->stack_size != initial_func_cfi.cfa.offset) in has_modified_stack_frame()
1912 if (cfi->cfa.base == CFI_BP && in has_valid_stack_frame()
1913 check_reg_frame_pos(&cfi->regs[CFI_BP], -cfi->cfa.offset) && in has_valid_stack_frame()
1914 check_reg_frame_pos(&cfi->regs[CFI_RA], -cfi->cfa.offset + 8)) in has_valid_stack_frame()
1927 struct cfi_reg *cfa = &cfi->cfa; in update_cfi_state_regs() local
1929 if (cfa->base != CFI_SP && cfa->base != CFI_SP_INDIRECT) in update_cfi_state_regs()
1934 cfa->offset += 8; in update_cfi_state_regs()
1938 cfa->offset -= 8; in update_cfi_state_regs()
1943 cfa->offset -= op->src.offset; in update_cfi_state_regs()
2020 struct cfi_reg *cfa = &cfi->cfa; in update_cfi_state() local
2024 if (cfa->base == CFI_UNDEFINED) { in update_cfi_state()
2043 cfa->base == CFI_SP && in update_cfi_state()
2044 check_reg_frame_pos(®s[CFI_BP], -cfa->offset)) { in update_cfi_state()
2047 cfa->base = op->dest.reg; in update_cfi_state()
2060 else if (op->src.reg == CFI_SP && cfa->base == CFI_SP) { in update_cfi_state()
2077 (cfa->base == CFI_BP || cfa->base == cfi->drap_reg)) { in update_cfi_state()
2087 else if (op->dest.reg == cfa->base) { in update_cfi_state()
2090 if (cfa->base == CFI_SP && in update_cfi_state()
2101 cfa->offset = -cfi->vals[op->src.reg].offset; in update_cfi_state()
2102 cfi->stack_size = cfa->offset; in update_cfi_state()
2104 } else if (cfa->base == CFI_SP && in update_cfi_state()
2106 cfi->vals[op->src.reg].offset == cfa->offset) { in update_cfi_state()
2134 cfa->base = CFI_SP_INDIRECT; in update_cfi_state()
2137 cfa->base = CFI_UNDEFINED; in update_cfi_state()
2138 cfa->offset = 0; in update_cfi_state()
2144 cfi->vals[op->src.reg].offset == cfa->offset) { in update_cfi_state()
2163 if (cfa->base == CFI_SP) in update_cfi_state()
2164 cfa->offset -= op->src.offset; in update_cfi_state()
2176 op->dest.reg == CFI_BP && cfa->base == CFI_SP && in update_cfi_state()
2177 check_reg_frame_pos(®s[CFI_BP], -cfa->offset + op->src.offset)) { in update_cfi_state()
2180 cfa->base = CFI_BP; in update_cfi_state()
2181 cfa->offset -= op->src.offset; in update_cfi_state()
2186 if (op->src.reg == CFI_SP && cfa->base == CFI_SP) { in update_cfi_state()
2212 cfa->base = CFI_SP; in update_cfi_state()
2213 cfa->offset = cfi->stack_size = -op->src.offset; in update_cfi_state()
2219 if (op->dest.reg == cfi->cfa.base && !(next_insn && next_insn->hint)) { in update_cfi_state()
2229 (cfi->drap_reg != CFI_UNDEFINED && cfa->base != CFI_SP) || in update_cfi_state()
2230 (cfi->drap_reg == CFI_UNDEFINED && cfa->base != CFI_BP)) { in update_cfi_state()
2238 cfa->base = cfi->drap_reg; in update_cfi_state()
2239 cfa->offset = cfi->stack_size = 0; in update_cfi_state()
2252 if (op->dest.reg == CFI_SP && cfa->base == CFI_SP_INDIRECT) { in update_cfi_state()
2255 cfa->base = CFI_SP; in update_cfi_state()
2259 if (!cfi->drap && op->dest.reg == cfa->base) { in update_cfi_state()
2262 cfa->base = CFI_SP; in update_cfi_state()
2265 if (cfi->drap && cfa->base == CFI_BP_INDIRECT && in update_cfi_state()
2270 cfa->base = cfi->drap_reg; in update_cfi_state()
2271 cfa->offset = 0; in update_cfi_state()
2281 if (cfa->base == CFI_SP) in update_cfi_state()
2282 cfa->offset -= 8; in update_cfi_state()
2287 if (!cfi->drap && op->dest.reg == cfa->base && in update_cfi_state()
2291 cfa->base = CFI_SP; in update_cfi_state()
2292 cfa->offset = cfi->stack_size; in update_cfi_state()
2299 cfa->base = cfi->drap_reg; in update_cfi_state()
2300 cfa->offset = 0; in update_cfi_state()
2310 } else if (op->src.reg == cfa->base && in update_cfi_state()
2311 op->src.offset == regs[op->dest.reg].offset + cfa->offset) { in update_cfi_state()
2337 if (cfa->base == CFI_SP) in update_cfi_state()
2338 cfa->offset += 8; in update_cfi_state()
2344 if (op->src.reg == cfa->base && op->src.reg == cfi->drap_reg) { in update_cfi_state()
2347 cfa->base = CFI_BP_INDIRECT; in update_cfi_state()
2348 cfa->offset = -cfi->stack_size; in update_cfi_state()
2353 } else if (op->src.reg == CFI_BP && cfa->base == cfi->drap_reg) { in update_cfi_state()
2372 cfa->base != CFI_BP) in update_cfi_state()
2379 if (op->src.reg == cfa->base && op->src.reg == cfi->drap_reg) { in update_cfi_state()
2382 cfa->base = CFI_BP_INDIRECT; in update_cfi_state()
2383 cfa->offset = op->dest.offset; in update_cfi_state()
2393 } else if (op->dest.reg == cfa->base) { in update_cfi_state()
2398 op->dest.offset - cfi->cfa.offset); in update_cfi_state()
2410 cfi->vals[op->dest.reg].offset = cfa->offset; in update_cfi_state()
2424 if (cfa->base == CFI_SP) in update_cfi_state()
2425 cfa->offset -= 8; in update_cfi_state()
2515 if (memcmp(&cfi1->cfa, &cfi2->cfa, sizeof(cfi1->cfa))) { in insn_cfi_match()
2519 cfi1->cfa.base, cfi1->cfa.offset, in insn_cfi_match()
2520 cfi2->cfa.base, cfi2->cfa.offset); in insn_cfi_match()
2880 if (state.cfi.cfa.base == CFI_UNDEFINED) in validate_branch()