Commit 99585f06 authored by Christoph Mallon's avatar Christoph Mallon
Browse files

Use ia32_emitf() in ia32_spec.pl.

parent d7b29b59
This diff is collapsed.
......@@ -31,25 +31,39 @@
#include "bearch_ia32_t.h"
void ia32_emit_source_register(const ir_node *node, int pos);
void ia32_emit_dest_register(const ir_node *node, int pos);
void ia32_emit_dest_register_size(const ir_node *node, int pos);
void ia32_emit_8bit_dest_register(const ir_node *node, int pos);
void ia32_emit_x87_register(const ir_node *node, int pos);
void ia32_emit_source_register_or_immediate(const ir_node *node, int pos);
void ia32_emit_8bit_source_register_or_immediate(const ir_node *node, int pos);
void ia32_emit_8bit_high_source_register(const ir_node *node, int pos);
void ia32_emit_16bit_source_register_or_immediate(const ir_node *node, int pos);
void ia32_emit_mode_suffix(const ir_node *node);
void ia32_emit_x87_mode_suffix(const ir_node *node);
void ia32_emit_xmm_mode_suffix(const ir_node *node);
void ia32_emit_xmm_mode_suffix_s(const ir_node *node);
void ia32_emit_extend_suffix(const ir_node *node);
void ia32_emit_cmp_suffix_node(const ir_node *node, int flags_pos);
void ia32_emit_binop(const ir_node *node);
void ia32_emit_unop(const ir_node *node, int pos);
void ia32_emit_am(const ir_node *node);
void ia32_emit_x87_binop(const ir_node *node);
/**
* fmt parameter output
* ---- ---------------------- ---------------------------------------------
* %% %
* %AF <node> address mode or x87 register
* %AM <node> address mode of the node
* %AR arch_register_t const* address mode of the node or register
* %ASx <node> address mode of the node or source register x
* %B <node> operands for binary operation
* %Dx <node> destination register x
* %Fx <node> x87 register x
* %FM <node> x87 mode suffix
* %FX <node> SSE mode suffix
* %I <node> immediate of the node
* %L <node> control flow target of the node
* %M <node> mode suffix of the node
* %Px <node> condition code
* %PX int condition code
* %R arch_register_t const* register
* %Sx <node> source register x
* %s char const* string
* %u unsigned int unsigned int
* %d signed int signed int
*
* x starts at 0
* # modifier for %ASx, %D, %R, and %S uses ls mode of node to alter register width
* # modifier for %M for extend suffix
* * modifier does not prefix immediates with $, but AM with *
* l modifier for %lu and %ld
* > modifier to output high 8bit register (ah, bh)
* < modifier to output low 8bit register (al, bl)
*/
void ia32_emitf(ir_node const *node, char const *fmt, ...);
void ia32_gen_routine(ir_graph *irg);
void ia32_gen_binary_routine(ir_graph *irg);
......
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment