Переглянути джерело

+ implemented record copy in tcgz80.a_load_ref_cgpara

git-svn-id: branches/z80@45035 -
nickysn 5 роки тому
батько
коміт
4a0ad586d0
1 змінених файлів з 7 додано та 7 видалено
  1. 7 7
      compiler/z80/cgcpu.pas

+ 7 - 7
compiler/z80/cgcpu.pas

@@ -578,9 +578,10 @@ unit cgcpu;
         end;
 
       var
-        tmpref, ref: treference;
+        tmpref, ref, href: treference;
         location: pcgparalocation;
         sizeleft: tcgint;
+        len: tcgint;
       begin
         { cgpara.size=OS_NO requires a copy on the stack }
         if use_push(cgpara) then
@@ -588,12 +589,11 @@ unit cgcpu;
             { Record copy? }
             if (cgpara.size in [OS_NO,OS_F64]) or (size=OS_NO) then
               begin
-                internalerror(2020040802);
-                //cgpara.check_simple_location;
-                //len:=align(cgpara.intsize,cgpara.alignment);
-                //g_stackpointer_alloc(list,len);
-                //reference_reset_base(href,NR_STACK_POINTER_REG,0,ctempposinvalid,4,[]);
-                //g_concatcopy(list,r,href,len);
+                cgpara.check_simple_location;
+                len:=align(cgpara.intsize,cgpara.alignment);
+                g_stackpointer_alloc(list,len);
+                reference_reset_base(href,NR_STACK_POINTER_REG,0,ctempposinvalid,4,[]);
+                g_concatcopy(list,r,href,len);
               end
             else
               begin