X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=ir%2Fbe%2Fbegnuas.h;h=8536679ed3090270fc66e90d1d5ca4d0e9ec9fd0;hb=fef8dc3eff6468d7d65485af8e1ac9884c504e1a;hp=12e2aa7695e8ecd7a9916e2aa63f20ae206248b1;hpb=f8cc15664f571aa7ef89d6f6bc8d5bd2b8ca7d53;p=libfirm diff --git a/ir/be/begnuas.h b/ir/be/begnuas.h index 12e2aa769..8536679ed 100644 --- a/ir/be/begnuas.h +++ b/ir/be/begnuas.h @@ -29,6 +29,7 @@ #include #include "be_types.h" #include "beemitter.h" +#include "bedwarf.h" typedef enum { GAS_SECTION_TEXT, /**< text section - program code */ @@ -44,7 +45,8 @@ typedef enum { GAS_SECTION_DEBUG_ABBREV, /**< dwarf debug abbrev */ GAS_SECTION_DEBUG_LINE, /**< dwarf debug line */ GAS_SECTION_DEBUG_PUBNAMES, /**< dwarf pub names */ - GAS_SECTION_LAST = GAS_SECTION_DEBUG_PUBNAMES, + GAS_SECTION_DEBUG_FRAME, /**< dwarf callframe infos */ + GAS_SECTION_LAST = GAS_SECTION_DEBUG_FRAME, GAS_SECTION_TYPE_MASK = 0xFF, GAS_SECTION_FLAG_TLS = 1 << 8, /**< thread local flag */ @@ -86,7 +88,8 @@ void be_gas_emit_switch_section(be_gas_section_t section); * emit assembler instructions necessary before starting function code */ void be_gas_emit_function_prolog(const ir_entity *entity, - unsigned po2alignment); + unsigned po2alignment, + const parameter_dbg_info_t *paramter_infos); void be_gas_emit_function_epilog(const ir_entity *entity); @@ -104,6 +107,17 @@ void be_gas_emit_entity(const ir_entity *entity); */ void be_gas_emit_block_name(const ir_node *block); +/** + * Starts a basic block. Emits an assembler label "blockname:" if needs_label + * is true, otherwise a comment with the blockname if verboseasm is enabled. + */ +void be_gas_begin_block(const ir_node *block, bool needs_label); + +/** + * emit a string (takes care of escaping special chars) + */ +void be_gas_emit_cstring(const char *string); + /** * Starts emitting a compilation unit. This emits: * - global assembler snippets