/*
- * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
#include "execfreq.h"
#include "error.h"
#include "raw_bitset.h"
+#include "dbginfo.h"
#include "../besched_t.h"
#include "../benode_t.h"
be_emit_cstring(";\t.scl\t2;\t.type\t32;\t.endef\n");
be_emit_write_line();
break;
+ case GAS_FLAVOUR_YASM:
+ break;
default:
break;
}
be_emit_char('\n');
be_emit_write_line();
break;
+ case GAS_FLAVOUR_MINGW:
+ case GAS_FLAVOUR_YASM:
+ break;
default:
break;
}
}
}
+static void ia32_emit_entity(ir_entity *entity)
+{
+ ident *id;
+
+ set_entity_backend_marked(entity, 1);
+ id = get_entity_ld_ident(entity);
+ be_emit_ident(id);
+
+ if(get_entity_owner(entity) == get_tls_type()) {
+ if (get_entity_visibility(entity) == visibility_external_allocated) {
+ be_emit_cstring("@INDNTPOFF");
+ } else {
+ be_emit_cstring("@NTPOFF");
+ }
+ }
+}
+
/**
* Emits address mode.
*/
/* emit offset */
if (ent != NULL) {
- ident *id;
-
- set_entity_backend_marked(ent, 1);
- id = get_entity_ld_ident(ent);
if (is_ia32_am_sc_sign(node))
be_emit_char('-');
- be_emit_ident(id);
-
- if(get_entity_owner(ent) == get_tls_type()) {
- if (get_entity_visibility(ent) == visibility_external_allocated) {
- be_emit_cstring("@INDNTPOFF");
- } else {
- be_emit_cstring("@NTPOFF");
- }
- }
+ ia32_emit_entity(ent);
}
if(offs != 0) {
be_emit_char('$');
if(attr->symconst != NULL) {
- ident *id = get_entity_ld_ident(attr->symconst);
-
if(attr->sc_sign)
be_emit_char('-');
- be_emit_ident(id);
+ ia32_emit_entity(attr->symconst);
}
if(attr->symconst == NULL || attr->offset != 0) {
if(attr->symconst != NULL) {
be_emit_cstring("\tcall ");
if (ent) {
- set_entity_backend_marked(ent, 1);
- be_emit_string(get_entity_ld_name(ent));
+ ia32_emit_entity(ent);
} else {
const arch_register_t *reg = get_in_reg(node, be_pos_Call_ptr);
be_emit_char('*');
{
dbg_info *db = get_irn_dbg_info(node);
unsigned lineno;
- const char *fname = be_retrieve_dbg_info(db, &lineno);
+ const char *fname = ir_retrieve_dbg_info(db, &lineno);
if (! cg->birg->main_env->options->stabs_debug_support)
return;