Bläddra i källkod

* avr stackframe generation improved

git-svn-id: branches/avr@17048 -
florian 14 år sedan
förälder
incheckning
e95bf26148
2 ändrade filer med 3 tillägg och 15 borttagningar
  1. 2 14
      compiler/avr/cpupi.pas
  2. 1 1
      compiler/tgobj.pas

+ 2 - 14
compiler/avr/cpupi.pas

@@ -33,7 +33,6 @@ unit cpupi;
 
 
     type
     type
        tavrprocinfo = class(tcgprocinfo)
        tavrprocinfo = class(tcgprocinfo)
-          floatregstart : aint;
           // procedure handle_body_start;override;
           // procedure handle_body_start;override;
           // procedure after_pass1;override;
           // procedure after_pass1;override;
           procedure set_first_temp_offset;override;
           procedure set_first_temp_offset;override;
@@ -54,26 +53,14 @@ unit cpupi;
 
 
     procedure tavrprocinfo.set_first_temp_offset;
     procedure tavrprocinfo.set_first_temp_offset;
       begin
       begin
-        { We allocate enough space to save all registers because we can't determine
-          the necessary space because the used registers aren't known before
-          secondpass is run. Even worse, patching
-          the local offsets after generating the code could cause trouble because
-          "shifter" constants could change to non-"shifter" constants. This
-          is especially a problem when taking the address of a local. For now,
-          this extra memory should hurt less than generating all local contants with offsets
-          >256 as non shifter constants }
         if tg.direction = -1 then
         if tg.direction = -1 then
-          tg.setfirsttemp(-12-28)
+          tg.setfirsttemp(0)
         else
         else
           tg.setfirsttemp(maxpushedparasize);
           tg.setfirsttemp(maxpushedparasize);
       end;
       end;
 
 
 
 
     function tavrprocinfo.calc_stackframe_size:longint;
     function tavrprocinfo.calc_stackframe_size:longint;
-      var
-         firstfloatreg,lastfloatreg,
-         r : byte;
-         floatsavesize : aword;
       begin
       begin
         maxpushedparasize:=align(maxpushedparasize,max(current_settings.alignment.localalignmin,4));
         maxpushedparasize:=align(maxpushedparasize,max(current_settings.alignment.localalignmin,4));
       end;
       end;
@@ -82,3 +69,4 @@ unit cpupi;
 begin
 begin
    cprocinfo:=tavrprocinfo;
    cprocinfo:=tavrprocinfo;
 end.
 end.
+

+ 1 - 1
compiler/tgobj.pas

@@ -161,7 +161,7 @@ implementation
        tempfreelist:=nil;
        tempfreelist:=nil;
        templist:=nil;
        templist:=nil;
        { we could create a new child class for this but I don't if it is worth the effort (FK) }
        { we could create a new child class for this but I don't if it is worth the effort (FK) }
-{$if defined(powerpc) or defined(powerpc64)}
+{$if defined(powerpc) or defined(powerpc64) or defined(avr)}
        direction:=1;
        direction:=1;
 {$else}
 {$else}
        direction:=-1;
        direction:=-1;