aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
-rw-r--r--linearize.c5
-rw-r--r--linearize.h3
2 files changed, 8 insertions, 0 deletions
diff --git a/linearize.c b/linearize.c
index 61d35a70..29d76cf1 100644
--- a/linearize.c
+++ b/linearize.c
@@ -235,6 +235,8 @@ static const char* opcodes[] = {
/* Sparse tagging (line numbers, context, whatever) */
[OP_CONTEXT] = "context",
[OP_RANGE] = "range-check",
+
+ [OP_COPY] = "copy",
};
static char *show_asm_constraints(char *buf, const char *sep, struct asm_constraint_list *list)
@@ -445,6 +447,9 @@ const char *show_instruction(struct instruction *insn)
case OP_ASM:
buf = show_asm(buf, insn);
break;
+ case OP_COPY:
+ buf += sprintf(buf, "%s <- %s", show_pseudo(insn->target), show_pseudo(insn->src));
+ break;
default:
break;
}
diff --git a/linearize.h b/linearize.h
index 3b761d93..16264494 100644
--- a/linearize.h
+++ b/linearize.h
@@ -198,6 +198,9 @@ enum opcode {
/* Sparse tagging (line numbers, context, whatever) */
OP_CONTEXT,
OP_RANGE,
+
+ /* Needed to translate SSA back to normal form */
+ OP_COPY,
};
struct basic_block_list;