summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorChristoph Mallon <christoph.mallon@gmx.de>2019-04-05 14:35:01 +0200
committerChristoph Mallon <christoph.mallon@gmx.de>2019-04-05 14:35:01 +0200
commit15f358575deb58dea6bbf8aa66e70cb1b86d20ee (patch)
treeb3ef7416fa6be6ce1f52392596518e57dc3ab362
parentc334f696a67b0cd18948fbce8fbdbb17216de4e4 (diff)
Adapt to atomically setting the pin state when making an ASM node.
m---------libfirm0
-rw-r--r--src/firm/ast2firm.c12
2 files changed, 5 insertions, 7 deletions
diff --git a/libfirm b/libfirm
-Subproject 881e05880db5233ddaa25bd0ea0b6e07891927e
+Subproject 80146aaacf50c17449e07b8aac0000e5267aed5
diff --git a/src/firm/ast2firm.c b/src/firm/ast2firm.c
index 46a3aae..af67d5a 100644
--- a/src/firm/ast2firm.c
+++ b/src/firm/ast2firm.c
@@ -4649,18 +4649,16 @@ static ir_node *asm_statement_to_firm(const asm_statement_t *statement)
size_t const n_ins = ARR_LEN(ins);
size_t const n_constraints = ARR_LEN(constraints);
+ ir_cons_flags flags = cons_none;
+ if (!statement->is_volatile)
+ flags |= cons_floats;
+
/* create asm node */
dbg_info *dbgi = get_dbg_info(&statement->base.pos);
ident *asm_text = new_id_from_str(statement->normalized_text->begin);
ir_node *node = new_d_ASM(dbgi, mem, n_ins, ins, asm_text,
n_constraints, constraints,
- n_clobbers, clobbers);
-
- if (statement->is_volatile) {
- set_irn_pinned(node, op_pin_state_pinned);
- } else {
- set_irn_pinned(node, op_pin_state_floats);
- }
+ n_clobbers, clobbers, flags);
/* create output projs & connect them */
if (needs_memory) {