diff options
author | Christoph Mallon <christoph.mallon@gmx.de> | 2018-05-28 08:57:17 +0200 |
---|---|---|
committer | Christoph Mallon <christoph.mallon@gmx.de> | 2018-05-28 22:26:27 +0200 |
commit | e5c27eb35709eba7cf7032005e12042cf0d1e3bf (patch) | |
tree | b108e0d0653f51b01f37eff237fdca0f3982d661 | |
parent | 3ab887efc100a599279cee6f34dc78353440bdf4 (diff) |
Adapt to change the memory is the first output of ASM.
m--------- | libfirm | 0 | ||||
-rw-r--r-- | src/firm/ast2firm.c | 6 |
2 files changed, 3 insertions, 3 deletions
diff --git a/libfirm b/libfirm -Subproject 9a825064696eebf733ccfc8d72f22c1aef3ec1f +Subproject 73961e8ead2d3c4af78bbe504479bcd7a750898 diff --git a/src/firm/ast2firm.c b/src/firm/ast2firm.c index d927cbc..591b6b8 100644 --- a/src/firm/ast2firm.c +++ b/src/firm/ast2firm.c @@ -4590,7 +4590,7 @@ static ir_node *asm_statement_to_firm(const asm_statement_t *statement) ARR_APP1(ir_node*, ins, value); } - constraint.out_pos = ARR_LEN(outs); + constraint.out_pos = pn_ASM_first_out + ARR_LEN(outs); constraint.mode = get_ir_mode_storage(expr->base.type); ARR_APP1(out_info, outs, ((out_info){ expr, addr })); @@ -4658,14 +4658,14 @@ static ir_node *asm_statement_to_firm(const asm_statement_t *statement) /* create output projs & connect them */ if (needs_memory) { - ir_node *projm = new_Proj(node, mode_M, n_constraints); + ir_node *const projm = new_Proj(node, mode_M, pn_ASM_M); set_store(projm); } for (size_t i = 0, n_outs = ARR_LEN(outs); i < n_outs; ++i) { expression_t const *const out_expr = outs[i].expr; ir_mode *const mode = get_ir_mode_storage(out_expr->base.type); - ir_node *const proj = new_Proj(node, mode, i); + ir_node *const proj = new_Proj(node, mode, pn_ASM_first_out + i); ir_node *const addr = outs[i].addr; set_value_for_expression_addr(out_expr, proj, addr); } |