Lines Matching refs:cfa
217 state->cfa.base = CFI_UNDEFINED; in clear_insn_state()
1166 struct cfi_reg *cfa; in read_unwind_hints() local
1201 cfa = &insn->state.cfa; in read_unwind_hints()
1217 cfa->base = CFI_UNDEFINED; in read_unwind_hints()
1220 cfa->base = CFI_SP; in read_unwind_hints()
1223 cfa->base = CFI_BP; in read_unwind_hints()
1226 cfa->base = CFI_SP_INDIRECT; in read_unwind_hints()
1229 cfa->base = CFI_R10; in read_unwind_hints()
1232 cfa->base = CFI_R13; in read_unwind_hints()
1235 cfa->base = CFI_DI; in read_unwind_hints()
1238 cfa->base = CFI_DX; in read_unwind_hints()
1246 cfa->offset = hint->sp_offset; in read_unwind_hints()
1377 if (state->cfa.base != initial_func_cfi.cfa.base || in has_modified_stack_frame()
1378 state->cfa.offset != initial_func_cfi.cfa.offset || in has_modified_stack_frame()
1379 state->stack_size != initial_func_cfi.cfa.offset || in has_modified_stack_frame()
1393 if (state->cfa.base == CFI_BP && state->regs[CFI_BP].base == CFI_CFA && in has_valid_stack_frame()
1405 struct cfi_reg *cfa = &state->cfa; in update_insn_state_regs() local
1408 if (cfa->base != CFI_SP) in update_insn_state_regs()
1413 cfa->offset += 8; in update_insn_state_regs()
1417 cfa->offset -= 8; in update_insn_state_regs()
1422 cfa->offset -= op->src.offset; in update_insn_state_regs()
1499 struct cfi_reg *cfa = &state->cfa; in update_insn_state() local
1503 if (cfa->base == CFI_UNDEFINED) { in update_insn_state()
1521 cfa->base == CFI_SP && in update_insn_state()
1523 regs[CFI_BP].offset == -cfa->offset) { in update_insn_state()
1526 cfa->base = op->dest.reg; in update_insn_state()
1539 else if (op->src.reg == CFI_SP && cfa->base == CFI_SP) { in update_insn_state()
1556 cfa->base == CFI_BP) { in update_insn_state()
1566 else if (op->dest.reg == cfa->base) { in update_insn_state()
1569 if (cfa->base == CFI_SP && in update_insn_state()
1580 cfa->offset = -state->vals[op->src.reg].offset; in update_insn_state()
1581 state->stack_size = cfa->offset; in update_insn_state()
1584 cfa->base = CFI_UNDEFINED; in update_insn_state()
1585 cfa->offset = 0; in update_insn_state()
1596 if (cfa->base == CFI_SP) in update_insn_state()
1597 cfa->offset -= op->src.offset; in update_insn_state()
1608 if (op->src.reg == CFI_SP && cfa->base == CFI_SP) { in update_insn_state()
1634 cfa->base = CFI_SP; in update_insn_state()
1635 cfa->offset = state->stack_size = -op->src.offset; in update_insn_state()
1641 if (op->dest.reg == state->cfa.base) { in update_insn_state()
1651 (state->drap_reg != CFI_UNDEFINED && cfa->base != CFI_SP) || in update_insn_state()
1652 (state->drap_reg == CFI_UNDEFINED && cfa->base != CFI_BP)) { in update_insn_state()
1660 cfa->base = state->drap_reg; in update_insn_state()
1661 cfa->offset = state->stack_size = 0; in update_insn_state()
1675 op->dest.reg == cfa->base) { in update_insn_state()
1678 cfa->base = CFI_SP; in update_insn_state()
1681 if (state->drap && cfa->base == CFI_BP_INDIRECT && in update_insn_state()
1687 cfa->base = state->drap_reg; in update_insn_state()
1688 cfa->offset = 0; in update_insn_state()
1698 if (cfa->base == CFI_SP) in update_insn_state()
1699 cfa->offset -= 8; in update_insn_state()
1708 cfa->base = state->drap_reg; in update_insn_state()
1709 cfa->offset = 0; in update_insn_state()
1719 } else if (op->src.reg == cfa->base && in update_insn_state()
1720 op->src.offset == regs[op->dest.reg].offset + cfa->offset) { in update_insn_state()
1740 if (cfa->base == CFI_SP) in update_insn_state()
1741 cfa->offset += 8; in update_insn_state()
1747 if (op->src.reg == cfa->base && op->src.reg == state->drap_reg) { in update_insn_state()
1750 cfa->base = CFI_BP_INDIRECT; in update_insn_state()
1751 cfa->offset = -state->stack_size; in update_insn_state()
1756 } else if (op->src.reg == CFI_BP && cfa->base == state->drap_reg) { in update_insn_state()
1775 cfa->base != CFI_BP) in update_insn_state()
1782 if (op->src.reg == cfa->base && op->src.reg == state->drap_reg) { in update_insn_state()
1785 cfa->base = CFI_BP_INDIRECT; in update_insn_state()
1786 cfa->offset = op->dest.offset; in update_insn_state()
1798 } else if (op->dest.reg == cfa->base) { in update_insn_state()
1803 op->dest.offset - state->cfa.offset); in update_insn_state()
1809 if ((!state->drap && cfa->base != CFI_BP) || in update_insn_state()
1810 (state->drap && cfa->base != state->drap_reg)) { in update_insn_state()
1822 cfa->base = CFI_SP; in update_insn_state()
1823 cfa->offset -= 8; in update_insn_state()
1837 if (cfa->base == CFI_SP) in update_insn_state()
1838 cfa->offset -= 8; in update_insn_state()
1856 if (memcmp(&state1->cfa, &state2->cfa, sizeof(state1->cfa))) { in insn_state_match()
1859 state1->cfa.base, state1->cfa.offset, in insn_state_match()
1860 state2->cfa.base, state2->cfa.offset); in insn_state_match()
2213 if (state.cfa.base == CFI_UNDEFINED) in validate_branch()
2354 state.cfa = initial_func_cfi.cfa; in validate_functions()
2357 state.stack_size = initial_func_cfi.cfa.offset; in validate_functions()