interface changed: outfile is transmitted to the isa, not to the code generators
[libfirm] / ir / be / arm / arm_emitter.h
index 787a7d4..8c0b414 100644 (file)
@@ -1,5 +1,5 @@
-#ifndef _arm_EMITTER_H_
-#define _arm_EMITTER_H_
+#ifndef _ARM_EMITTER_H_
+#define _ARM_EMITTER_H_
 
 #include "irargs_t.h"  // this also inlucdes <libcore/lc_print.h>
 #include "irnode.h"
 #include "bearch_arm_t.h"
 
 typedef struct _arm_emit_env_t {
-       firm_dbg_module_t         *mod;
        FILE                      *out;
        const arch_env_t          *arch_env;
-       const arm_code_gen_t *cg;
+       const arm_code_gen_t      *cg;
+       DEBUG_ONLY(firm_dbg_module_t *mod;)
 } arm_emit_env_t;
 
 const lc_arg_env_t *arm_get_arg_env(void);
@@ -25,4 +25,17 @@ const char *get_arm_in_reg_name(ir_node *irn, int pos);
 
 void arm_gen_routine(FILE *F, ir_graph *irg, const arm_code_gen_t *cg);
 
-#endif /* _arm_EMITTER_H_ */
+typedef enum sections {
+       NO_SECTION,                     /**< no section selected yet. */
+       SECTION_TEXT,           /**< text section */
+       SECTION_DATA,           /**< data section */
+       SECTION_RODATA, /**< rodata section */
+       SECTION_COMMON, /**< common section */
+} sections;
+
+/**
+ * Switch to a new section
+ */
+void arm_switch_section(FILE *f, sections sec);
+
+#endif /* _ARM_EMITTER_H_ */