From f4be2429f38faba0c54862055f808cb242a7eb49 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Wed, 3 Apr 2024 18:36:21 +0300 Subject: make regalloc work with ssa form + Still not ideal register allocator, but can be improved with some heuristics and potentially completely replaced in the future if so desired with graph coloring or something. --- src/abi.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'src/abi.c') diff --git a/src/abi.c b/src/abi.c index cb92190..80f34e4 100644 --- a/src/abi.c +++ b/src/abi.c @@ -19,7 +19,7 @@ static struct insn rewrite_param(struct insn n) assert(n.in[1].class == IMM); int64_t nth_param = n.in[1].v; assert(nth_param >= 0 && nth_param < 25 - && "stack argument passing not yet supported"); + && "stack argument passing not yet supported"); return insn_create(MOVE, I27, n.out, nth_ar(nth_param), noclass()); } @@ -41,9 +41,11 @@ static struct insn rewrite_arg(struct insn n) assert(nth_arg >= 0 && nth_arg < 25); if (n.in[0].class == TMP || n.in[0].class == REG) - return insn_create(MOVE, I27, nth_ar(nth_arg), n.in[0], noclass()); + return insn_create(MOVE, I27, nth_ar(nth_arg), n.in[0], + noclass()); else if (n.in[0].class == IMM || n.in[0].class == REF) - return insn_create(COPY, I27, nth_ar(nth_arg), n.in[0], noclass()); + return insn_create(COPY, I27, nth_ar(nth_arg), n.in[0], + noclass()); assert("illegal arg type"); abort(); @@ -57,9 +59,11 @@ static struct insn rewrite_retarg(struct insn n) assert(nth_arg >= 0 && nth_arg < 25); if (n.in[0].class == TMP || n.in[0].class == REG) - return insn_create(MOVE, I27, nth_ar(nth_arg), n.in[0], noclass()); + return insn_create(MOVE, I27, nth_ar(nth_arg), n.in[0], + noclass()); else if (n.in[0].class == IMM || n.in[0].class == REF) - return insn_create(COPY, I27, nth_ar(nth_arg), n.in[0], noclass()); + return insn_create(COPY, I27, nth_ar(nth_arg), n.in[0], + noclass()); assert("illegal retval type"); abort(); -- cgit v1.3