Prechádzať zdrojové kódy

* adapt max_linear_list on x86-64 as well

git-svn-id: trunk@25060 -
florian 12 rokov pred
rodič
commit
58610af9f0
3 zmenil súbory, kde vykonal 54 pridanie a 3 odobranie
  1. 1 0
      .gitattributes
  2. 2 3
      compiler/x86_64/cpunode.pas
  3. 51 0
      compiler/x86_64/nx64set.pas

+ 1 - 0
.gitattributes

@@ -798,6 +798,7 @@ compiler/x86_64/nx64cnv.pas svneol=native#text/plain
 compiler/x86_64/nx64flw.pas svneol=native#text/plain
 compiler/x86_64/nx64inl.pas svneol=native#text/plain
 compiler/x86_64/nx64mat.pas svneol=native#text/plain
+compiler/x86_64/nx64set.pas svneol=native#text/plain
 compiler/x86_64/r8664ari.inc svneol=native#text/plain
 compiler/x86_64/r8664att.inc svneol=native#text/plain
 compiler/x86_64/r8664con.inc svneol=native#text/plain

+ 2 - 3
compiler/x86_64/cpunode.pas

@@ -43,8 +43,6 @@ unit cpunode;
        ncgset,
        ncgopt,
        ncgobjc,
-       // n386con,n386flw,n386mat,n386mem,
-       // n386set,n386inl,n386opt,
        { the cpu specific node units must be used after the generic ones to
          get the correct class pointer }
        nx86set,
@@ -57,7 +55,8 @@ unit cpunode;
 {$ifndef DISABLE_WIN64_SEH}
        nx64flw,
 {$endif DISABLE_WIN64_SEH}
-       nx64inl
+       nx64inl,
+       nx64set
        ;
 
 end.

+ 51 - 0
compiler/x86_64/nx64set.pas

@@ -0,0 +1,51 @@
+{
+    Copyright (c) 1998-2002 by Florian Klaempfl
+
+    Generate i386 assembler for in set/case nodes
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ ****************************************************************************
+}
+unit nx64set;
+
+{$i fpcdefs.inc}
+
+interface
+
+    uses
+      globtype,
+      node,nset,pass_1,nx86set;
+
+    type
+      tx8664casenode = class(tx86casenode)
+         procedure optimizevalues(var max_linear_list:aint;var max_dist:aword);override;
+      end;
+
+
+implementation
+
+{*****************************************************************************
+                            TI386CASENODE
+*****************************************************************************}
+
+    procedure tx8664casenode.optimizevalues(var max_linear_list:aint;var max_dist:aword);
+      begin
+        inc(max_linear_list,9);
+      end;
+
+begin
+   ccasenode:=tx8664casenode;
+end.