summaryrefslogtreecommitdiffhomepage
path: root/ir/be/beasm.c
diff options
context:
space:
mode:
authorChristoph Mallon <christoph.mallon@gmx.de>2018-05-28 19:59:58 +0200
committerChristoph Mallon <christoph.mallon@gmx.de>2018-05-28 22:24:11 +0200
commita8c35bedf39682678bd058783f3ef37997d7d848 (patch)
tree574ec6e24bb5a9ce80493da4eee10ed0ef1f4d26 /ir/be/beasm.c
parentbc4fbe0f298ce8f01e71db7ab41142a1df7cb285 (diff)
be: Use the correct output position when processing early clobbers.
This was broken when overhauling the constraint representation in the IR. Though it went unnoticed because not test case in the test suite triggers the issue.
Diffstat (limited to 'ir/be/beasm.c')
-rw-r--r--ir/be/beasm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ir/be/beasm.c b/ir/be/beasm.c
index 1489d36..75ba7ea 100644
--- a/ir/be/beasm.c
+++ b/ir/be/beasm.c
@@ -207,7 +207,7 @@ ir_node *be_make_asm(ir_node const *const node, be_asm_info_t const *const info,
for (unsigned o = 0, n = get_ASM_n_constraints(node); o != n; ++o) {
ir_asm_constraint const *const constraint = &constraints[o];
if (strchr(get_id_str(constraint->constraint), '&')) {
- arch_register_req_t const *const oreq = out_reqs[o];
+ arch_register_req_t const *const oreq = out_reqs[constraint->out_pos];
unsigned different = 0;
for (unsigned i = 0; i != orig_n_ins; ++i) {