diff options
Diffstat (limited to 'src/correct.c')
| -rw-r--r-- | src/correct.c | 11 |
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: } |
