X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fsparc%2Fsparc_emitter.h;h=ac373a86f59b401344ea48084d8a48d0c367f5f9;hb=df2faee01a5832057bb3ca0ba5f67e979c916e19;hp=0e36800e35dd7750ba2c4a368ada0f5bb86ff557;hpb=2158510961e84fb11e9195c200335f2314e49055;p=libfirm diff --git a/ir/be/sparc/sparc_emitter.h b/ir/be/sparc/sparc_emitter.h index 0e36800e3..ac373a86f 100644 --- a/ir/be/sparc/sparc_emitter.h +++ b/ir/be/sparc/sparc_emitter.h @@ -20,33 +20,46 @@ /** * @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 emit ",a" in delay slot annul mode + * %Dx destination register x + * %E entity+offset + * %F floating point mode + * %H high immediate + * %L ir_node* control flow target of the node + * %ML load mode + * %MS store mode + * %R arch_register_t const* register + * %Sx source register x + * %SIx 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);