aboutsummaryrefslogtreecommitdiff
path: root/src/correct.c
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2024-04-15 01:35:19 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2024-04-15 02:01:21 +0300
commit5a728ae106b978c6de0fa6316f37eb3b4a86a405 (patch)
tree20c5e1f08aa4c6c84f22d6b31d0965c36a38ab94 /src/correct.c
parent8ce25e04620d4173748a7d7dd310351bac90eacc (diff)
downloadqbt-5a728ae106b978c6de0fa6316f37eb3b4a86a405.tar.gz
qbt-5a728ae106b978c6de0fa6316f37eb3b4a86a405.zip
format
Diffstat (limited to 'src/correct.c')
-rw-r--r--src/correct.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/correct.c b/src/correct.c
index 5db40dd..8c0b249 100644
--- a/src/correct.c
+++ b/src/correct.c
@@ -68,6 +68,14 @@ static size_t correct_relations(struct blk *b, size_t ii, struct insn i,
return ri;
}
+static size_t correct_store(struct blk *b, size_t ii, struct insn i, size_t ri)
+{
+ if (i.in[1].class == IMM)
+ return spill_imm(b, ii, i, 1, ri);
+
+ return ri;
+}
+
static size_t correct_insn(struct blk *b, size_t ii, struct insn i, size_t ri)
{
/* replace references with instructions */
@@ -109,6 +117,9 @@ static size_t correct_insn(struct blk *b, size_t ii, struct insn i, size_t ri)
case NE:
return correct_relations(b, ii, i, ri);
+ case STORE:
+ return correct_store(b, ii, i, ri);
+
default:
}