Browse Source

* types.pas renamed to defbase.pas because D6 contains a types
unit so this would conflicts if D6 programms are compiled
+ Willamette/SSE2 instructions to assembler added

florian 23 years ago
parent
commit
59abf2555b
60 changed files with 2077 additions and 145 deletions
  1. 7 2
      compiler/cg64f32.pas
  2. 7 2
      compiler/cgbase.pas
  3. 7 2
      compiler/cgobj.pas
  4. 7 2
      compiler/defbase.pas
  5. 7 2
      compiler/htypechk.pas
  6. 18 5
      compiler/i386/aasmcpu.pas
  7. 7 2
      compiler/i386/cgcpu.pas
  8. 82 1
      compiler/i386/i386att.inc
  9. 81 0
      compiler/i386/i386atts.inc
  10. 554 1
      compiler/i386/i386ins.dat
  11. 82 1
      compiler/i386/i386int.inc
  12. 1 1
      compiler/i386/i386nop.inc
  13. 82 1
      compiler/i386/i386op.inc
  14. 81 0
      compiler/i386/i386prop.inc
  15. 711 4
      compiler/i386/i386tab.inc
  16. 7 2
      compiler/i386/n386add.pas
  17. 7 2
      compiler/i386/n386cal.pas
  18. 7 2
      compiler/i386/n386cnv.pas
  19. 7 2
      compiler/i386/n386inl.pas
  20. 7 2
      compiler/i386/n386mat.pas
  21. 7 2
      compiler/i386/n386mem.pas
  22. 7 2
      compiler/i386/n386opt.pas
  23. 7 2
      compiler/i386/n386set.pas
  24. 7 2
      compiler/i386/ra386dir.pas
  25. 9 4
      compiler/nadd.pas
  26. 10 5
      compiler/nbas.pas
  27. 11 6
      compiler/ncal.pas
  28. 7 2
      compiler/ncgcal.pas
  29. 7 2
      compiler/ncgcnv.pas
  30. 7 2
      compiler/ncgcon.pas
  31. 10 5
      compiler/ncgflw.pas
  32. 7 2
      compiler/ncgld.pas
  33. 7 2
      compiler/ncgset.pas
  34. 7 2
      compiler/ncgutil.pas
  35. 7 2
      compiler/ncnv.pas
  36. 8 3
      compiler/ncon.pas
  37. 11 6
      compiler/nflw.pas
  38. 7 2
      compiler/ninl.pas
  39. 11 6
      compiler/nld.pas
  40. 9 4
      compiler/nmat.pas
  41. 7 2
      compiler/nmem.pas
  42. 7 2
      compiler/nobj.pas
  43. 7 3
      compiler/nopt.pas
  44. 8 3
      compiler/nset.pas
  45. 8 3
      compiler/paramgr.pas
  46. 7 2
      compiler/pdecobj.pas
  47. 7 2
      compiler/pdecsub.pas
  48. 7 2
      compiler/pdecvar.pas
  49. 7 2
      compiler/pexpr.pas
  50. 7 2
      compiler/pinline.pas
  51. 7 2
      compiler/powerpc/nppccnv.pas
  52. 10 5
      compiler/powerpc/nppcmat.pas
  53. 7 2
      compiler/pstatmnt.pas
  54. 7 2
      compiler/psub.pas
  55. 7 2
      compiler/ptconst.pas
  56. 7 2
      compiler/ptype.pas
  57. 7 2
      compiler/rautils.pas
  58. 7 2
      compiler/regvars.pas
  59. 7 2
      compiler/symdef.pas
  60. 7 2
      compiler/symsym.pas

+ 7 - 2
compiler/cg64f32.pas

@@ -83,7 +83,7 @@ unit cg64f32;
        globtype,globals,systems,
        cgbase,
        verbose,
-       symbase,symconst,symdef,types;
+       symbase,symconst,symdef,defbase;
 
 
     function joinreg64(reglo,reghi : tregister) : tregister64;
@@ -620,7 +620,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.20  2002-07-12 10:14:26  jonas
+  Revision 1.21  2002-07-20 11:57:52  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.20  2002/07/12 10:14:26  jonas
     * some big-endian fixes
 
   Revision 1.19  2002/07/11 07:23:17  jonas

+ 7 - 2
compiler/cgbase.pas

@@ -172,7 +172,7 @@ implementation
      uses
         systems,
         cresstr,
-        types
+        defbase
 {$ifdef fixLeaksOnError}
         ,comphook
 {$endif fixLeaksOnError}
@@ -525,7 +525,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.18  2002-07-01 18:46:22  peter
+  Revision 1.19  2002-07-20 11:57:53  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.18  2002/07/01 18:46:22  peter
     * internal linker
     * reorganized aasm layer
 

+ 7 - 2
compiler/cgobj.pas

@@ -386,7 +386,7 @@ unit cgobj;
 
     uses
        globals,globtype,options,systems,cgbase,
-       verbose,types,tgobj,symdef,paramgr,
+       verbose,defbase,tgobj,symdef,paramgr,
        rgobj;
 
     const
@@ -1368,7 +1368,12 @@ finalization
 end.
 {
   $Log$
-  Revision 1.36  2002-07-11 14:41:27  florian
+  Revision 1.37  2002-07-20 11:57:53  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.36  2002/07/11 14:41:27  florian
     * start of the new generic parameter handling
 
   Revision 1.35  2002/07/07 10:16:29  florian

+ 7 - 2
compiler/types.pas → compiler/defbase.pas

@@ -20,7 +20,7 @@
 
  ****************************************************************************
 }
-unit types;
+unit defbase;
 
 {$i fpcdefs.inc}
 
@@ -1906,7 +1906,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.75  2002-07-11 14:41:32  florian
+  Revision 1.1  2002-07-20 11:57:53  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.75  2002/07/11 14:41:32  florian
     * start of the new generic parameter handling
 
   Revision 1.74  2002/07/01 16:23:54  peter

+ 7 - 2
compiler/htypechk.pas

@@ -126,7 +126,7 @@ implementation
        globtype,systems,
        cutils,verbose,globals,
        symconst,symsym,symtable,
-       types,cpubase,
+       defbase,cpubase,
        ncnv,nld,
        nmem,ncal,nmat,
        cgbase
@@ -938,7 +938,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.45  2002-05-18 13:34:08  peter
+  Revision 1.46  2002-07-20 11:57:53  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.45  2002/05/18 13:34:08  peter
     * readded missing revisions
 
   Revision 1.44  2002/05/16 19:46:37  carl

+ 18 - 5
compiler/i386/aasmcpu.pas

@@ -229,10 +229,16 @@ implementation
        IF_UNDOC  = $00001000;  { it's an undocumented instruction  }
        IF_FPU    = $00002000;  { it's an FPU instruction  }
        IF_MMX    = $00004000;  { it's an MMX instruction  }
-       IF_3DNOW  = $00008000;  { it's a 3DNow! instruction  }
-       IF_SSE    = $00010000;  { it's a SSE (KNI, MMX2) instruction  }
-       IF_PMASK  = longint($FF000000);  { the mask for processor types  }
-       IF_PFMASK = longint($F001FF00);  { the mask for disassembly "prefer"  }
+       { it's a 3DNow! instruction  }
+       IF_3DNOW  = $00008000;
+       { it's a SSE (KNI, MMX2) instruction  }
+       IF_SSE    = $00010000;
+       { SSE2 instructions  }
+       IF_SSE2   = $00020000;
+       { the mask for processor types  }
+       IF_PMASK  = longint($FF000000);
+       { the mask for disassembly "prefer"  }
+       IF_PFMASK = longint($F001FF00);
        IF_8086   = $00000000;  { 8086 instruction  }
        IF_186    = $01000000;  { 186+ instruction  }
        IF_286    = $02000000;  { 286+ instruction  }
@@ -241,6 +247,8 @@ implementation
        IF_PENT   = $05000000;  { Pentium instruction  }
        IF_P6     = $06000000;  { P6 instruction  }
        IF_KATMAI = $07000000;  { Katmai instructions  }
+       { Willamette instructions }
+       IF_WILLAMETTE = $08000000;
        IF_CYRIX  = $10000000;  { Cyrix-specific instruction  }
        IF_AMD    = $20000000;  { AMD-specific instruction  }
        { added flags }
@@ -1788,7 +1796,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.1  2002-07-01 18:46:29  peter
+  Revision 1.2  2002-07-20 11:57:59  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.1  2002/07/01 18:46:29  peter
     * internal linker
     * reorganized aasm layer
 

+ 7 - 2
compiler/i386/cgcpu.pas

@@ -161,7 +161,7 @@ unit cgcpu;
 
     uses
        globtype,globals,verbose,systems,cutils,
-       symdef,symsym,types,paramgr,
+       symdef,symsym,defbase,paramgr,
        rgobj,tgobj,rgcpu;
 
 {$ifndef NOTARGETWIN32}
@@ -1785,7 +1785,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.27  2002-07-11 14:41:32  florian
+  Revision 1.28  2002-07-20 11:58:00  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.27  2002/07/11 14:41:32  florian
     * start of the new generic parameter handling
 
   Revision 1.26  2002/07/07 09:52:33  florian

+ 82 - 1
compiler/i386/i386att.inc

@@ -270,6 +270,7 @@
 'prefetch',
 'prefetchw',
 'pslld',
+'pslldq',
 'psllq',
 'psllw',
 'psrad',
@@ -465,5 +466,85 @@
 'pi2fw',
 'pf2iw',
 'pswapd',
-'ffreep'
+'ffreep',
+'maskmovdqu',
+'clflush',
+'movntdq',
+'movnti',
+'movntpd',
+'pause',
+'lfence',
+'mfence',
+'movdqa',
+'movdqu',
+'movdq2q',
+'movq2dq',
+'paddq',
+'pmuludq',
+'pshufd',
+'pshufhw',
+'pshuflw',
+'psrldq',
+'psubq',
+'punpckhqdq',
+'punpcklqdq',
+'addpd',
+'andnpd',
+'andpd',
+'cmpeqpd',
+'cmpeqsd',
+'cmplepd',
+'cmplesd',
+'cmpltpd',
+'cmpltsd',
+'cmpneqpd',
+'cmpnlepd',
+'cmpnlesd',
+'cmpnltpd',
+'cmpnltsd',
+'cmpordpd',
+'cmpordsd',
+'cmpunordpd',
+'cmpunordsd',
+'cmppd',
+'comisd',
+'cvtdq2pd',
+'cvtdq2ps',
+'cvtpd2dq',
+'cvtpd2pi',
+'cvtpd2ps',
+'cvtpi2pd',
+'cvtps2dq',
+'cvtps2pd',
+'cvtsd2si',
+'cvtsd2ss',
+'cvtsi2sd',
+'cvtss2sd',
+'cvttpd2pi',
+'cvttpd2dq',
+'cvttps2dq',
+'cvttsd2si',
+'divpd',
+'divsd',
+'maxpd',
+'maxsd',
+'minpd',
+'minsd',
+'movapd',
+'movhpd',
+'movlpd',
+'movmskpd',
+'movupd',
+'mulpd',
+'mulsd',
+'orpd',
+'shufpd',
+'sqrtpd',
+'sqrtsd',
+'subpd',
+'subsd',
+'ucomisd',
+'unpckhpd',
+'unpcklpd',
+'xorpd'
 );

+ 81 - 0
compiler/i386/i386atts.inc

@@ -291,6 +291,7 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,
@@ -465,5 +466,85 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
+attsufNONE,
 attsufNONE
 );

+ 554 - 1
compiler/i386/i386ins.dat

@@ -266,6 +266,8 @@ void                  \332\1\xA6                      8086
 [CMPSD,cmpsl]
 (Ch_All, Ch_None, Ch_None)
 void                  \332\321\1\xA7                  386
+xmmreg,xmmreg,imm     \331\3\xF2\x0F\xC2\110\26       WILLAMETTE,SSE2,SB,AR2
+xmmreg,mem,imm        \301\331\3\xF2\x0F\xC2\110\26   WILLAMETTE,SSE2,SB,AR2
 
 [CMPSW]
 (Ch_All, Ch_None, Ch_None)
@@ -1214,6 +1216,10 @@ mmxreg,mem            \301\2\x0F\x6E\110              PENT,MMX,SD
 mmxreg,reg32          \2\x0F\x6E\110                  PENT,MMX
 mem,mmxreg            \300\2\x0F\x7E\101              PENT,MMX,SD
 reg32,mmxreg          \2\x0F\x7E\101                  PENT,MMX
+xmmreg,reg32          \3\x66\x0F\x6E\110              WILLAMETTE,SSE2
+reg32,xmmreg          \3\x66\x0F\x7E\101              WILLAMETTE,SSE2
+mem,xmmreg            \300\3\x66\x0F\x7E\101          WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\x6E\110          WILLAMETTE,SSE2
 
 [MOVQ,movq]
 (Ch_Rop1, Ch_Wop2, Ch_None)
@@ -1221,6 +1227,11 @@ mmxreg,mem            \301\2\x0F\x6F\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x6F\110                  PENT,MMX
 mem,mmxreg            \300\2\x0F\x7F\101              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x7F\101                  PENT,MMX
+xmmreg,xmmreg         \333\2\x0F\x7E\110              WILLAMETTE,SSE2
+xmmreg,xmmreg         \3\x66\x0F\xD6\110              WILLAMETTE,SSE2
+mem,xmmreg            \300\3\x66\x0F\xD6\101          WILLAMETTE,SSE2
+xmmreg,mem            \301\333\2\x0F\x7E\110          WILLAMETTE,SSE2
+
 
 [MOVSB]
 (Ch_All, Ch_Rop1, Ch_None)
@@ -1229,6 +1240,10 @@ void                  \1\xA4                          8086
 [MOVSD,movsl]
 (Ch_All, Ch_None, Ch_None)
 void                  \321\1\xA5                      386
+xmmreg,xmmreg         \3\xF2\x0F\x10\110              WILLAMETTE,SSE2
+xmmreg,xmmreg         \3\xF2\x0F\x11\110              WILLAMETTE,SSE2
+mem,xmmreg            \300\3\xF2\x0F\x11\101          WILLAMETTE,SSE2
+xmmreg,mem            \301\3\xF2\x0F\x10\110          WILLAMETTE,SSE2
 
 [MOVSW]
 (Ch_All, Ch_None, Ch_None)
@@ -1321,31 +1336,43 @@ void                  \320\1\x6F                      186
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x6B\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x6B\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\x6B\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\x6B\110          WILLAMETTE,SSE2,SM
 
 [PACKSSWB]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x63\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x63\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\x63\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\x63\110          WILLAMETTE,SSE2,SM
 
 [PACKUSWB]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x67\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x67\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\x67\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\x67\110          WILLAMETTE,SSE2,SM
 
 [PADDB]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xFC\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xFC\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\xFC\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xFC\110          WILLAMETTE,SSE2,SM
 
 [PADDD]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xFE\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xFE\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\xFE\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xFE\110          WILLAMETTE,SSE2,SM
 
 [PADDSB]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xEC\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xEC\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xEC\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xEC\110              WILLAMETTE,SSE2
 
 [PADDSIW]
 (Ch_All, Ch_None, Ch_None)
@@ -1356,31 +1383,43 @@ mmxreg,mmxreg         \2\x0F\x51\110                  PENT,MMX,CYRIX
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xED\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xED\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xED\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xED\110              WILLAMETTE,SSE2
 
 [PADDUSB]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xDC\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xDC\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xDC\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xDC\110              WILLAMETTE,SSE2
 
 [PADDUSW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xDD\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xDD\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xDD\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xDD\110              WILLAMETTE,SSE2
 
 [PADDW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xFD\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xFD\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\xFD\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xFD\110          WILLAMETTE,SSE2,SM
 
 [PAND]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xDB\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xDB\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\xDB\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xDB\110          WILLAMETTE,SSE2,SM
 
 [PANDN]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xDF\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xDF\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\xDF\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xDF\110          WILLAMETTE,SSE2,SM
 
 [PAVEB]
 (Ch_All, Ch_None, Ch_None)
@@ -1396,31 +1435,43 @@ mmxreg,mmxreg         \2\x0F\x0F\110\01\xBF           PENT,3DNOW
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x74\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x74\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\x74\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\x74\110          WILLAMETTE,SSE2,SM
 
 [PCMPEQD]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x76\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x76\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\x76\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\x76\110          WILLAMETTE,SSE2,SM
 
 [PCMPEQW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x75\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x75\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\x75\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\x75\110          WILLAMETTE,SSE2,SM
 
 [PCMPGTB]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x64\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x64\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\x64\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\x64\110          WILLAMETTE,SSE2,SM
 
 [PCMPGTD]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x66\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x66\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\x66\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\x66\110          WILLAMETTE,SSE2,SM
 
 [PCMPGTW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x65\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x65\110                  PENT,MMX
+xmmreg,xmmreg         \3\x66\x0F\x65\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\x65\110          WILLAMETTE,SSE2,SM
 
 [PDISTIB]
 (Ch_All, Ch_None, Ch_None)
@@ -1519,6 +1570,8 @@ mmxreg,mem            \301\2\x0F\x5E\110              PENT,MMX,SM,CYRIX
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xF5\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF5\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xF5\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xF5\110              WILLAMETTE,SSE2
 
 [PMAGW]
 (Ch_All, Ch_None, Ch_None)
@@ -1544,11 +1597,15 @@ mmxreg,mmxreg         \2\x0F\x59\110                  PENT,MMX,CYRIX
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xE5\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xE5\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xE5\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xE5\110              WILLAMETTE,SSE2
 
 [PMULLW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD5\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD5\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xD5\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xD5\110              WILLAMETTE,SSE2
 
 [PMVGEZB]
 (Ch_All, Ch_None, Ch_None)
@@ -1604,6 +1661,8 @@ void                  \320\1\x9D                      186
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xEB\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xEB\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xEB\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xEB\110              WILLAMETTE,SSE2
 
 [PREFETCH,prefetchX]
 (Ch_All, Ch_None, Ch_None)
@@ -1618,63 +1677,97 @@ mem                   \2\x0F\x0D\201                  PENT,3DNOW,SM
 mmxreg,mem            \301\2\x0F\xF2\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF2\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x72\206\25               PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xF2\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xF2\110              WILLAMETTE,SSE2
+xmmreg,imm            \3\x66\x0F\x72\206\25           WILLAMETTE,SSE2,SB,AR1
+
+[PSLLDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,imm            \3\x66\x0F\x73\207\25           WILLAMETTE,SSE2,SB,AR1
 
 [PSLLQ]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xF3\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF3\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x73\206\25               PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xF3\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xF3\110              WILLAMETTE,SSE2
+xmmreg,imm            \3\x66\x0F\x73\206\25           WILLAMETTE,SSE2,SB,AR1
 
 [PSLLW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xF1\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF1\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x71\206\25               PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xF1\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xF1\110              WILLAMETTE,SSE2
+xmmreg,imm            \3\x66\x0F\x71\206\25           WILLAMETTE,SSE2,SB,AR1
 
 [PSRAD]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xE2\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xE2\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x72\204\25               PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xE2\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xE2\110              WILLAMETTE,SSE2
+xmmreg,imm            \3\x66\x0F\x72\204\25           WILLAMETTE,SSE2,SB,AR1
 
 [PSRAW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xE1\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xE1\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x71\204\25               PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xE1\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xE1\110              WILLAMETTE,SSE2
+xmmreg,imm            \3\x66\x0F\x71\204\25           WILLAMETTE,SSE2,SB,AR1
 
 [PSRLD]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD2\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD2\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x72\202\25               PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xD2\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xD2\110              WILLAMETTE,SSE2
+xmmreg,imm            \3\x66\x0F\x72\202\25           WILLAMETTE,SSE2,SB,AR1
 
 [PSRLQ]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD3\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD3\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x73\202\25               PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xD3\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xD3\110              WILLAMETTE,SSE2
+xmmreg,imm            \3\x66\x0F\x73\202\25           WILLAMETTE,SSE2,SB,AR1
 
 [PSRLW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD1\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD1\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x71\202\25               PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xD1\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xD1\110              WILLAMETTE,SSE2
+xmmreg,imm            \3\x66\x0F\x71\202\25           WILLAMETTE,SSE2,SB,AR1
 
 [PSUBB]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xF8\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF8\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xF8\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xF8\110              WILLAMETTE,SSE2
 
 [PSUBD]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xFA\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xFA\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xFA\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xFA\110              WILLAMETTE,SSE2
 
 [PSUBSB]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xE8\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xE8\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xE8\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xE8\110              WILLAMETTE,SSE2
 
 [PSUBSIW]
 (Ch_All, Ch_None, Ch_None)
@@ -1685,51 +1778,71 @@ mmxreg,mmxreg         \2\x0F\x55\110                  PENT,MMX,CYRIX
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xE9\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xE9\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xE9\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xE9\110              WILLAMETTE,SSE2
 
 [PSUBUSB]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD8\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD8\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xD8\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xD8\110              WILLAMETTE,SSE2
 
 [PSUBUSW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD9\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD9\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xD9\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xD9\110              WILLAMETTE,SSE2
 
 [PSUBW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xF9\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF9\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xF9\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xF9\110              WILLAMETTE,SSE2
 
 [PUNPCKHBW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x68\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x68\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\x68\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\x68\110              WILLAMETTE,SSE2
 
 [PUNPCKHDQ]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x6A\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x6A\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\x6A\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\x6A\110              WILLAMETTE,SSE2
 
 [PUNPCKHWD]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x69\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x69\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\x69\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\x69\110              WILLAMETTE,SSE2
 
 [PUNPCKLBW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x60\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x60\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\x60\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\x60\110              WILLAMETTE,SSE2
 
 [PUNPCKLDQ]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x62\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x62\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\x62\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\x62\110              WILLAMETTE,SSE2
 
 [PUNPCKLWD]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x61\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x61\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\x61\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\x61\110              WILLAMETTE,SSE2
 
 [PUSH,pushX]
 (Ch_Rop1, Ch_RWESP, Ch_None)
@@ -1771,6 +1884,8 @@ void                  \320\1\x9C                      186
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xEF\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xEF\110                  PENT,MMX
+xmmreg,mem            \301\3\x66\x0F\xEF\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg         \3\x66\x0F\xEF\110              WILLAMETTE,SSE2
 
 [RCL,rclX]
 (Ch_Mop2, Ch_Rop1, Ch_RWFlags)
@@ -2674,15 +2789,20 @@ mem,mmxreg            \2\x0F\xE7\101                  KATMAI,MMX,SM
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xE0\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xE0\110              KATMAI,MMX,SM
+xmmreg,xmmreg         \3\x66\x0F\xE0\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xE0\110          WILLAMETTE,SSE2,SM
 
 [PAVGW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xE3\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xE3\110              KATMAI,MMX,SM
+xmmreg,xmmreg         \3\x66\x0F\xE3\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xE3\110          WILLAMETTE,SSE2,SM
 
 [PEXTRW]
 (Ch_All, Ch_None, Ch_None)
 reg32,mmxreg,imm      \2\x0F\xC5\110\22               KATMAI,MMX,SB,AR2
+reg32,xmmreg,imm      \3\x66\x0F\xC5\110\26           WILLAMETTE,SSE2,SB,AR2
 
 [PINSRW]
 (Ch_All, Ch_None, Ch_None)
@@ -2692,40 +2812,57 @@ mmxreg,reg16,imm      \2\x0F\xC4\110\22               KATMAI,MMX,SB,AR2
 mmxreg,reg32,imm      \2\x0F\xC4\110\22               KATMAI,MMX,SB,AR2,ND
 mmxreg,mem,imm        \301\2\x0F\xC4\110\22           KATMAI,MMX,SB,AR2
 mmxreg,mem16,imm      \301\2\x0F\xC4\110\22           KATMAI,MMX,SB,AR2,ND
+xmmreg,reg16,imm      \3\x66\x0F\xC4\110\26           WILLAMETTE,SSE2,SB,AR2
+xmmreg,reg32,imm      \3\x66\x0F\xC4\110\26           WILLAMETTE,SSE2,SB,AR2,ND
+xmmreg,mem,imm        \301\3\x66\x0F\xC4\110\26       WILLAMETTE,SSE2,SB,AR2
+xmmreg,mem16,imm      \301\3\x66\x0F\xC4\110\26       WILLAMETTE,SSE2,SB,AR2,ND
 
 [PMAXSW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xEE\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xEE\110              KATMAI,MMX,SM
+xmmreg,xmmreg         \3\x66\x0F\xEE\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xEE\110          WILLAMETTE,SSE2,SM
 
 [PMAXUB]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xDE\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xDE\110              KATMAI,MMX,SM
+xmmreg,xmmreg         \3\x66\x0F\xDE\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xDE\110          WILLAMETTE,SSE2,SM
 
 [PMINSW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xEA\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xEA\110              KATMAI,MMX,SM
+xmmreg,xmmreg         \3\x66\x0F\xEA\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xEA\110          WILLAMETTE,SSE2,SM
 
 [PMINUB]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xDA\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xDA\110              KATMAI,MMX,SM
+xmmreg,xmmreg         \3\x66\x0F\xDA\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xDA\110          WILLAMETTE,SSE2,SM
 
 [PMOVMSKB]
 (Ch_All, Ch_None, Ch_None)
 reg32,mmxreg          \2\x0F\xD7\110                  KATMAI,MMX
+reg32,xmmreg          \3\x66\x0F\xD7\110              WILLAMETTE,SSE2
 
 [PMULHUW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xE4\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xE4\110              KATMAI,MMX,SM
+xmmreg,xmmreg         \3\x66\x0F\xE4\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xE4\110          WILLAMETTE,SSE2,SM
 
 [PSADBW]
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xF6\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xF6\110              KATMAI,MMX,SM
+xmmreg,xmmreg         \3\x66\x0F\xF6\110              WILLAMETTE,SSE2
+xmmreg,mem            \301\3\x66\x0F\xF6\110          WILLAMETTE,SSE2,SM
 
 [PSHUFW]
 (Ch_All, Ch_None, Ch_None)
@@ -2733,7 +2870,7 @@ mmxreg,mmxreg,imm     \2\x0F\x70\110\22               KATMAI,MMX,SB,AR2
 mmxreg,mem,imm        \301\2\x0F\x70\110\22           KATMAI,MMX,SM2,SB,AR2
 
 ;
-; New K7 Instructions
+; New Athlon Instructions
 ;
 
 [PFNACC]
@@ -2764,3 +2901,419 @@ mmxreg,mmxreg         \2\x0F\x0F\110\01\xBB           PENT,3DNOW,SM
 [FFREEP]
 (Ch_All, Ch_None, Ch_None)
 fpureg                \1\xDF\10\xC0                   PENT,3DNOW,FPU
+
+; Willamette SSE2 Cacheability Instructions
+[MASKMOVDQU]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\xF7\110              WILLAMETTE,SSE2
+
+; CLFLUSH needs its own feature flag implemented one day
+[CLFLUSH]
+(Ch_All, Ch_None, Ch_None)
+mem                     \300\2\x0F\xAE\207              WILLAMETTE,SSE2
+
+[MOVNTDQ]
+(Ch_All, Ch_None, Ch_None)
+mem,xmmreg              \300\3\x66\x0F\xE7\101          WILLAMETTE,SSE2,SM
+
+[MOVNTI]
+(Ch_All, Ch_None, Ch_None)
+mem,reg32               \300\2\x0F\xC3\101              WILLAMETTE,SSE2,SM
+
+[MOVNTPD]
+(Ch_All, Ch_None, Ch_None)
+mem,xmmreg              \300\3\x66\x0F\x2B\101          WILLAMETTE,SSE2,SM
+
+[PAUSE]
+(Ch_All, Ch_None, Ch_None)
+void                    \333\1\x90                      WILLAMETTE,SSE2
+
+[LFENCE]
+(Ch_All, Ch_None, Ch_None)
+void                    \3\x0F\xAE\xE8                  WILLAMETTE,SSE2
+
+[MFENCE]
+(Ch_All, Ch_None, Ch_None)
+void                    \3\x0F\xAE\xF0                  WILLAMETTE,SSE2
+
+;
+; Willamette MMX instructions (SSE2 SIMD Integer Instructions)
+;
+[MOVDQA]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x6F\110              WILLAMETTE,SSE2
+mem,xmmreg              \300\3\x66\x0F\x7F\101          WILLAMETTE,SSE2,SM
+xmmreg,mem              \301\3\x66\x0F\x6F\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \3\x66\x0F\x7F\110              WILLAMETTE,SSE2
+
+[MOVDQU]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \333\2\x0F\x6F\110              WILLAMETTE,SSE2
+mem,xmmreg              \333\300\2\x0F\x7F\101          WILLAMETTE,SSE2,SM
+xmmreg,mem              \301\333\2\x0F\x6F\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \333\2\x0F\x7F\110              WILLAMETTE,SSE2
+
+[MOVDQ2Q]
+(Ch_All, Ch_None, Ch_None)
+mmxreg,xmmreg           \3\xF2\x0F\xD6\110              WILLAMETTE,SSE2
+
+[MOVQ2DQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mmxreg           \333\2\x0F\xD6\110              WILLAMETTE,SSE2
+
+[PADDQ]
+(Ch_All, Ch_None, Ch_None)
+mmxreg,mmxreg           \2\x0F\xD4\110                  WILLAMETTE,SSE2
+mmxreg,mem              \301\2\x0F\xD4\110              WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \3\x66\x0F\xD4\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\xD4\110          WILLAMETTE,SSE2,SM
+
+[PMULUDQ]
+(Ch_All, Ch_None, Ch_None)
+mmxreg,mmxreg           \2\x0F\xF4\110                  WILLAMETTE,SSE2
+mmxreg,mem              \301\2\x0F\xF4\110              WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \3\x66\x0F\xF4\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\xF4\110          WILLAMETTE,SSE2,SM
+
+[PSHUFD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm       \3\x66\x0F\x70\110\22           WILLAMETTE,SSE2,SB,AR2
+xmmreg,mem,imm          \301\3\x66\x0F\x70\110\22       WILLAMETTE,SSE2,SM2,SB,AR2
+
+[PSHUFHW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm       \333\2\x0F\x70\110\22           WILLAMETTE,SSE2,SB,AR2
+xmmreg,mem,imm          \301\333\2\x0F\x70\110\22       WILLAMETTE,SSE2,SM2,SB,AR2
+
+[PSHUFLW]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm       \3\xF2\x0F\x70\110\22           WILLAMETTE,SSE2,SB,AR2
+xmmreg,mem,imm          \301\3\xF2\x0F\x70\110\22       WILLAMETTE,SSE2,SM2,SB,AR2
+
+[PSRLDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,imm              \3\x66\x0F\x73\203\25           WILLAMETTE,SSE2,SB,AR1
+
+[PSUBQ]
+(Ch_All, Ch_None, Ch_None)
+mmxreg,mmxreg           \2\x0F\xFB\110                  WILLAMETTE,SSE2
+mmxreg,mem              \301\2\x0F\xFB\110              WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \3\x66\x0F\xFB\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\xFB\110          WILLAMETTE,SSE2,SM
+
+[PUNPCKHQDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x6D\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x6D\110          WILLAMETTE,SSE2,SM
+
+[PUNPCKLQDQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x6C\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x6C\110          WILLAMETTE,SSE2,SM
+
+;
+; Willamette Streaming SIMD instructions (SSE2)
+;
+[ADDPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \331\3\x66\x0F\x58\110          WILLAMETTE,SSE2
+xmmreg,mem              \301\331\3\x66\x0F\x58\110      WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \331\3\xF2\x0F\x58\110          WILLAMETTE,SSE2
+xmmreg,mem              \301\331\3\xF2\x0F\x58\110      WILLAMETTE,SSE2
+
+[ANDNPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \331\3\x66\x0F\x55\110          WILLAMETTE,SSE2
+xmmreg,mem              \301\331\3\x66\x0F\x55\110      WILLAMETTE,SSE2,SM
+
+[ANDPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \331\3\x66\x0F\x54\110          WILLAMETTE,SSE2
+xmmreg,mem              \301\331\3\x66\x0F\x54\110      WILLAMETTE,SSE2,SM
+
+[CMPEQPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\x66\x0F\xC2\110\1\x00    WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \331\3\x66\x0F\xC2\110\1\x00        WILLAMETTE,SSE2
+
+[CMPEQSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\xF2\x0F\xC2\110\1\x00    WILLAMETTE,SSE2
+xmmreg,xmmreg           \331\3\xF2\x0F\xC2\110\1\x00        WILLAMETTE,SSE2
+
+[CMPLEPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\x66\x0F\xC2\110\1\x02    WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \331\3\x66\x0F\xC2\110\1\x02        WILLAMETTE,SSE2
+
+[CMPLESD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\xF2\x0F\xC2\110\1\x02    WILLAMETTE,SSE2
+xmmreg,xmmreg           \331\3\xF2\x0F\xC2\110\1\x02        WILLAMETTE,SSE2
+
+[CMPLTPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\x66\x0F\xC2\110\1\x01    WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \331\3\x66\x0F\xC2\110\1\x01        WILLAMETTE,SSE2
+
+[CMPLTSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\xF2\x0F\xC2\110\1\x01    WILLAMETTE,SSE2
+xmmreg,xmmreg           \331\3\xF2\x0F\xC2\110\1\x01        WILLAMETTE,SSE2
+
+[CMPNEQPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\x66\x0F\xC2\110\1\x04    WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \331\3\x66\x0F\xC2\110\1\x04        WILLAMETTE,SSE2
+xmmreg,mem              \301\331\3\xF2\x0F\xC2\110\1\x04    WILLAMETTE,SSE2
+xmmreg,xmmreg           \331\3\xF2\x0F\xC2\110\1\x04        WILLAMETTE,SSE2
+
+[CMPNLEPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\x66\x0F\xC2\110\1\x06    WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \331\3\x66\x0F\xC2\110\1\x06        WILLAMETTE,SSE2
+
+[CMPNLESD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\xF2\x0F\xC2\110\1\x06    WILLAMETTE,SSE2
+xmmreg,xmmreg           \331\3\xF2\x0F\xC2\110\1\x06        WILLAMETTE,SSE2
+
+[CMPNLTPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\x66\x0F\xC2\110\1\x05    WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \331\3\x66\x0F\xC2\110\1\x05        WILLAMETTE,SSE2
+
+[CMPNLTSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\xF2\x0F\xC2\110\1\x05    WILLAMETTE,SSE2
+xmmreg,xmmreg           \331\3\xF2\x0F\xC2\110\1\x05        WILLAMETTE,SSE2
+
+[CMPORDPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\x66\x0F\xC2\110\1\x07    WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \331\3\x66\x0F\xC2\110\1\x07        WILLAMETTE,SSE2
+
+[CMPORDSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\xF2\x0F\xC2\110\1\x07    WILLAMETTE,SSE2
+xmmreg,xmmreg           \331\3\xF2\x0F\xC2\110\1\x07        WILLAMETTE,SSE2
+
+[CMPUNORDPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\x66\x0F\xC2\110\1\x03    WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \331\3\x66\x0F\xC2\110\1\x03        WILLAMETTE,SSE2
+
+[CMPUNORDSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\331\3\xF2\x0F\xC2\110\1\x03    WILLAMETTE,SSE2
+xmmreg,xmmreg           \331\3\xF2\x0F\xC2\110\1\x03        WILLAMETTE,SSE2
+
+; CMPPD/CMPSD must come after the specific ops; that way the disassembler will find the
+; specific ops first and only disassemble illegal ones as cmppd/cmpsd.
+[CMPPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm       \331\3\x66\x0F\xC2\110\26       WILLAMETTE,SSE2,SB,AR2
+xmmreg,mem,imm          \301\331\3\x66\x0F\xC2\110\26   WILLAMETTE,SSE2,SM2,SB,AR2
+
+[COMISD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \331\3\x66\x0F\x2F\110          WILLAMETTE,SSE2
+xmmreg,mem              \301\331\3\x66\x0F\x2F\110      WILLAMETTE,SSE2
+
+[CVTDQ2PD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \333\2\x0F\xE6\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\333\2\x0F\xE6\110          WILLAMETTE,SSE2
+
+[CVTDQ2PS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \2\x0F\x5B\110                  WILLAMETTE,SSE2
+xmmreg,mem              \301\2\x0F\x5B\110              WILLAMETTE,SSE2,SM
+
+[CVTPD2DQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\xF2\x0F\xE6\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\xF2\x0F\xE6\110          WILLAMETTE,SSE2,SM
+
+[CVTPD2PI]
+(Ch_All, Ch_None, Ch_None)
+mmxreg,xmmreg           \3\x66\x0F\x2D\110              WILLAMETTE,SSE2
+mmxreg,mem              \301\3\x66\x0F\x2D\110          WILLAMETTE,SSE2
+
+[CVTPD2PS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x5A\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x5A\110          WILLAMETTE,SSE2,SM
+
+[CVTPI2PD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mmxreg           \3\x66\x0F\x2A\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x2A\110          WILLAMETTE,SSE2
+
+[CVTPS2DQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x5B\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x5B\110          WILLAMETTE,SSE2,SM
+
+[CVTPS2PD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \2\x0F\x5A\110                  WILLAMETTE,SSE2
+xmmreg,mem              \301\2\x0F\x5A\110              WILLAMETTE,SSE2
+
+[CVTSD2SI]
+(Ch_All, Ch_None, Ch_None)
+reg32,xmmreg            \3\xF2\x0F\x2D\110              WILLAMETTE,SSE2
+reg32,mem               \301\3\xF2\x0F\x2D\110          WILLAMETTE,SSE2
+
+[CVTSD2SS]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\xF2\x0F\x5A\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\xF2\x0F\x5A\110          WILLAMETTE,SSE2
+
+[CVTSI2SD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,reg32            \3\xF2\x0F\x2A\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\xF2\x0F\x2A\110          WILLAMETTE,SSE2
+
+[CVTSS2SD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \333\2\x0F\x5A\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\333\2\x0F\x5A\110          WILLAMETTE,SSE2
+
+[CVTTPD2PI]
+(Ch_All, Ch_None, Ch_None)
+mmxreg,xmmreg           \3\x66\x0F\x2C\110              WILLAMETTE,SSE2
+mmxreg,mem              \301\3\x66\x0F\x2C\110          WILLAMETTE,SSE2
+
+[CVTTPD2DQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\xE6\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\xE6\110          WILLAMETTE,SSE2,SM
+
+[CVTTPS2DQ]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \333\2\x0F\x5B\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\333\2\x0F\x5B\110          WILLAMETTE,SSE2,SM
+
+[CVTTSD2SI]
+(Ch_All, Ch_None, Ch_None)
+reg32,xmmreg            \3\xF2\x0F\x2C\110              WILLAMETTE,SSE2
+reg32,mem               \301\3\xF2\x0F\x2C\110          WILLAMETTE,SSE2
+
+[DIVPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x5E\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x5E\110          WILLAMETTE,SSE2,SM
+
+[DIVSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\xF2\x0F\x5E\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\xF2\x0F\x5E\110          WILLAMETTE,SSE2
+
+[MAXPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x5F\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x5F\110          WILLAMETTE,SSE2,SM
+
+[MAXSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\xF2\x0F\x5F\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\xF2\x0F\x5F\110          WILLAMETTE,SSE2
+
+[MINPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x5D\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x5D\110          WILLAMETTE,SSE2,SM
+
+[MINSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\xF2\x0F\x5D\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\xF2\x0F\x5D\110          WILLAMETTE,SSE2
+
+[MOVAPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x28\110              WILLAMETTE,SSE2
+xmmreg,xmmreg           \3\x66\x0F\x29\110              WILLAMETTE,SSE2
+mem,xmmreg              \300\3\x66\x0F\x29\101          WILLAMETTE,SSE2,SM
+xmmreg,mem              \301\3\x66\x0F\x28\110          WILLAMETTE,SSE2,SM
+
+[MOVHPD]
+(Ch_All, Ch_None, Ch_None)
+mem,xmmreg              \300\3\x66\x0F\x17\101          WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x16\110          WILLAMETTE,SSE2
+
+[MOVLPD]
+(Ch_All, Ch_None, Ch_None)
+mem,xmmreg              \300\3\x66\x0F\x13\101          WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x12\110          WILLAMETTE,SSE2
+
+[MOVMSKPD]
+(Ch_All, Ch_None, Ch_None)
+reg32,xmmreg            \3\x66\x0F\x50\110              WILLAMETTE,SSE2
+
+[MOVUPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x10\110              WILLAMETTE,SSE2
+xmmreg,xmmreg           \3\x66\x0F\x11\110              WILLAMETTE,SSE2
+mem,xmmreg              \300\3\x66\x0F\x11\101          WILLAMETTE,SSE2,SM
+xmmreg,mem              \301\3\x66\x0F\x10\110          WILLAMETTE,SSE2,SM
+
+[MULPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x59\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x59\110          WILLAMETTE,SSE2,SM
+
+[MULSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\xF2\x0F\x59\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\xF2\x0F\x59\110          WILLAMETTE,SSE2
+
+[ORPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,mem              \301\3\x66\x0F\x56\110          WILLAMETTE,SSE2,SM
+xmmreg,xmmreg           \3\x66\x0F\x56\110              WILLAMETTE,SSE2
+
+[SHUFPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg,imm       \3\x66\x0F\xC6\110\26           WILLAMETTE,SSE2,SB,AR2
+xmmreg,mem,imm          \301\3\x66\x0F\xC6\110\26       WILLAMETTE,SSE2,SM,SB,AR2
+
+[SQRTPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x51\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x51\110          WILLAMETTE,SSE2,SM
+
+[SQRTSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\xF2\x0F\x51\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\xF2\x0F\x51\110          WILLAMETTE,SSE2
+
+[SUBPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x5C\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x5C\110          WILLAMETTE,SSE2,SM
+
+[SUBSD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\xF2\x0F\x5C\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\xF2\x0F\x5C\110          WILLAMETTE,SSE2
+
+[UCOMISD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x2E\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x2E\110          WILLAMETTE,SSE2
+
+[UNPCKHPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x15\110              WILLAMETTE,SSE2
+mem,xmmreg              \300\3\x66\x0F\x15\101          WILLAMETTE,SSE2,SM
+
+[UNPCKLPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x14\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x14\110          WILLAMETTE,SSE2,SM
+
+[XORPD]
+(Ch_All, Ch_None, Ch_None)
+xmmreg,xmmreg           \3\x66\x0F\x57\110              WILLAMETTE,SSE2
+xmmreg,mem              \301\3\x66\x0F\x57\110          WILLAMETTE,SSE2,SM

+ 82 - 1
compiler/i386/i386int.inc

@@ -270,6 +270,7 @@
 'prefetch',
 'prefetchw',
 'pslld',
+'pslldq',
 'psllq',
 'psllw',
 'psrad',
@@ -465,5 +466,85 @@
 'pi2fw',
 'pf2iw',
 'pswapd',
-'ffreep'
+'ffreep',
+'maskmovdqu',
+'clflush',
+'movntdq',
+'movnti',
+'movntpd',
+'pause',
+'lfence',
+'mfence',
+'movdqa',
+'movdqu',
+'movdq2q',
+'movq2dq',
+'paddq',
+'pmuludq',
+'pshufd',
+'pshufhw',
+'pshuflw',
+'psrldq',
+'psubq',
+'punpckhqdq',
+'punpcklqdq',
+'addpd',
+'andnpd',
+'andpd',
+'cmpeqpd',
+'cmpeqsd',
+'cmplepd',
+'cmplesd',
+'cmpltpd',
+'cmpltsd',
+'cmpneqpd',
+'cmpnlepd',
+'cmpnlesd',
+'cmpnltpd',
+'cmpnltsd',
+'cmpordpd',
+'cmpordsd',
+'cmpunordpd',
+'cmpunordsd',
+'cmppd',
+'comisd',
+'cvtdq2pd',
+'cvtdq2ps',
+'cvtpd2dq',
+'cvtpd2pi',
+'cvtpd2ps',
+'cvtpi2pd',
+'cvtps2dq',
+'cvtps2pd',
+'cvtsd2si',
+'cvtsd2ss',
+'cvtsi2sd',
+'cvtss2sd',
+'cvttpd2pi',
+'cvttpd2dq',
+'cvttps2dq',
+'cvttsd2si',
+'divpd',
+'divsd',
+'maxpd',
+'maxsd',
+'minpd',
+'minsd',
+'movapd',
+'movhpd',
+'movlpd',
+'movmskpd',
+'movupd',
+'mulpd',
+'mulsd',
+'orpd',
+'shufpd',
+'sqrtpd',
+'sqrtsd',
+'subpd',
+'subsd',
+'ucomisd',
+'unpckhpd',
+'unpcklpd',
+'xorpd'
 );

+ 1 - 1
compiler/i386/i386nop.inc

@@ -1,2 +1,2 @@
 { don't edit, this file is generated from i386ins.dat }
-1325;
+1624;

+ 82 - 1
compiler/i386/i386op.inc

@@ -270,6 +270,7 @@ A_POR,
 A_PREFETCH,
 A_PREFETCHW,
 A_PSLLD,
+A_PSLLDQ,
 A_PSLLQ,
 A_PSLLW,
 A_PSRAD,
@@ -465,5 +466,85 @@ A_PFPNACC,
 A_PI2FW,
 A_PF2IW,
 A_PSWAPD,
-A_FFREEP
+A_FFREEP,
+A_MASKMOVDQU,
+A_CLFLUSH,
+A_MOVNTDQ,
+A_MOVNTI,
+A_MOVNTPD,
+A_PAUSE,
+A_LFENCE,
+A_MFENCE,
+A_MOVDQA,
+A_MOVDQU,
+A_MOVDQ2Q,
+A_MOVQ2DQ,
+A_PADDQ,
+A_PMULUDQ,
+A_PSHUFD,
+A_PSHUFHW,
+A_PSHUFLW,
+A_PSRLDQ,
+A_PSUBQ,
+A_PUNPCKHQDQ,
+A_PUNPCKLQDQ,
+A_ADDPD,
+A_ANDNPD,
+A_ANDPD,
+A_CMPEQPD,
+A_CMPEQSD,
+A_CMPLEPD,
+A_CMPLESD,
+A_CMPLTPD,
+A_CMPLTSD,
+A_CMPNEQPD,
+A_CMPNLEPD,
+A_CMPNLESD,
+A_CMPNLTPD,
+A_CMPNLTSD,
+A_CMPORDPD,
+A_CMPORDSD,
+A_CMPUNORDPD,
+A_CMPUNORDSD,
+A_CMPPD,
+A_COMISD,
+A_CVTDQ2PD,
+A_CVTDQ2PS,
+A_CVTPD2DQ,
+A_CVTPD2PI,
+A_CVTPD2PS,
+A_CVTPI2PD,
+A_CVTPS2DQ,
+A_CVTPS2PD,
+A_CVTSD2SI,
+A_CVTSD2SS,
+A_CVTSI2SD,
+A_CVTSS2SD,
+A_CVTTPD2PI,
+A_CVTTPD2DQ,
+A_CVTTPS2DQ,
+A_CVTTSD2SI,
+A_DIVPD,
+A_DIVSD,
+A_MAXPD,
+A_MAXSD,
+A_MINPD,
+A_MINSD,
+A_MOVAPD,
+A_MOVHPD,
+A_MOVLPD,
+A_MOVMSKPD,
+A_MOVUPD,
+A_MULPD,
+A_MULSD,
+A_ORPD,
+A_SHUFPD,
+A_SQRTPD,
+A_SQRTSD,
+A_SUBPD,
+A_SUBSD,
+A_UCOMISD,
+A_UNPCKHPD,
+A_UNPCKLPD,
+A_XORPD
 );

+ 81 - 0
compiler/i386/i386prop.inc

@@ -291,6 +291,7 @@
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_Rop1, Ch_RWESP, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
@@ -465,5 +466,85 @@
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
+(Ch: (Ch_All, Ch_None, Ch_None)),
 (Ch: (Ch_All, Ch_None, Ch_None))
 );

File diff suppressed because it is too large
+ 711 - 4
compiler/i386/i386tab.inc


+ 7 - 2
compiler/i386/n386add.pas

@@ -57,7 +57,7 @@ interface
       globtype,systems,
       cutils,verbose,globals,
       symconst,symdef,paramgr,
-      aasmbase,aasmtai,aasmcpu,types,htypechk,
+      aasmbase,aasmtai,aasmcpu,defbase,htypechk,
       cgbase,pass_2,regvars,
       cpupara,
       ncon,nset,
@@ -1573,7 +1573,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.43  2002-07-11 14:41:32  florian
+  Revision 1.44  2002-07-20 11:58:00  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.43  2002/07/11 14:41:32  florian
     * start of the new generic parameter handling
 
   Revision 1.42  2002/07/07 09:52:33  florian

+ 7 - 2
compiler/i386/n386cal.pas

@@ -51,7 +51,7 @@ implementation
     uses
       globtype,systems,
       cutils,verbose,globals,
-      symconst,symbase,symsym,symtable,types,
+      symconst,symbase,symsym,symtable,defbase,
 {$ifdef GDB}
   {$ifdef delphi}
       sysutils,
@@ -1481,7 +1481,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.59  2002-07-11 14:41:33  florian
+  Revision 1.60  2002-07-20 11:58:01  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.59  2002/07/11 14:41:33  florian
     * start of the new generic parameter handling
 
   Revision 1.58  2002/07/07 09:52:34  florian

+ 7 - 2
compiler/i386/n386cnv.pas

@@ -27,7 +27,7 @@ unit n386cnv;
 interface
 
     uses
-      node,ncgcnv,types;
+      node,ncgcnv,defbase;
 
     type
        ti386typeconvnode = class(tcgtypeconvnode)
@@ -365,7 +365,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.43  2002-07-01 18:46:31  peter
+  Revision 1.44  2002-07-20 11:58:01  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.43  2002/07/01 18:46:31  peter
     * internal linker
     * reorganized aasm layer
 

+ 7 - 2
compiler/i386/n386inl.pas

@@ -39,7 +39,7 @@ implementation
     uses
       globtype,systems,
       cutils,verbose,globals,fmodule,
-      symconst,symdef,types,
+      symconst,symdef,defbase,
       aasmbase,aasmtai,aasmcpu,
       cginfo,cgbase,pass_1,pass_2,
       cpubase,paramgr,
@@ -461,7 +461,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.48  2002-07-11 14:41:33  florian
+  Revision 1.49  2002-07-20 11:58:02  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.48  2002/07/11 14:41:33  florian
     * start of the new generic parameter handling
 
   Revision 1.47  2002/07/07 09:52:34  florian

+ 7 - 2
compiler/i386/n386mat.pas

@@ -52,7 +52,7 @@ implementation
     uses
       globtype,systems,
       cutils,verbose,globals,
-      symconst,symdef,aasmbase,aasmtai,aasmcpu,types,
+      symconst,symdef,aasmbase,aasmtai,aasmcpu,defbase,
       cginfo,cgbase,pass_1,pass_2,
       ncon,
       cpubase,
@@ -830,7 +830,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.32  2002-07-01 18:46:33  peter
+  Revision 1.33  2002-07-20 11:58:02  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.32  2002/07/01 18:46:33  peter
     * internal linker
     * reorganized aasm layer
 

+ 7 - 2
compiler/i386/n386mem.pas

@@ -50,7 +50,7 @@ implementation
 {$endif}
       globtype,systems,
       cutils,verbose,globals,
-      symconst,symtype,symdef,symsym,symtable,types,paramgr,
+      symconst,symtype,symdef,symsym,symtable,defbase,paramgr,
       aasmbase,aasmtai,aasmcpu,
       cginfo,cgbase,pass_2,
       pass_1,nld,ncon,nadd,
@@ -520,7 +520,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.37  2002-07-11 14:41:33  florian
+  Revision 1.38  2002-07-20 11:58:04  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.37  2002/07/11 14:41:33  florian
     * start of the new generic parameter handling
 
   Revision 1.36  2002/07/07 09:52:34  florian

+ 7 - 2
compiler/i386/n386opt.pas

@@ -42,7 +42,7 @@ type
 implementation
 
 uses
-  pass_1, types, htypechk,
+  pass_1, defbase, htypechk,
   symdef,paramgr,
   aasmbase,aasmtai,aasmcpu,
   ncnv, ncon, pass_2,
@@ -248,7 +248,12 @@ end.
 
 {
   $Log$
-  Revision 1.20  2002-07-11 14:41:34  florian
+  Revision 1.21  2002-07-20 11:58:04  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.20  2002/07/11 14:41:34  florian
     * start of the new generic parameter handling
 
   Revision 1.19  2002/07/07 09:52:34  florian

+ 7 - 2
compiler/i386/n386set.pas

@@ -44,7 +44,7 @@ implementation
     uses
       globtype,systems,
       verbose,globals,
-      symconst,symdef,types,
+      symconst,symdef,defbase,
       aasmbase,aasmtai,aasmcpu,
       cginfo,cgbase,pass_2,
       ncon,
@@ -1016,7 +1016,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.34  2002-07-11 14:41:34  florian
+  Revision 1.35  2002-07-20 11:58:04  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.34  2002/07/11 14:41:34  florian
     * start of the new generic parameter handling
 
   Revision 1.33  2002/07/06 20:27:26  carl

+ 7 - 2
compiler/i386/ra386dir.pas

@@ -42,7 +42,7 @@ interface
        { aasm }
        aasmbase,aasmtai,aasmcpu,
        { symtable }
-       symconst,symbase,symtype,symsym,symtable,types,paramgr,
+       symconst,symbase,symtype,symsym,symtable,defbase,paramgr,
        { pass 1 }
        nbas,
        { parser }
@@ -304,7 +304,12 @@ initialization
 end.
 {
   $Log$
-  Revision 1.20  2002-07-11 14:41:34  florian
+  Revision 1.21  2002-07-20 11:58:05  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.20  2002/07/11 14:41:34  florian
     * start of the new generic parameter handling
 
   Revision 1.19  2002/07/01 18:46:34  peter

+ 9 - 4
compiler/nadd.pas

@@ -60,7 +60,7 @@ implementation
     uses
       globtype,systems,
       cutils,verbose,globals,widestr,
-      symconst,symtype,symdef,symsym,symtable,types,
+      symconst,symtype,symdef,symsym,symtable,defbase,
       cgbase,
       htypechk,pass_1,
       nmat,ncnv,ncon,nset,nopt,ncal,ninl,
@@ -1346,7 +1346,7 @@ implementation
          { first do the two subtrees }
          firstpass(left);
          firstpass(right);
-	 
+	
          if codegenerror then
            exit;
 
@@ -1627,7 +1627,7 @@ implementation
     function Taddnode.track_state_pass(exec_known:boolean):boolean;
 
     var factval:Tnode;
-    
+
     begin
 	track_state_pass:=false;
 	if left.track_state_pass(exec_known) then
@@ -1664,7 +1664,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.53  2002-07-19 11:41:34  daniel
+  Revision 1.54  2002-07-20 11:57:53  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.53  2002/07/19 11:41:34  daniel
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into

+ 10 - 5
compiler/nbas.pas

@@ -161,7 +161,7 @@ implementation
     uses
       cutils,
       verbose,globals,globtype,systems,
-      symconst,symdef,symsym,types,
+      symconst,symdef,symsym,defbase,
       pass_1,
       nld,ncal,nflw,rgobj,cgbase
       ;
@@ -293,7 +293,7 @@ implementation
            registersmmx:=right.registersmmx;
 {$endif}
       end;
-      
+
 {$ifdef extdebug}
     procedure tstatementnode.dowrite;
 
@@ -438,9 +438,9 @@ implementation
 
 {$ifdef state_tracking}
       function Tblocknode.track_state_pass(exec_known:boolean):boolean;
-      
+
       var hp:Tstatementnode;
-      
+
       begin
         track_state_pass:=false;
         hp:=Tstatementnode(left);
@@ -694,7 +694,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.29  2002-07-19 11:41:35  daniel
+  Revision 1.30  2002-07-20 11:57:53  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.29  2002/07/19 11:41:35  daniel
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into

+ 11 - 6
compiler/ncal.pas

@@ -129,7 +129,7 @@ implementation
     uses
       cutils,globtype,systems,
       verbose,globals,
-      symconst,paramgr,types,
+      symconst,paramgr,defbase,
       htypechk,pass_1,cpuinfo,cpubase,
       ncnv,nld,ninl,nadd,ncon,
       rgobj,cgbase
@@ -774,7 +774,7 @@ implementation
             end;
            { all types can be passed to a formaldef }
            is_equal:=(def.deftype=formaldef) or
-             (types.is_equal(p.resulttype.def,def))
+             (defbase.is_equal(p.resulttype.def,def))
            { integer constants are compatible with all integer parameters if
              the specified value matches the range }
              or
@@ -1223,7 +1223,7 @@ implementation
                                               is_in_limit(def_to,conv_to) then
                                              begin
                                                 { is it the same as the previous best? }
-                                                if not types.is_equal(def_to,conv_to) then
+                                                if not defbase.is_equal(def_to,conv_to) then
                                                   begin
                                                     { no -> remove all previous best matches }
                                                     hp := hp^.next;
@@ -1784,10 +1784,10 @@ implementation
 
 {$ifdef state_tracking}
     function Tcallnode.track_state_pass(exec_known:boolean):boolean;
-    
+
     var hp:Tcallparanode;
 	value:Tnode;
-    
+
     begin
 	track_state_pass:=false;
 	hp:=Tcallparanode(left);
@@ -1904,7 +1904,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.82  2002-07-19 11:41:35  daniel
+  Revision 1.83  2002-07-20 11:57:53  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.82  2002/07/19 11:41:35  daniel
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into

+ 7 - 2
compiler/ncgcal.pas

@@ -51,7 +51,7 @@ implementation
     uses
       globtype,systems,
       cutils,verbose,globals,
-      symconst,symbase,symsym,symtable,types,paramgr,
+      symconst,symbase,symsym,symtable,defbase,paramgr,
 {$ifdef GDB}
   {$ifdef delphi}
       sysutils,
@@ -1499,7 +1499,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.2  2002-07-13 19:38:43  florian
+  Revision 1.3  2002-07-20 11:57:53  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.2  2002/07/13 19:38:43  florian
     * some more generic calling stuff fixed
 
   Revision 1.1  2002/07/11 14:41:28  florian

+ 7 - 2
compiler/ncgcnv.pas

@@ -28,7 +28,7 @@ unit ncgcnv;
 interface
 
     uses
-       node,ncnv,types;
+       node,ncnv,defbase;
 
     type
        tcgtypeconvnode = class(ttypeconvnode)
@@ -490,7 +490,12 @@ end.
 
 {
   $Log$
-  Revision 1.20  2002-07-11 14:41:28  florian
+  Revision 1.21  2002-07-20 11:57:53  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.20  2002/07/11 14:41:28  florian
     * start of the new generic parameter handling
 
   Revision 1.19  2002/07/07 09:52:32  florian

+ 7 - 2
compiler/ncgcon.pas

@@ -65,7 +65,7 @@ implementation
     uses
       globtype,widestr,systems,
       verbose,globals,
-      symconst,symdef,aasmbase,aasmtai,types,
+      symconst,symdef,aasmbase,aasmtai,defbase,
       cpuinfo,cpubase,
       cginfo,cgbase,tgobj,rgobj;
 
@@ -519,7 +519,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.12  2002-07-01 18:46:22  peter
+  Revision 1.13  2002-07-20 11:57:53  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.12  2002/07/01 18:46:22  peter
     * internal linker
     * reorganized aasm layer
 

+ 10 - 5
compiler/ncgflw.pas

@@ -71,7 +71,7 @@ implementation
 
     uses
       verbose,globals,systems,globtype,
-      symconst,symsym,aasmbase,aasmtai,aasmcpu,types,
+      symconst,symsym,aasmbase,aasmtai,aasmcpu,defbase,
       cginfo,cgbase,pass_2,
       cpubase,cpuinfo,
       nld,ncon,
@@ -107,7 +107,7 @@ implementation
 	 if not(cs_littlesize in aktglobalswitches) then
             { align loop target }
             exprasmList.concat(Tai_align.Create(aktalignment.loopalign));
-	    
+	
          cg.a_label(exprasmlist,lloop);
 
          aktcontinuelabel:=lcont;
@@ -133,7 +133,7 @@ implementation
           end;
          rg.cleartempgen;
          secondpass(left);
-	 
+	
          maketojumpbool(exprasmlist,left,lr_load_regvars);
          cg.a_label(exprasmlist,lbreak);
          truelabel:=otlabel;
@@ -631,7 +631,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.25  2002-07-20 11:15:51  daniel
+  Revision 1.26  2002-07-20 11:57:54  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.25  2002/07/20 11:15:51  daniel
   * The for node does a check if the first comparision can be skipped. I moved
     the check from the second pass to the resulttype pass. The advantage is
     that the state tracker can now decide to skip the first comparision too.
@@ -743,4 +748,4 @@ end.
   Revision 1.8  2002/03/04 19:10:11  peter
     * removed compiler warnings
 
-}
+}

+ 7 - 2
compiler/ncgld.pas

@@ -53,7 +53,7 @@ implementation
     uses
       systems,
       verbose,globals,
-      symconst,symtype,symdef,symsym,symtable,types,paramgr,
+      symconst,symtype,symdef,symsym,symtable,defbase,paramgr,
       ncnv,ncon,nmem,
       aasmbase,aasmtai,aasmcpu,regvars,
       cginfo,cgbase,pass_2,
@@ -922,7 +922,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.14  2002-07-16 09:17:44  florian
+  Revision 1.15  2002-07-20 11:57:54  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.14  2002/07/16 09:17:44  florian
     * threadvar relocation result wasn't handled properly, it could cause
       a crash
 

+ 7 - 2
compiler/ncgset.pas

@@ -54,7 +54,7 @@ implementation
     uses
       globtype,systems,
       verbose,globals,
-      symconst,symdef,types,
+      symconst,symdef,defbase,
       paramgr,
       pass_2,
       ncon,
@@ -585,7 +585,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.5  2002-07-11 14:41:28  florian
+  Revision 1.6  2002-07-20 11:57:54  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.5  2002/07/11 14:41:28  florian
     * start of the new generic parameter handling
 
   Revision 1.4  2002/07/07 10:16:29  florian

+ 7 - 2
compiler/ncgutil.pas

@@ -75,7 +75,7 @@ implementation
     strings,
 {$endif}
     cutils,cclasses,globtype,globals,systems,verbose,
-    symbase,symconst,symtype,symsym,symdef,symtable,types,paramgr,
+    symbase,symconst,symtype,symsym,symdef,symtable,defbase,paramgr,
     fmodule,
     cgbase,regvars,
 {$ifdef GDB}
@@ -1629,7 +1629,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.22  2002-07-11 14:41:28  florian
+  Revision 1.23  2002-07-20 11:57:54  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.22  2002/07/11 14:41:28  florian
     * start of the new generic parameter handling
 
   Revision 1.21  2002/07/11 07:33:25  jonas

+ 7 - 2
compiler/ncnv.pas

@@ -28,7 +28,7 @@ interface
 
     uses
        node,
-       symtype,types,
+       symtype,defbase,
        nld;
 
     type
@@ -1755,7 +1755,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.59  2002-07-01 16:23:53  peter
+  Revision 1.60  2002-07-20 11:57:54  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.59  2002/07/01 16:23:53  peter
     * cg64 patch
     * basics for currency
     * asnode updates for class and interface (not finished)

+ 8 - 3
compiler/ncon.pas

@@ -150,7 +150,7 @@ implementation
 
     uses
       cutils,verbose,systems,
-      types,cpubase,nld;
+      defbase,cpubase,nld;
 
     function genintconstnode(v : TConstExprInt) : tordconstnode;
 
@@ -403,7 +403,7 @@ implementation
 
 {$ifdef extdebug}
     procedure Tordconstnode.dowrite;
-    
+
     begin
 	inherited dowrite;
 	write('[',value,']');
@@ -733,7 +733,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.34  2002-07-14 18:00:43  daniel
+  Revision 1.35  2002-07-20 11:57:54  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.34  2002/07/14 18:00:43  daniel
   + Added the beginning of a state tracker. This will track the values of
     variables through procedures and optimize things away.
 

+ 11 - 6
compiler/nflw.pas

@@ -184,7 +184,7 @@ implementation
     uses
       globtype,systems,
       cutils,verbose,globals,
-      symconst,symtable,paramgr,types,htypechk,pass_1,
+      symconst,symtable,paramgr,defbase,htypechk,pass_1,
       ncon,nmem,nld,ncnv,nbas,rgobj,
     {$ifdef state_tracking}
       nstate,
@@ -203,7 +203,7 @@ implementation
                p:=cifnode.create(l,r,n1);
 	    whilerepeatn:
     	       if back then
-	          {Repeat until.}	        
+	          {Repeat until.}	
         	  p:=cwhilerepeatnode.create(l,r,n1,false,true)
 	       else
 	          {While do.}
@@ -363,7 +363,7 @@ implementation
 
 {$ifdef state_tracking}
     function Twhilerepeatnode.track_state_pass(exec_known:boolean):boolean;
-    
+
     var condition:Tnode;
 	code:Tnode;
 	done:boolean;
@@ -371,7 +371,7 @@ implementation
 	change:boolean;
 	firsttest:boolean;
 	factval:Tnode;
-    
+
     begin
 	track_state_pass:=false;
 	done:=false;
@@ -434,7 +434,7 @@ implementation
 	    begin
 	        ...
 	    end;
-	 
+	
 	 When the loop is done, we do know that i<10 = false.
 	}
 	condition:=left.getcopy;
@@ -1246,7 +1246,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.42  2002-07-20 11:18:18  daniel
+  Revision 1.43  2002-07-20 11:57:54  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.42  2002/07/20 11:18:18  daniel
   * Small mistake fixed; the skip test was done before we know the for node
     is correct.
 

+ 7 - 2
compiler/ninl.pas

@@ -57,7 +57,7 @@ implementation
     uses
       verbose,globals,systems,
       globtype, cutils,
-      symbase,symconst,symtype,symdef,symsym,symtable,paramgr,types,
+      symbase,symconst,symtype,symdef,symsym,symtable,paramgr,defbase,
       pass_1,
       ncal,ncon,ncnv,nadd,nld,nbas,nflw,nmem,nmat,
       cpubase,tgobj,cgbase
@@ -2265,7 +2265,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.78  2002-07-11 14:41:28  florian
+  Revision 1.79  2002-07-20 11:57:54  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.78  2002/07/11 14:41:28  florian
     * start of the new generic parameter handling
 
   Revision 1.77  2002/06/06 18:53:53  jonas

+ 11 - 6
compiler/nld.pas

@@ -131,7 +131,7 @@ implementation
 
     uses
       cutils,verbose,globtype,globals,systems,
-      symtable,paramgr,types,
+      symtable,paramgr,defbase,
       htypechk,pass_1,
       ncon,ninl,ncnv,nmem,ncal,cpubase,rgobj,cginfo,cgbase
       ;
@@ -406,7 +406,7 @@ implementation
 
 {$ifdef extdebug}
     procedure Tloadnode.dowrite;
-    
+
     begin
 	inherited dowrite;
 	write('[',symtableentry.name,']');
@@ -565,8 +565,8 @@ implementation
 
 
     function tassignmentnode.pass_1 : tnode;
-    
-    
+
+
       begin
          result:=nil;
 
@@ -591,7 +591,7 @@ implementation
 
 {$ifdef state_tracking}
     function Tassignmentnode.track_state_pass(exec_known:boolean):boolean;
-    
+
     var se:Tstate_entry;
 
     begin
@@ -995,7 +995,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.48  2002-07-20 07:44:37  daniel
+  Revision 1.49  2002-07-20 11:57:54  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.48  2002/07/20 07:44:37  daniel
   * Forgot to add a {$ifdef extdebug}
 
   Revision 1.47  2002/07/19 12:55:27  daniel

+ 9 - 4
compiler/nmat.pas

@@ -77,7 +77,7 @@ implementation
       systems,tokens,
       verbose,globals,cutils,
       globtype,
-      symconst,symtype,symtable,symdef,types,
+      symconst,symtype,symtable,symdef,defbase,
       htypechk,pass_1,cpubase,
       cgbase,
       ncon,ncnv,ncal,nadd;
@@ -696,10 +696,10 @@ implementation
               location.loc:=LOC_REGISTER;
            end
       end;
-      
+
 {$ifdef state_tracking}
     function Tnotnode.track_state_pass(exec_known:boolean):boolean;
-    
+
     begin
 	track_state_pass:=true;
 	if left.track_state_pass(exec_known) then
@@ -718,7 +718,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.35  2002-07-19 11:41:36  daniel
+  Revision 1.36  2002-07-20 11:57:54  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.35  2002/07/19 11:41:36  daniel
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into

+ 7 - 2
compiler/nmem.pas

@@ -131,7 +131,7 @@ implementation
     uses
       globtype,systems,
       cutils,verbose,globals,
-      symconst,symbase,types,
+      symconst,symbase,defbase,
       nbas,
       htypechk,pass_1,ncal,nld,ncon,ncnv,cgbase
       ;
@@ -894,7 +894,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.33  2002-05-18 13:34:10  peter
+  Revision 1.34  2002-07-20 11:57:54  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.33  2002/05/18 13:34:10  peter
     * readded missing revisions
 
   Revision 1.32  2002/05/16 19:46:39  carl

+ 7 - 2
compiler/nobj.pas

@@ -135,7 +135,7 @@ implementation
        strings,
 {$endif}
        globtype,globals,verbose,
-       symtable,symconst,symtype,symsym,types,
+       symtable,symconst,symtype,symsym,defbase,
 {$ifdef GDB}
        gdb,
 {$endif GDB}
@@ -1269,7 +1269,12 @@ initialization
 end.
 {
   $Log$
-  Revision 1.21  2002-07-01 18:46:23  peter
+  Revision 1.22  2002-07-20 11:57:55  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.21  2002/07/01 18:46:23  peter
     * internal linker
     * reorganized aasm layer
 

+ 7 - 3
compiler/nopt.pas

@@ -84,7 +84,7 @@ var
 
 implementation
 
-uses cutils, htypechk, types, globtype, globals, cpubase, ncnv, ncon,
+uses cutils, htypechk, defbase, globtype, globals, cpubase, ncnv, ncon,
      verbose, symdef, cgbase;
 
 
@@ -278,7 +278,12 @@ end.
 
 {
   $Log$
-  Revision 1.9  2002-05-18 13:34:10  peter
+  Revision 1.10  2002-07-20 11:57:55  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.9  2002/05/18 13:34:10  peter
     * readded missing revisions
 
   Revision 1.8  2002/05/16 19:46:39  carl
@@ -297,5 +302,4 @@ end.
       (this is compatible with Kylix). This saves a lot of push/pop especially
       with string operations
     * adapted some routines to use the new cg methods
-
 }

+ 8 - 3
compiler/nset.pas

@@ -111,7 +111,7 @@ implementation
     uses
       globtype,systems,
       verbose,
-      symconst,symdef,symsym,types,
+      symconst,symdef,symsym,defbase,
       htypechk,pass_1,
       ncnv,ncon,cpubase,nld,rgobj,cgbase;
 
@@ -277,7 +277,7 @@ implementation
       begin
          result:=nil;
          location.loc:=LOC_REGISTER;
-         
+
          firstpass(right);
          firstpass(left);
          if codegenerror then
@@ -578,7 +578,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.26  2002-07-06 20:19:25  carl
+  Revision 1.27  2002-07-20 11:57:55  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.26  2002/07/06 20:19:25  carl
   + generic set handling
 
   Revision 1.25  2002/07/01 18:46:24  peter

+ 8 - 3
compiler/paramgr.pas

@@ -62,7 +62,7 @@ unit paramgr;
     uses
        cpuinfo,
        symconst,symbase,
-       types;
+       defbase;
 
     { true if the return value is in accumulator (EAX for i386), D0 for 68k }
     function tparamanager.ret_in_acc(def : tdef) : boolean;
@@ -132,7 +132,12 @@ end.
 
 {
    $Log$
-   Revision 1.3  2002-07-13 19:38:43  florian
+   Revision 1.4  2002-07-20 11:57:55  florian
+     * types.pas renamed to defbase.pas because D6 contains a types
+       unit so this would conflicts if D6 programms are compiled
+     + Willamette/SSE2 instructions to assembler added
+
+   Revision 1.3  2002/07/13 19:38:43  florian
      * some more generic calling stuff fixed
 
    Revision 1.2  2002/07/13 07:17:15  jonas
@@ -140,4 +145,4 @@ end.
 
    Revision 1.1  2002/07/11 14:41:28  florian
      * start of the new generic parameter handling
-}
+}

+ 7 - 2
compiler/pdecobj.pas

@@ -37,7 +37,7 @@ implementation
     uses
       cutils,cclasses,
       globals,verbose,systems,tokens,
-      symconst,symbase,symsym,symtable,types,
+      symconst,symbase,symsym,symtable,defbase,
       cgbase,
       node,nld,nmem,ncon,ncnv,ncal,pass_1,
       scanner,
@@ -1133,7 +1133,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.46  2002-07-01 16:23:53  peter
+  Revision 1.47  2002-07-20 11:57:55  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.46  2002/07/01 16:23:53  peter
     * cg64 patch
     * basics for currency
     * asnode updates for class and interface (not finished)

+ 7 - 2
compiler/pdecsub.pas

@@ -71,7 +71,7 @@ implementation
        { aasm }
        aasmbase,aasmtai,aasmcpu,
        { symtable }
-       symbase,symtable,types,paramgr,
+       symbase,symtable,defbase,paramgr,
        { pass 1 }
        node,htypechk,
        nmat,nadd,ncal,nset,ncnv,ninl,ncon,nld,nflw,
@@ -1957,7 +1957,12 @@ const
 end.
 {
   $Log$
-  Revision 1.59  2002-07-11 14:41:28  florian
+  Revision 1.60  2002-07-20 11:57:55  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.59  2002/07/11 14:41:28  florian
     * start of the new generic parameter handling
 
   Revision 1.58  2002/07/01 18:46:25  peter

+ 7 - 2
compiler/pdecvar.pas

@@ -39,7 +39,7 @@ implementation
        globtype,globals,tokens,verbose,
        systems,
        { symtable }
-       symconst,symbase,symtype,symdef,symsym,symtable,types,fmodule,
+       symconst,symbase,symtype,symdef,symsym,symtable,defbase,fmodule,
        { pass 1 }
        node,
        nmat,nadd,ncal,nset,ncnv,ninl,ncon,nld,nflw,
@@ -583,7 +583,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.27  2002-06-10 13:41:26  jonas
+  Revision 1.28  2002-07-20 11:57:55  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.27  2002/06/10 13:41:26  jonas
     * fixed bug 1985
 
   Revision 1.26  2002/05/18 13:34:12  peter

+ 7 - 2
compiler/pexpr.pas

@@ -68,7 +68,7 @@ implementation
        globtype,tokens,verbose,
        systems,widestr,
        { symtable }
-       symconst,symbase,symdef,symsym,symtable,types,
+       symconst,symbase,symdef,symsym,symtable,defbase,
        { pass 1 }
        pass_1,htypechk,
        nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,nbas,
@@ -2251,7 +2251,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.71  2002-07-16 15:34:20  florian
+  Revision 1.72  2002-07-20 11:57:55  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.71  2002/07/16 15:34:20  florian
     * exit is now a syssym instead of a keyword
 
   Revision 1.70  2002/07/06 20:18:02  carl

+ 7 - 2
compiler/pinline.pas

@@ -51,7 +51,7 @@ implementation
        globtype,tokens,verbose,
        systems,
        { symtable }
-       symconst,symdef,symsym,symtable,types,
+       symconst,symdef,symsym,symtable,defbase,
        { pass 1 }
        pass_1,htypechk,
        nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,nbas,
@@ -565,7 +565,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.5  2002-05-18 13:34:12  peter
+  Revision 1.6  2002-07-20 11:57:56  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.5  2002/05/18 13:34:12  peter
     * readded missing revisions
 
   Revision 1.4  2002/05/16 19:46:43  carl

+ 7 - 2
compiler/powerpc/nppccnv.pas

@@ -27,7 +27,7 @@ unit nppccnv;
 interface
 
     uses
-      node,ncnv,ncgcnv,types;
+      node,ncnv,ncgcnv,defbase;
 
     type
        tppctypeconvnode = class(tcgtypeconvnode)
@@ -377,7 +377,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.13  2002-07-13 06:49:39  jonas
+  Revision 1.14  2002-07-20 11:58:05  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.13  2002/07/13 06:49:39  jonas
     * fixed fpu constants in second_int_to_real (fpu values are also stored
       in big endian)
 

+ 10 - 5
compiler/powerpc/nppcmat.pas

@@ -53,7 +53,7 @@ implementation
       cutils,verbose,globals,
       symconst,symdef,
       aasmbase,aasmcpu,aasmtai,
-      types,
+      defbase,
       cgbase,cgobj,pass_1,pass_2,
       ncon,
       cpubase,cpuinfo,cginfo,
@@ -91,7 +91,7 @@ implementation
          numerator := location.register;
          resultreg := location.register;
          if (location.loc = LOC_CREGISTER) then
-           begin 
+           begin
              location.loc := LOC_REGISTER;
              location.register := rg.getregisterint(exprasmlist);
              resultreg := location.register;
@@ -295,7 +295,7 @@ implementation
                  resultreg := rg.getregisterint(exprasmlist);
                  location.register := resultreg;
                end;
-              
+
               { determine operator }
               if nodetype=shln then
                 op:=OP_SHL
@@ -454,7 +454,7 @@ implementation
                   location_reset(location,LOC_FLAGS,OS_NO);
                   location.resflags.cr:=r_cr0;
                   location.resflags.flag:=F_EQ;
-               end;  
+               end;
             end;
           end
          else if is_64bitint(left.resulttype.def) then
@@ -489,7 +489,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.13  2002-07-11 07:41:27  jonas
+  Revision 1.14  2002-07-20 11:58:05  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.13  2002/07/11 07:41:27  jonas
     * fixed tppcmoddivnode
     * fixed 64bit parts of tppcshlshrnode
 

+ 7 - 2
compiler/pstatmnt.pas

@@ -46,7 +46,7 @@ implementation
        { aasm }
        cpubase,aasmbase,aasmtai,aasmcpu,
        { symtable }
-       symconst,symbase,symtype,symdef,symsym,symtable,types,paramgr,
+       symconst,symbase,symtype,symdef,symsym,symtable,defbase,paramgr,
        { pass 1 }
        pass_1,htypechk,
        nbas,nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,
@@ -1231,7 +1231,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.63  2002-07-19 11:41:36  daniel
+  Revision 1.64  2002-07-20 11:57:56  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.63  2002/07/19 11:41:36  daniel
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into

+ 7 - 2
compiler/psub.pas

@@ -46,7 +46,7 @@ implementation
        { aasm }
        cpubase,cpuinfo,aasmbase,aasmtai,
        { symtable }
-       symconst,symbase,symdef,symsym,symtype,symtable,types,paramgr,
+       symconst,symbase,symdef,symsym,symtype,symtable,defbase,paramgr,
        ppu,fmodule,
        { pass 1 }
        node,
@@ -831,7 +831,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.60  2002-07-19 11:41:36  daniel
+  Revision 1.61  2002-07-20 11:57:56  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.60  2002/07/19 11:41:36  daniel
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into

+ 7 - 2
compiler/ptconst.pas

@@ -43,7 +43,7 @@ implementation
 {$endif Delphi}
        globtype,systems,tokens,
        cutils,globals,widestr,scanner,
-       symconst,symbase,symdef,aasmbase,aasmtai,aasmcpu,types,verbose,
+       symconst,symbase,symdef,aasmbase,aasmtai,aasmcpu,defbase,verbose,
        { pass 1 }
        node,
        nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,
@@ -971,7 +971,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.50  2002-07-01 18:46:25  peter
+  Revision 1.51  2002-07-20 11:57:56  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.50  2002/07/01 18:46:25  peter
     * internal linker
     * reorganized aasm layer
 

+ 7 - 2
compiler/ptype.pas

@@ -60,7 +60,7 @@ implementation
        globals,tokens,verbose,
        systems,
        { symtable }
-       symconst,symbase,symdef,symsym,symtable,types,
+       symconst,symbase,symdef,symsym,symtable,defbase,
        { pass 1 }
        node,
        nmat,nadd,ncal,nset,ncnv,ninl,ncon,nld,nflw,
@@ -631,7 +631,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.41  2002-05-18 13:34:16  peter
+  Revision 1.42  2002-07-20 11:57:56  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.41  2002/05/18 13:34:16  peter
     * readded missing revisions
 
   Revision 1.40  2002/05/16 19:46:44  carl

+ 7 - 2
compiler/rautils.pas

@@ -216,7 +216,7 @@ uses
 {$else}
   strings,
 {$endif}
-  types,systems,verbose,globals,
+  defbase,systems,verbose,globals,
   symsym,symtable,paramgr,
   aasmcpu,
   cpuinfo,cgbase;
@@ -1592,7 +1592,12 @@ end;
 end.
 {
   $Log$
-  Revision 1.37  2002-07-11 14:41:28  florian
+  Revision 1.38  2002-07-20 11:57:57  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.37  2002/07/11 14:41:28  florian
     * start of the new generic parameter handling
 
   Revision 1.36  2002/07/01 18:46:25  peter

+ 7 - 2
compiler/regvars.pas

@@ -48,7 +48,7 @@ implementation
     uses
       globtype,systems,comphook,
       cutils,cclasses,verbose,globals,
-      symconst,symbase,symtype,symdef,paramgr,types,
+      symconst,symbase,symtype,symdef,paramgr,defbase,
       cgbase,cgobj,cgcpu,rgcpu;
 
 
@@ -464,7 +464,12 @@ end.
 
 {
   $Log$
-  Revision 1.36  2002-07-11 14:41:30  florian
+  Revision 1.37  2002-07-20 11:57:57  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.36  2002/07/11 14:41:30  florian
     * start of the new generic parameter handling
 
   Revision 1.35  2002/07/01 18:46:25  peter

+ 7 - 2
compiler/symdef.pas

@@ -723,7 +723,7 @@ implementation
        systems,
        { symtable }
        symsym,symtable,paramgr,
-       types,
+       defbase,
        { module }
 {$ifdef GDB}
        gdb,
@@ -5482,7 +5482,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.83  2002-07-11 14:41:30  florian
+  Revision 1.84  2002-07-20 11:57:57  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.83  2002/07/11 14:41:30  florian
     * start of the new generic parameter handling
 
   Revision 1.82  2002/07/07 09:52:32  florian

+ 7 - 2
compiler/symsym.pas

@@ -357,7 +357,7 @@ implementation
        { target }
        systems,
        { symtable }
-       symtable,types,
+       symtable,defbase,
 {$ifdef GDB}
        gdb,
 {$endif GDB}
@@ -2517,7 +2517,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.42  2002-07-11 14:41:31  florian
+  Revision 1.43  2002-07-20 11:57:58  florian
+    * types.pas renamed to defbase.pas because D6 contains a types
+      unit so this would conflicts if D6 programms are compiled
+    + Willamette/SSE2 instructions to assembler added
+
+  Revision 1.42  2002/07/11 14:41:31  florian
     * start of the new generic parameter handling
 
   Revision 1.41  2002/07/10 07:24:40  jonas

Some files were not shown because too many files changed in this diff