diff options
Diffstat (limited to 'riscv/trunk/compiler/riscv32/cpupi.pas')
-rw-r--r-- | riscv/trunk/compiler/riscv32/cpupi.pas | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/riscv/trunk/compiler/riscv32/cpupi.pas b/riscv/trunk/compiler/riscv32/cpupi.pas index 3931b11057..138d9ab915 100644 --- a/riscv/trunk/compiler/riscv32/cpupi.pas +++ b/riscv/trunk/compiler/riscv32/cpupi.pas @@ -44,7 +44,8 @@ unit cpupi; needs_frame_pointer: boolean; // procedure handle_body_start;override; - // procedure after_pass1;override; + // procedure after_pass1;override; + constructor create(aparent: tprocinfo); override; procedure set_first_temp_offset;override; function calc_stackframe_size:longint;override; end; @@ -60,7 +61,14 @@ unit cpupi; cgutils, cgobj, defutil, - aasmcpu; + aasmcpu; + + + constructor trv32procinfo.create(aparent: tprocinfo); + begin + inherited create(aparent); + maxpushedparasize := 0; + end; procedure trv32procinfo.set_first_temp_offset; @@ -72,10 +80,9 @@ unit cpupi; tg.setfirsttemp(maxpushedparasize); exit; end; + if tg.direction = -1 then - begin - tg.setfirsttemp(-(1+12)*4); - end + tg.setfirsttemp(-(1+12)*4) else tg.setfirsttemp(maxpushedparasize); end; |