From b3dbf659abfb2bbeb81c6ae83f75beebba45730f Mon Sep 17 00:00:00 2001 From: t <970370568@qq.com> Date: Thu, 11 Jan 2024 23:40:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A5=BD=E4=BA=861.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- phase4/splc.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/phase4/splc.py b/phase4/splc.py index e609d81..8880a63 100644 --- a/phase4/splc.py +++ b/phase4/splc.py @@ -61,9 +61,12 @@ def collect_params(ir_path) -> None: # the register allocation algorithm # 分配+查询reg def reg(var: str) -> str: - if var == '0': - return '$0' - else: + try: + if var == '0': + return '$0' + int(var) + return var + except: reg = find_reg(var) if reg: return reg @@ -79,6 +82,7 @@ def reg(var: str) -> str: return f'{stack.index(var) + max_var_num << 2}($sp)' + def find_reg(var: str): if var in register_table: return f'${register_table.index(var) + save_reg}'