53f853f1e42b2f7e4513313e11643e170cd8797b
[libfirm] / ir / be / begnuas.h
1 /**
2  * Header for ia32 assembler declarations dumper.
3  * @author Christian Wuerdig, Matthias Braun
4  * $Id$
5  */
6 #ifndef _BE_GEN_DECLS_H_
7 #define _BE_GEN_DECLS_H_
8
9 #include "be.h"
10 #include "beemitter.h"
11
12 /**
13  * Sections.
14  */
15 typedef enum section_t {
16         GAS_SECTION_TEXT   = 0,   /**< text section */
17         GAS_SECTION_DATA   = 1,   /**< data section */
18         GAS_SECTION_RODATA = 2,   /**< rodata section */
19         GAS_SECTION_COMMON = 3,   /**< common section */
20         GAS_SECTION_TLS    = 4,   /**< thread local storage section */
21         GAS_SECTION_CTOR   = 5,   /**< ctor section for instrumentation code init */
22         GAS_SECTION_MAX    = 6
23 } be_gas_section_t;
24
25 typedef enum asm_flavour_t {
26         GAS_FLAVOUR_NORMAL = 0,  /**< normal gas */
27         GAS_FLAVOUR_MINGW  = 1,  /**< MinGW variant */
28         GAS_FLAVOUR_MAX    = 2
29 } be_gas_flavour_t;
30
31 extern be_gas_flavour_t be_gas_flavour;
32
33
34 /**
35  * Generate all entities.
36  */
37 void be_gas_emit_decls(be_emit_env_t *env, const be_main_env_t *main_env);
38
39 void be_gas_emit_switch_section(be_emit_env_t *env, be_gas_section_t section);
40
41 #endif