[SFrame-V3] gas: sframe: output new FDE type SFRAME_FDE_TYPE_FLEX

This patch updates the routines for emission of the new FDE type
SFRAME_FDE_TYPE_FLEX in the SFrame output section.  The support for
generating these flex FDEs themselves is added in a subsequent commit.

Update struct sframe_row_entry to track additional state for CFA,
FP, and RA.  Modify output_sframe_row_entry_offsets () to emit
metadata/offset pairs for flexible FDEs or padding where applicable,
ensuring the usual ordering (CFA, RA, FP).  The padding data, a.k.a.
SFRAME_FRE_RA_OFFSET_INVALID is emitted in flexible FDEs when RA is
untracked but FP offsets follow.  Trailing padding offsets should not
occur.  Add a new function get_udata_size_in_bytes () to account for
sizing of unsigned register metadata.

gas/
	* gen-sframe.c (get_udata_size_in_bytes): Get size of unsigned
	int data in bytes.
	(get_fre_num_offsets): Handle SFRAME_FDE_TYPE_FLEX.
	(sframe_get_fre_offset_size): Account for register metadata
	in flexible FDEs.
	(output_sframe_row_entry_offsets): Add logic for flexible
	FDE offset pairs.
	(output_sframe_row_entry): Reset base register for flex FDEs.
	(output_sframe_funcdesc): Emit FDE type in func_info2.
	(sframe_xlate_ctx_init): Initialize flex_p.
	(sframe_xlate_ctx_finalize): Finalize flex_p status.
	(sframe_row_entry_initialize): Copy new deref tracking bits.
	(sframe_xlate_do_offset): Set deref bits during translation.
	* gen-sframe.h (struct sframe_row_entry): Add cfa_deref_p,
	fp_deref_p, and ra_deref_p.
	(struct sframe_func_entry): Add fde_flex_p.
	(struct sframe_xlate_ctx): Add flex_p.
2 files changed