rs_cfa,
/* Cross-fragment dwarf2 line number optimization. */
- rs_dwarf2dbg
+ rs_dwarf2dbg,
+
+ /* SFrame FRE type selection optimization. */
+ rs_sframe
};
typedef enum _relax_state relax_stateT;
/* TRUE if .note.GNU-stack section with SEC_CODE should be created */
COMMON int flag_noexecstack;
+/* TRUE if .sframe section should be created. */
+COMMON int flag_gen_sframe;
+
/* name of emitted object file */
COMMON const char *out_file_name;
+/* Keep the output file. */
+COMMON int keep_it;
+
/* name of file defining extensions to the basic instruction set */
COMMON char *insttbl_file_name;
DEBUG_STABS,
DEBUG_ECOFF,
DEBUG_DWARF,
- DEBUG_DWARF2
+ DEBUG_DWARF2,
+ DEBUG_CODEVIEW
};
extern enum debug_info_type debug_type;
#define PRINTF_WHERE_LIKE(FCN) \
void FCN (const char *file, unsigned int line, const char *format, ...) \
__attribute__ ((__format__ (__printf__, 3, 4)))
+#define PRINTF_INDENT_LIKE(FCN) \
+ void FCN (const char *file, unsigned int line, unsigned int indent, \
+ const char *format, ...) \
+ __attribute__ ((__format__ (__printf__, 4, 5)))
#else /* __GNUC__ < 2 || defined(VMS) */
#define PRINTF_WHERE_LIKE(FCN) void FCN (const char *file, \
unsigned int line, \
const char *format, ...)
+#define PRINTF_INDENT_LIKE(FCN) void FCN (const char *file, \
+ unsigned int line, \
+ unsigned int indent, \
+ const char *format, ...)
#endif /* __GNUC__ < 2 || defined(VMS) */
PRINTF_LIKE (as_warn);
PRINTF_WHERE_LIKE (as_bad_where);
PRINTF_WHERE_LIKE (as_warn_where);
+PRINTF_INDENT_LIKE (as_info_where);
void as_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
void signal_init (void);
char * input_scrub_new_file (const char *);
char * input_scrub_next_buffer (char **bufp);
size_t do_scrub_chars (size_t (*get) (char *, size_t), char *, size_t);
+size_t do_scrub_pending (void);
bool scan_for_multibyte_characters (const unsigned char *, const unsigned char *, bool);
int gen_to_words (LITTLENUM_TYPE *, int, long);
int had_err (void);
void cond_exit_macro (int);
int seen_at_least_1_file (void);
void app_pop (char *);
+void as_report_context (void);
const char * as_where (unsigned int *);
+const char * as_where_top (unsigned int *);
const char * as_where_physical (unsigned int *);
void bump_line_counters (void);
void do_scrub_begin (int);
void eh_frame_convert_frag (fragS *);
int generic_force_reloc (struct fix *);
+/* SFrame FRE optimization. */
+int sframe_estimate_size_before_relax (fragS *);
+int sframe_relax_frag (fragS *);
+void sframe_convert_frag (fragS *);
+
#include "expr.h" /* Before targ-*.h */
/* This one starts the chain of target dependent headers. */
#include "write.h"
#include "frags.h"
-#include "hashtab.h"
-#include "hash.h"
#include "read.h"
#include "symbols.h"
+#include "hashtab.h"
+#include "hash.h"
#include "tc.h"
#include "obj.h"