Home | History | Annotate | Download | only in gas

Lines Matching defs:cfi_insn

961 			     struct cfi_insn_data *cfi_insn)
964 /* Get the scratchpad FRE currently being updated as the cfi_insn's
973 sframe_fre_set_end_addr (cur_fre, cfi_insn->u.ll.lab2);
986 sframe_fre_set_end_addr (last_fre, cfi_insn->u.ll.lab2);
997 sframe_fre_set_begin_addr (cur_fre, cfi_insn->u.ll.lab2);
1007 struct cfi_insn_data *cfi_insn)
1022 if (cfi_insn->u.ri.reg != SFRAME_CFA_SP_REG
1023 && cfi_insn->u.ri.reg != SFRAME_CFA_FP_REG)
1027 cfi_insn->u.ri.reg);
1030 sframe_fre_set_cfa_base_reg (cur_fre, cfi_insn->u.ri.reg);
1031 sframe_fre_set_cfa_offset (cur_fre, cfi_insn->u.ri.offset);
1042 struct cfi_insn_data *cfi_insn)
1052 if (cfi_insn->u.r != SFRAME_CFA_SP_REG
1053 && cfi_insn->u.r != SFRAME_CFA_FP_REG)
1057 cfi_insn->u.r);
1060 sframe_fre_set_cfa_base_reg (cur_fre, cfi_insn->u.r);
1074 struct cfi_insn_data *cfi_insn)
1076 /* The scratchpad FRE currently being updated with each cfi_insn
1088 sframe_fre_set_cfa_offset (cur_fre, cfi_insn->u.i);
1108 struct cfi_insn_data *cfi_insn)
1110 /* The scratchpad FRE currently being updated with each cfi_insn
1119 if (cfi_insn->u.ri.reg == SFRAME_CFA_FP_REG)
1122 sframe_fre_set_bp_track (cur_fre, cfi_insn->u.ri.offset);
1126 && cfi_insn->u.ri.reg == SFRAME_CFA_RA_REG)
1128 sframe_fre_set_ra_track (cur_fre, cfi_insn->u.ri.offset);
1139 When CFI_ESC_P is true, the CFI_INSN is hand-crafted using CFI_escape
1144 const struct cfi_insn_data *cfi_insn,
1151 if (cfi_insn->u.ri.reg == SFRAME_CFA_FP_REG
1152 || (sframe_ra_tracking_p () && cfi_insn->u.ri.reg == SFRAME_CFA_RA_REG)
1154 || (cfi_insn->u.ri.reg == SFRAME_CFA_SP_REG
1156 && cfi_insn->u.ri.offset != 0)
1158 && cfi_insn->u.ri.offset != SFRAME_S390X_SP_VAL_OFFSET))))
1162 sframe_register_name (cfi_insn->u.ri.reg), cfi_insn->u.ri.reg);
1175 struct cfi_insn_data *cfi_insn)
1177 /* The scratchpad FRE currently being updated with each cfi_insn
1189 if (cfi_insn->u.rr.reg1 == SFRAME_CFA_FP_REG)
1191 SFRAME_V2_S390X_OFFSET_ENCODE_REGNUM (cfi_insn->u.rr.reg2));
1193 && cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG)
1195 SFRAME_V2_S390X_OFFSET_ENCODE_REGNUM (cfi_insn->u.rr.reg2));
1205 struct cfi_insn_data *cfi_insn)
1209 return s390_sframe_xlate_do_register (xlate_ctx, cfi_insn);
1215 if (cfi_insn->u.rr.reg1 == SFRAME_CFA_FP_REG
1216 || (sframe_ra_tracking_p () && cfi_insn->u.rr.reg1 == SFRAME_CFA_RA_REG)
1221 sframe_register_name (cfi_insn->u.rr.reg1), cfi_insn->u.rr.reg1);
1260 /* The scratchpad FRE currently being updated with each cfi_insn
1281 struct cfi_insn_data *cfi_insn)
1284 /* The scratchpad FRE currently being updated with each cfi_insn
1301 if (cfi_insn->u.r == SFRAME_CFA_FP_REG)
1309 && cfi_insn->u.r == SFRAME_CFA_RA_REG)
1324 struct cfi_insn_data *cfi_insn ATTRIBUTE_UNUSED)
1341 struct cfi_insn_data *cfi_insn ATTRIBUTE_UNUSED)
1361 struct cfi_insn_data *cfi_insn)
1368 return sframe_xlate_do_aarch64_negate_ra_state (xlate_ctx, cfi_insn);
1386 const struct cfi_insn_data *cfi_insn,
1389 const struct cfi_escape_data *e = cfi_insn->u.esc;
1454 const struct cfi_insn_data *cfi_insn,
1457 const struct cfi_escape_data *e = cfi_insn->u.esc;
1533 const struct cfi_insn_data *cfi_insn)
1540 e = cfi_insn->u.esc;
1569 err = sframe_xlate_do_escape_expr (xlate_ctx, cfi_insn, &warn_p);
1573 err = sframe_xlate_do_escape_val_offset (xlate_ctx, cfi_insn, &warn_p);
1608 const struct cfi_insn_data *cfi_insn)
1610 if (cfi_insn->u.r == SFRAME_CFA_FP_REG
1611 || cfi_insn->u.r == SFRAME_CFA_RA_REG
1612 || cfi_insn->u.r == SFRAME_CFA_SP_REG)
1615 sframe_register_name (cfi_insn->u.r), cfi_insn->u.r);
1659 const struct cfi_insn_data *cfi_insn)
1663 if (sframe_ra_tracking_p () && cfi_insn->u.r == SFRAME_CFA_RA_REG)
1669 else if (cfi_insn->u.r == SFRAME_CFA_FP_REG)
1720 /* Process CFI_INSN and update the translation context with the FRE
1723 Returns an error code (sframe_xlate_err) if CFI_INSN is not successfully
1728 struct cfi_insn_data *cfi_insn)
1732 /* Atleast one cfi_insn per FDE is expected. */
1733 gas_assert (cfi_insn);
1734 int op = cfi_insn->insn;
1739 err = sframe_xlate_do_advance_loc (xlate_ctx, cfi_insn);
1742 err = sframe_xlate_do_def_cfa (xlate_ctx, cfi_insn);
1745 err = sframe_xlate_do_def_cfa_register (xlate_ctx, cfi_insn);
1748 err = sframe_xlate_do_def_cfa_offset (xlate_ctx, cfi_insn);
1751 err = sframe_xlate_do_offset (xlate_ctx, cfi_insn);
1754 err = sframe_xlate_do_val_offset (xlate_ctx, cfi_insn, false);
1763 err = sframe_xlate_do_restore (xlate_ctx, cfi_insn);
1768 err = sframe_xlate_do_gnu_window_save (xlate_ctx, cfi_insn);
1771 err = sframe_xlate_do_aarch64_negate_ra_state_with_pc (xlate_ctx, cfi_insn);
1774 err = sframe_xlate_do_register (xlate_ctx, cfi_insn);
1777 err = sframe_xlate_do_cfi_escape (xlate_ctx, cfi_insn);
1780 err = sframe_xlate_do_cfi_undefined (xlate_ctx, cfi_insn);
1783 err = sframe_xlate_do_same_value (xlate_ctx, cfi_insn);
1808 struct cfi_insn_data *cfi_insn;
1822 for (cfi_insn = dw_fde->data; cfi_insn; cfi_insn = cfi_insn->next)
1825 err = sframe_do_cfi_insn (xlate_ctx, cfi_insn);