Lines Matching refs:cfa
217 state->cfa.base = CFI_UNDEFINED; in clear_insn_state()
1165 struct cfi_reg *cfa; in read_unwind_hints() local
1200 cfa = &insn->state.cfa; in read_unwind_hints()
1216 cfa->base = CFI_UNDEFINED; in read_unwind_hints()
1219 cfa->base = CFI_SP; in read_unwind_hints()
1222 cfa->base = CFI_BP; in read_unwind_hints()
1225 cfa->base = CFI_SP_INDIRECT; in read_unwind_hints()
1228 cfa->base = CFI_R10; in read_unwind_hints()
1231 cfa->base = CFI_R13; in read_unwind_hints()
1234 cfa->base = CFI_DI; in read_unwind_hints()
1237 cfa->base = CFI_DX; in read_unwind_hints()
1245 cfa->offset = hint->sp_offset; in read_unwind_hints()
1376 if (state->cfa.base != initial_func_cfi.cfa.base || in has_modified_stack_frame()
1377 state->cfa.offset != initial_func_cfi.cfa.offset || in has_modified_stack_frame()
1378 state->stack_size != initial_func_cfi.cfa.offset || in has_modified_stack_frame()
1392 if (state->cfa.base == CFI_BP && state->regs[CFI_BP].base == CFI_CFA && in has_valid_stack_frame()
1404 struct cfi_reg *cfa = &state->cfa; in update_insn_state_regs() local
1407 if (cfa->base != CFI_SP) in update_insn_state_regs()
1412 cfa->offset += 8; in update_insn_state_regs()
1416 cfa->offset -= 8; in update_insn_state_regs()
1421 cfa->offset -= op->src.offset; in update_insn_state_regs()
1498 struct cfi_reg *cfa = &state->cfa; in update_insn_state() local
1502 if (cfa->base == CFI_UNDEFINED) { in update_insn_state()
1520 cfa->base == CFI_SP && in update_insn_state()
1522 regs[CFI_BP].offset == -cfa->offset) { in update_insn_state()
1525 cfa->base = op->dest.reg; in update_insn_state()
1538 else if (op->src.reg == CFI_SP && cfa->base == CFI_SP) { in update_insn_state()
1555 cfa->base == CFI_BP) { in update_insn_state()
1565 else if (op->dest.reg == cfa->base) { in update_insn_state()
1568 if (cfa->base == CFI_SP && in update_insn_state()
1579 cfa->offset = -state->vals[op->src.reg].offset; in update_insn_state()
1580 state->stack_size = cfa->offset; in update_insn_state()
1583 cfa->base = CFI_UNDEFINED; in update_insn_state()
1584 cfa->offset = 0; in update_insn_state()
1595 if (cfa->base == CFI_SP) in update_insn_state()
1596 cfa->offset -= op->src.offset; in update_insn_state()
1607 if (op->src.reg == CFI_SP && cfa->base == CFI_SP) { in update_insn_state()
1633 cfa->base = CFI_SP; in update_insn_state()
1634 cfa->offset = state->stack_size = -op->src.offset; in update_insn_state()
1640 if (op->dest.reg == state->cfa.base) { in update_insn_state()
1650 (state->drap_reg != CFI_UNDEFINED && cfa->base != CFI_SP) || in update_insn_state()
1651 (state->drap_reg == CFI_UNDEFINED && cfa->base != CFI_BP)) { in update_insn_state()
1659 cfa->base = state->drap_reg; in update_insn_state()
1660 cfa->offset = state->stack_size = 0; in update_insn_state()
1674 op->dest.reg == cfa->base) { in update_insn_state()
1677 cfa->base = CFI_SP; in update_insn_state()
1680 if (state->drap && cfa->base == CFI_BP_INDIRECT && in update_insn_state()
1686 cfa->base = state->drap_reg; in update_insn_state()
1687 cfa->offset = 0; in update_insn_state()
1697 if (cfa->base == CFI_SP) in update_insn_state()
1698 cfa->offset -= 8; in update_insn_state()
1707 cfa->base = state->drap_reg; in update_insn_state()
1708 cfa->offset = 0; in update_insn_state()
1718 } else if (op->src.reg == cfa->base && in update_insn_state()
1719 op->src.offset == regs[op->dest.reg].offset + cfa->offset) { in update_insn_state()
1739 if (cfa->base == CFI_SP) in update_insn_state()
1740 cfa->offset += 8; in update_insn_state()
1746 if (op->src.reg == cfa->base && op->src.reg == state->drap_reg) { in update_insn_state()
1749 cfa->base = CFI_BP_INDIRECT; in update_insn_state()
1750 cfa->offset = -state->stack_size; in update_insn_state()
1755 } else if (op->src.reg == CFI_BP && cfa->base == state->drap_reg) { in update_insn_state()
1774 cfa->base != CFI_BP) in update_insn_state()
1781 if (op->src.reg == cfa->base && op->src.reg == state->drap_reg) { in update_insn_state()
1784 cfa->base = CFI_BP_INDIRECT; in update_insn_state()
1785 cfa->offset = op->dest.offset; in update_insn_state()
1797 } else if (op->dest.reg == cfa->base) { in update_insn_state()
1802 op->dest.offset - state->cfa.offset); in update_insn_state()
1808 if ((!state->drap && cfa->base != CFI_BP) || in update_insn_state()
1809 (state->drap && cfa->base != state->drap_reg)) { in update_insn_state()
1821 cfa->base = CFI_SP; in update_insn_state()
1822 cfa->offset -= 8; in update_insn_state()
1836 if (cfa->base == CFI_SP) in update_insn_state()
1837 cfa->offset -= 8; in update_insn_state()
1855 if (memcmp(&state1->cfa, &state2->cfa, sizeof(state1->cfa))) { in insn_state_match()
1858 state1->cfa.base, state1->cfa.offset, in insn_state_match()
1859 state2->cfa.base, state2->cfa.offset); in insn_state_match()
2212 if (state.cfa.base == CFI_UNDEFINED) in validate_branch()
2353 state.cfa = initial_func_cfi.cfa; in validate_functions()
2356 state.stack_size = initial_func_cfi.cfa.offset; in validate_functions()