diff --git a/.gitattributes b/.gitattributes index c2248e5430..1cee7d1542 100644 --- a/.gitattributes +++ b/.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 diff --git a/compiler/x86_64/cpunode.pas b/compiler/x86_64/cpunode.pas index 5244f074a1..f9befac47b 100644 --- a/compiler/x86_64/cpunode.pas +++ b/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. diff --git a/compiler/x86_64/nx64set.pas b/compiler/x86_64/nx64set.pas new file mode 100644 index 0000000000..fcbcb9c647 --- /dev/null +++ b/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.