Browse Source

+ support pushing word-sized parameters in tcgz80.a_load_ref_cgpara

git-svn-id: branches/z80@44695 -
nickysn 5 years ago
parent
commit
00f7fad1a6
1 changed files with 12 additions and 0 deletions
  1. 12 0
      compiler/z80/cgcpu.pas

+ 12 - 0
compiler/z80/cgcpu.pas

@@ -417,6 +417,18 @@ unit cgcpu;
                 list.concat(taicpu.op_reg(A_INC,NR_SP));
                 ungetcpuregister(list,NR_A);
               end;
+            2:
+              begin
+                tmpreg:=getintregister(list,OS_16);
+                a_load_ref_reg(list,paraloc^.size,pushsize,href,tmpreg);
+                getcpuregister(list,NR_L);
+                a_load_reg_reg(list,OS_8,OS_8,tmpreg,NR_L);
+                getcpuregister(list,NR_H);
+                a_load_reg_reg(list,OS_8,OS_8,GetNextReg(tmpreg),NR_H);
+                list.concat(taicpu.op_reg(A_PUSH,NR_HL));
+                ungetcpuregister(list,NR_H);
+                ungetcpuregister(list,NR_L);
+              end
             else
               internalerror(2020040803);
           end;