X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbeemitter.c;h=31229b7510ef81c0a246acebec6ad675dae66de4;hb=8c2710b8f28f31447e12055651725a7cf53714bc;hp=efa3a8074648cfd8398ecafd622c122a4bfac340;hpb=090d4284ee9dc5e2a319ef3dcab7ac700afd841e;p=libfirm diff --git a/ir/be/beemitter.c b/ir/be/beemitter.c index efa3a8074..31229b751 100644 --- a/ir/be/beemitter.c +++ b/ir/be/beemitter.c @@ -1,20 +1,6 @@ /* - * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved. - * * This file is part of libFirm. - * - * This file may be distributed and/or modified under the terms of the - * GNU General Public License version 2 as published by the Free Software - * Foundation and appearing in the file LICENSE.GPL included in the - * packaging of this file. - * - * Licensees holding valid libFirm Professional Edition licenses may use - * this file in accordance with the libFirm Commercial License. - * Agreement provided with the Software. - * - * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE - * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE. + * Copyright (C) 2012 University of Karlsruhe. */ /** @@ -25,7 +11,10 @@ */ #include "config.h" +#include "bedwarf.h" #include "beemitter.h" +#include "be_t.h" +#include "error.h" #include "irnode_t.h" #include "irprintf.h" #include "ident.h" @@ -46,14 +35,6 @@ void be_emit_exit(void) obstack_free(&emit_obst, NULL); } -void be_emit_ident(ident *id) -{ - size_t len = get_id_strlen(id); - const char *str = get_id_str(id); - - be_emit_string_len(str, len); -} - void be_emit_irvprintf(const char *fmt, va_list args) { ir_obst_vprintf(&emit_obst, fmt, args); @@ -88,10 +69,10 @@ void be_emit_pad_comment(void) void be_emit_finish_line_gas(const ir_node *node) { - dbg_info *dbg; - src_loc_t loc; + dbg_info *dbg; + src_loc_t loc; - if (node == NULL) { + if (node == NULL || !be_options.verbose_asm) { be_emit_char('\n'); be_emit_write_line(); return; @@ -115,3 +96,17 @@ void be_emit_finish_line_gas(const ir_node *node) be_emit_cstring(" */\n"); be_emit_write_line(); } + +void be_emit_nothing(ir_node const *const node) +{ + (void)node; +} + +void be_emit_node(ir_node const *const node) +{ + be_dwarf_location(get_irn_dbg_info(node)); + ir_op *const op = get_irn_op(node); + emit_func *const emit = get_generic_function_ptr(emit_func, op); + DEBUG_ONLY(if (!emit) panic("no emit handler for node %+F (%+G, graph %+F)\n", node, node, get_irn_irg(node));) + emit(node); +}