Lines Matching refs:cfa
244 state->cfa.base = CFI_UNDEFINED; in clear_insn_state()
1078 struct cfi_reg *cfa; in read_unwind_hints() local
1113 cfa = &insn->state.cfa; in read_unwind_hints()
1129 cfa->base = CFI_UNDEFINED; in read_unwind_hints()
1132 cfa->base = CFI_SP; in read_unwind_hints()
1135 cfa->base = CFI_BP; in read_unwind_hints()
1138 cfa->base = CFI_SP_INDIRECT; in read_unwind_hints()
1141 cfa->base = CFI_R10; in read_unwind_hints()
1144 cfa->base = CFI_R13; in read_unwind_hints()
1147 cfa->base = CFI_DI; in read_unwind_hints()
1150 cfa->base = CFI_DX; in read_unwind_hints()
1158 cfa->offset = hint->sp_offset; in read_unwind_hints()
1260 if (state->cfa.base != initial_func_cfi.cfa.base || in has_modified_stack_frame()
1261 state->cfa.offset != initial_func_cfi.cfa.offset || in has_modified_stack_frame()
1262 state->stack_size != initial_func_cfi.cfa.offset || in has_modified_stack_frame()
1276 if (state->cfa.base == CFI_BP && state->regs[CFI_BP].base == CFI_CFA && in has_valid_stack_frame()
1288 struct cfi_reg *cfa = &state->cfa; in update_insn_state_regs() local
1291 if (cfa->base != CFI_SP) in update_insn_state_regs()
1296 cfa->offset += 8; in update_insn_state_regs()
1300 cfa->offset -= 8; in update_insn_state_regs()
1305 cfa->offset -= op->src.offset; in update_insn_state_regs()
1382 struct cfi_reg *cfa = &state->cfa; in update_insn_state() local
1386 if (cfa->base == CFI_UNDEFINED) { in update_insn_state()
1404 cfa->base == CFI_SP && in update_insn_state()
1406 regs[CFI_BP].offset == -cfa->offset) { in update_insn_state()
1409 cfa->base = op->dest.reg; in update_insn_state()
1422 else if (op->src.reg == CFI_SP && cfa->base == CFI_SP) { in update_insn_state()
1439 cfa->base == CFI_BP) { in update_insn_state()
1449 else if (op->dest.reg == cfa->base) { in update_insn_state()
1452 if (cfa->base == CFI_SP && in update_insn_state()
1463 cfa->offset = -state->vals[op->src.reg].offset; in update_insn_state()
1464 state->stack_size = cfa->offset; in update_insn_state()
1467 cfa->base = CFI_UNDEFINED; in update_insn_state()
1468 cfa->offset = 0; in update_insn_state()
1479 if (cfa->base == CFI_SP) in update_insn_state()
1480 cfa->offset -= op->src.offset; in update_insn_state()
1491 if (op->src.reg == CFI_SP && cfa->base == CFI_SP) { in update_insn_state()
1517 cfa->base = CFI_SP; in update_insn_state()
1518 cfa->offset = state->stack_size = -op->src.offset; in update_insn_state()
1524 if (op->dest.reg == state->cfa.base) { in update_insn_state()
1534 (state->drap_reg != CFI_UNDEFINED && cfa->base != CFI_SP) || in update_insn_state()
1535 (state->drap_reg == CFI_UNDEFINED && cfa->base != CFI_BP)) { in update_insn_state()
1543 cfa->base = state->drap_reg; in update_insn_state()
1544 cfa->offset = state->stack_size = 0; in update_insn_state()
1557 op->dest.reg == cfa->base) { in update_insn_state()
1560 cfa->base = CFI_SP; in update_insn_state()
1563 if (state->drap && cfa->base == CFI_BP_INDIRECT && in update_insn_state()
1569 cfa->base = state->drap_reg; in update_insn_state()
1570 cfa->offset = 0; in update_insn_state()
1580 if (cfa->base == CFI_SP) in update_insn_state()
1581 cfa->offset -= 8; in update_insn_state()
1590 cfa->base = state->drap_reg; in update_insn_state()
1591 cfa->offset = 0; in update_insn_state()
1601 } else if (op->src.reg == cfa->base && in update_insn_state()
1602 op->src.offset == regs[op->dest.reg].offset + cfa->offset) { in update_insn_state()
1621 if (cfa->base == CFI_SP) in update_insn_state()
1622 cfa->offset += 8; in update_insn_state()
1628 if (op->src.reg == cfa->base && op->src.reg == state->drap_reg) { in update_insn_state()
1631 cfa->base = CFI_BP_INDIRECT; in update_insn_state()
1632 cfa->offset = -state->stack_size; in update_insn_state()
1637 } else if (op->src.reg == CFI_BP && cfa->base == state->drap_reg) { in update_insn_state()
1656 cfa->base != CFI_BP) in update_insn_state()
1663 if (op->src.reg == cfa->base && op->src.reg == state->drap_reg) { in update_insn_state()
1666 cfa->base = CFI_BP_INDIRECT; in update_insn_state()
1667 cfa->offset = op->dest.offset; in update_insn_state()
1679 } else if (op->dest.reg == cfa->base) { in update_insn_state()
1684 op->dest.offset - state->cfa.offset); in update_insn_state()
1690 if ((!state->drap && cfa->base != CFI_BP) || in update_insn_state()
1691 (state->drap && cfa->base != state->drap_reg)) { in update_insn_state()
1703 cfa->base = CFI_SP; in update_insn_state()
1704 cfa->offset -= 8; in update_insn_state()
1718 if (cfa->base == CFI_SP) in update_insn_state()
1719 cfa->offset -= 8; in update_insn_state()
1737 if (memcmp(&state1->cfa, &state2->cfa, sizeof(state1->cfa))) { in insn_state_match()
1740 state1->cfa.base, state1->cfa.offset, in insn_state_match()
1741 state2->cfa.base, state2->cfa.offset); in insn_state_match()
1964 if (state.cfa.base == CFI_UNDEFINED) in validate_branch()
2103 state.cfa = initial_func_cfi.cfa; in validate_functions()
2106 state.stack_size = initial_func_cfi.cfa.offset; in validate_functions()