Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Zwinkau
libfirm
Commits
99585f06
Commit
99585f06
authored
Jul 18, 2012
by
Christoph Mallon
Browse files
Use ia32_emitf() in ia32_spec.pl.
parent
d7b29b59
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
ir/be/ia32/ia32_emitter.c
View file @
99585f06
This diff is collapsed.
Click to expand it.
ir/be/ia32/ia32_emitter.h
View file @
99585f06
...
...
@@ -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
);
...
...
ir/be/ia32/ia32_spec.pl
View file @
99585f06
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment