aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linearize.c
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-01-18 04:07:42 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-09-27 03:29:34 +0200
commit75bcc7dc0fe1f09ae0340ed928f8f4033bd0ba9e (patch)
tree1d70f6d967e389c44688d9684a3a0d3a7d60b883 /linearize.c
parent2112249916c16b88591739fbc9f36400e9c009cd (diff)
downloadsparse-dev-75bcc7dc0fe1f09ae0340ed928f8f4033bd0ba9e.tar.gz
asm: fix liveness memory operand
Since memory operands are only some kind of reference, the pseudo in an output operand is not defined by the statement, the reference is only used. Fix the liveness processing accordingly. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'linearize.c')
-rw-r--r--linearize.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/linearize.c b/linearize.c
index 68be3ab1..09b1c7ee 100644
--- a/linearize.c
+++ b/linearize.c
@@ -2101,6 +2101,7 @@ static void add_asm_output(struct entrypoint *ep, struct instruction *insn, stru
linearize_store_gen(ep, pseudo, &ad);
}
rule = __alloc_asm_constraint(0);
+ rule->is_memory = op->is_memory;
rule->ident = op->name;
rule->constraint = op->constraint ? op->constraint->string->data : "";
use_pseudo(insn, pseudo, &rule->pseudo);