/**
* @file
* @brief declarations for emit functions
- * @version $Id$
+ * @author Hannes Rapp, Matthias Braun
*/
-#ifndef FIRM_BE_TEMPLATE_TEMPLATE_EMITTER_H
-#define FIRM_BE_TEMPLATE_TEMPLATE_EMITTER_H
+#ifndef FIRM_BE_SPARC_EMITTER_H
+#define FIRM_BE_SPARC_EMITTER_H
#include "irargs_t.h"
#include "irnode.h"
#include "debug.h"
-#include "../bearch.h"
-#include "../beemitter.h"
+#include "bearch.h"
+#include "beemitter.h"
#include "bearch_sparc_t.h"
-//int get_TEMPLATE_reg_nr(ir_node *irn, int posi, int in_out);
-//const char *get_TEMPLATE_in_reg_name(ir_node *irn, int pos);
-
-void sparc_emit_immediate(const ir_node *node);
-void sparc_emit_mode(const ir_node *node);
-void sparc_emit_source_register(const ir_node *node, int pos);
-void sparc_emit_reg_or_imm(const ir_node *node, int pos);
-void sparc_emit_dest_register(const ir_node *node, int pos);
-void sparc_emit_offset(const ir_node *node);
-void sparc_emit_load_mode(const ir_node *node);
-void sparc_emit_store_mode(const ir_node *node);
+/**
+ * fmt parameter output
+ * ---- ---------------------- -------------------------------
+ * %% %
+ * %A <node> emit ",a" in delay slot annul mode
+ * %Dx <node> destination register x
+ * %E <node> entity+offset
+ * %F <node> floating point mode
+ * %H <node> high immediate
+ * %L ir_node* control flow target of the node
+ * %ML <node> load mode
+ * %MS <node> store mode
+ * %R arch_register_t const* register
+ * %Sx <node> source register x
+ * %SIx <node> immediate or source register x
+ * %d signed int signed int
+ * %s const char* string
+ * %u unsigned int unsigned int
+ *
+ * x starts at 0
+ * %#M prints load modeu
+ * + may be used with %d and %u
+ */
+void sparc_emitf(ir_node const *node, char const *fmt, ...);
-void sparc_gen_routine(const sparc_code_gen_t *cg, ir_graph *irg);
+void sparc_emit_routine(ir_graph *irg);
void sparc_init_emitter(void);