path: root/ir/be/beasm.h
diff options
authorChristoph Mallon <>2018-05-09 19:45:43 +0200
committerChristoph Mallon <>2018-05-09 19:45:43 +0200
commit70a481eeb92b5af6a11bed0e74a849bad3d687fb (patch)
treebaa3b00a9e35200bb809070d98a490704e5e99e1 /ir/be/beasm.h
parent46210b81e457b068ae83f19ee7d4f1a3a05a9a77 (diff)
be: Factor out code to prepare information collection for an asm node.
Diffstat (limited to 'ir/be/beasm.h')
1 files changed, 9 insertions, 1 deletions
diff --git a/ir/be/beasm.h b/ir/be/beasm.h
index 94cbad4..97d5ec4 100644
--- a/ir/be/beasm.h
+++ b/ir/be/beasm.h
@@ -58,7 +58,15 @@ void be_parse_asm_constraints_internal(be_asm_constraint_t *constraint, ident *c
/* Determine number of operands. */
unsigned be_count_asm_operands(ir_node const *node);
-ir_node *be_make_asm(ir_node const *node, ir_node **in, arch_register_req_t const **in_reqs, arch_register_req_t const **out_reqs, void *operands);
+typedef struct be_asm_info_t {
+ ir_node **ins;
+ arch_register_req_t const **in_reqs;
+ arch_register_req_t const **out_reqs;
+} be_asm_info_t;
+be_asm_info_t be_asm_prepare_info(void);
+ir_node *be_make_asm(ir_node const *node, be_asm_info_t const *info, void *operands);
typedef void be_emit_asm_operand_func(ir_node const *asmn, char modifier, unsigned pos);