浏览代码

* 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 年之前
父节点
当前提交
59abf2555b
共有 60 个文件被更改,包括 2077 次插入145 次删除
  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,
        globtype,globals,systems,
        cgbase,
        cgbase,
        verbose,
        verbose,
-       symbase,symconst,symdef,types;
+       symbase,symconst,symdef,defbase;
 
 
 
 
     function joinreg64(reglo,reghi : tregister) : tregister64;
     function joinreg64(reglo,reghi : tregister) : tregister64;
@@ -620,7 +620,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * some big-endian fixes
 
 
   Revision 1.19  2002/07/11 07:23:17  jonas
   Revision 1.19  2002/07/11 07:23:17  jonas

+ 7 - 2
compiler/cgbase.pas

@@ -172,7 +172,7 @@ implementation
      uses
      uses
         systems,
         systems,
         cresstr,
         cresstr,
-        types
+        defbase
 {$ifdef fixLeaksOnError}
 {$ifdef fixLeaksOnError}
         ,comphook
         ,comphook
 {$endif fixLeaksOnError}
 {$endif fixLeaksOnError}
@@ -525,7 +525,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * internal linker
     * reorganized aasm layer
     * reorganized aasm layer
 
 

+ 7 - 2
compiler/cgobj.pas

@@ -386,7 +386,7 @@ unit cgobj;
 
 
     uses
     uses
        globals,globtype,options,systems,cgbase,
        globals,globtype,options,systems,cgbase,
-       verbose,types,tgobj,symdef,paramgr,
+       verbose,defbase,tgobj,symdef,paramgr,
        rgobj;
        rgobj;
 
 
     const
     const
@@ -1368,7 +1368,12 @@ finalization
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.35  2002/07/07 10:16:29  florian
   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}
 {$i fpcdefs.inc}
 
 
@@ -1906,7 +1906,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.74  2002/07/01 16:23:54  peter
   Revision 1.74  2002/07/01 16:23:54  peter

+ 7 - 2
compiler/htypechk.pas

@@ -126,7 +126,7 @@ implementation
        globtype,systems,
        globtype,systems,
        cutils,verbose,globals,
        cutils,verbose,globals,
        symconst,symsym,symtable,
        symconst,symsym,symtable,
-       types,cpubase,
+       defbase,cpubase,
        ncnv,nld,
        ncnv,nld,
        nmem,ncal,nmat,
        nmem,ncal,nmat,
        cgbase
        cgbase
@@ -938,7 +938,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * readded missing revisions
 
 
   Revision 1.44  2002/05/16 19:46:37  carl
   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_UNDOC  = $00001000;  { it's an undocumented instruction  }
        IF_FPU    = $00002000;  { it's an FPU instruction  }
        IF_FPU    = $00002000;  { it's an FPU instruction  }
        IF_MMX    = $00004000;  { it's an MMX 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_8086   = $00000000;  { 8086 instruction  }
        IF_186    = $01000000;  { 186+ instruction  }
        IF_186    = $01000000;  { 186+ instruction  }
        IF_286    = $02000000;  { 286+ instruction  }
        IF_286    = $02000000;  { 286+ instruction  }
@@ -241,6 +247,8 @@ implementation
        IF_PENT   = $05000000;  { Pentium instruction  }
        IF_PENT   = $05000000;  { Pentium instruction  }
        IF_P6     = $06000000;  { P6 instruction  }
        IF_P6     = $06000000;  { P6 instruction  }
        IF_KATMAI = $07000000;  { Katmai instructions  }
        IF_KATMAI = $07000000;  { Katmai instructions  }
+       { Willamette instructions }
+       IF_WILLAMETTE = $08000000;
        IF_CYRIX  = $10000000;  { Cyrix-specific instruction  }
        IF_CYRIX  = $10000000;  { Cyrix-specific instruction  }
        IF_AMD    = $20000000;  { AMD-specific instruction  }
        IF_AMD    = $20000000;  { AMD-specific instruction  }
        { added flags }
        { added flags }
@@ -1788,7 +1796,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * internal linker
     * reorganized aasm layer
     * reorganized aasm layer
 
 

+ 7 - 2
compiler/i386/cgcpu.pas

@@ -161,7 +161,7 @@ unit cgcpu;
 
 
     uses
     uses
        globtype,globals,verbose,systems,cutils,
        globtype,globals,verbose,systems,cutils,
-       symdef,symsym,types,paramgr,
+       symdef,symsym,defbase,paramgr,
        rgobj,tgobj,rgcpu;
        rgobj,tgobj,rgcpu;
 
 
 {$ifndef NOTARGETWIN32}
 {$ifndef NOTARGETWIN32}
@@ -1785,7 +1785,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.26  2002/07/07 09:52:33  florian
   Revision 1.26  2002/07/07 09:52:33  florian

+ 82 - 1
compiler/i386/i386att.inc

@@ -270,6 +270,7 @@
 'prefetch',
 'prefetch',
 'prefetchw',
 'prefetchw',
 'pslld',
 'pslld',
+'pslldq',
 'psllq',
 'psllq',
 'psllw',
 'psllw',
 'psrad',
 'psrad',
@@ -465,5 +466,85 @@
 'pi2fw',
 'pi2fw',
 'pf2iw',
 'pf2iw',
 'pswapd',
 '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,
 attsufNONE,
 attsufNONE,
+attsufNONE,
 attsufINT,
 attsufINT,
 attsufINT,
 attsufINT,
 attsufNONE,
 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,
+attsufNONE,
+attsufNONE,
 attsufNONE
 attsufNONE
 );
 );

+ 554 - 1
compiler/i386/i386ins.dat

@@ -266,6 +266,8 @@ void                  \332\1\xA6                      8086
 [CMPSD,cmpsl]
 [CMPSD,cmpsl]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 void                  \332\321\1\xA7                  386
 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]
 [CMPSW]
 (Ch_All, Ch_None, Ch_None)
 (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
 mmxreg,reg32          \2\x0F\x6E\110                  PENT,MMX
 mem,mmxreg            \300\2\x0F\x7E\101              PENT,MMX,SD
 mem,mmxreg            \300\2\x0F\x7E\101              PENT,MMX,SD
 reg32,mmxreg          \2\x0F\x7E\101                  PENT,MMX
 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]
 [MOVQ,movq]
 (Ch_Rop1, Ch_Wop2, Ch_None)
 (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
 mmxreg,mmxreg         \2\x0F\x6F\110                  PENT,MMX
 mem,mmxreg            \300\2\x0F\x7F\101              PENT,MMX,SM
 mem,mmxreg            \300\2\x0F\x7F\101              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x7F\101                  PENT,MMX
 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]
 [MOVSB]
 (Ch_All, Ch_Rop1, Ch_None)
 (Ch_All, Ch_Rop1, Ch_None)
@@ -1229,6 +1240,10 @@ void                  \1\xA4                          8086
 [MOVSD,movsl]
 [MOVSD,movsl]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 void                  \321\1\xA5                      386
 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]
 [MOVSW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
@@ -1321,31 +1336,43 @@ void                  \320\1\x6F                      186
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x6B\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x6B\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x6B\110                  PENT,MMX
 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]
 [PACKSSWB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x63\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x63\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x63\110                  PENT,MMX
 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]
 [PACKUSWB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x67\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x67\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x67\110                  PENT,MMX
 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]
 [PADDB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xFC\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xFC\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xFC\110                  PENT,MMX
 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]
 [PADDD]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xFE\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xFE\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xFE\110                  PENT,MMX
 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]
 [PADDSB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xEC\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xEC\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xEC\110                  PENT,MMX
 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]
 [PADDSIW]
 (Ch_All, Ch_None, Ch_None)
 (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)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xED\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xED\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xED\110                  PENT,MMX
 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]
 [PADDUSB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xDC\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xDC\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xDC\110                  PENT,MMX
 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]
 [PADDUSW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xDD\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xDD\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xDD\110                  PENT,MMX
 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]
 [PADDW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xFD\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xFD\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xFD\110                  PENT,MMX
 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]
 [PAND]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xDB\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xDB\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xDB\110                  PENT,MMX
 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]
 [PANDN]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xDF\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xDF\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xDF\110                  PENT,MMX
 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]
 [PAVEB]
 (Ch_All, Ch_None, Ch_None)
 (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)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x74\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x74\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x74\110                  PENT,MMX
 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]
 [PCMPEQD]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x76\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x76\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x76\110                  PENT,MMX
 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]
 [PCMPEQW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x75\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x75\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x75\110                  PENT,MMX
 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]
 [PCMPGTB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x64\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x64\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x64\110                  PENT,MMX
 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]
 [PCMPGTD]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x66\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x66\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x66\110                  PENT,MMX
 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]
 [PCMPGTW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x65\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x65\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x65\110                  PENT,MMX
 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]
 [PDISTIB]
 (Ch_All, Ch_None, Ch_None)
 (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)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xF5\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xF5\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF5\110                  PENT,MMX
 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]
 [PMAGW]
 (Ch_All, Ch_None, Ch_None)
 (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)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xE5\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xE5\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xE5\110                  PENT,MMX
 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]
 [PMULLW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD5\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xD5\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD5\110                  PENT,MMX
 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]
 [PMVGEZB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
@@ -1604,6 +1661,8 @@ void                  \320\1\x9D                      186
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xEB\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xEB\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xEB\110                  PENT,MMX
 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]
 [PREFETCH,prefetchX]
 (Ch_All, Ch_None, Ch_None)
 (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,mem            \301\2\x0F\xF2\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF2\110                  PENT,MMX
 mmxreg,mmxreg         \2\x0F\xF2\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x72\206\25               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]
 [PSLLQ]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xF3\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xF3\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF3\110                  PENT,MMX
 mmxreg,mmxreg         \2\x0F\xF3\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x73\206\25               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]
 [PSLLW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xF1\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xF1\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF1\110                  PENT,MMX
 mmxreg,mmxreg         \2\x0F\xF1\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x71\206\25               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]
 [PSRAD]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xE2\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xE2\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xE2\110                  PENT,MMX
 mmxreg,mmxreg         \2\x0F\xE2\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x72\204\25               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]
 [PSRAW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xE1\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xE1\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xE1\110                  PENT,MMX
 mmxreg,mmxreg         \2\x0F\xE1\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x71\204\25               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]
 [PSRLD]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD2\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xD2\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD2\110                  PENT,MMX
 mmxreg,mmxreg         \2\x0F\xD2\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x72\202\25               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]
 [PSRLQ]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD3\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xD3\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD3\110                  PENT,MMX
 mmxreg,mmxreg         \2\x0F\xD3\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x73\202\25               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]
 [PSRLW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD1\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xD1\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD1\110                  PENT,MMX
 mmxreg,mmxreg         \2\x0F\xD1\110                  PENT,MMX
 mmxreg,imm            \2\x0F\x71\202\25               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]
 [PSUBB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xF8\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xF8\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF8\110                  PENT,MMX
 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]
 [PSUBD]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xFA\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xFA\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xFA\110                  PENT,MMX
 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]
 [PSUBSB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xE8\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xE8\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xE8\110                  PENT,MMX
 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]
 [PSUBSIW]
 (Ch_All, Ch_None, Ch_None)
 (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)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xE9\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xE9\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xE9\110                  PENT,MMX
 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]
 [PSUBUSB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD8\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xD8\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD8\110                  PENT,MMX
 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]
 [PSUBUSW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xD9\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xD9\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xD9\110                  PENT,MMX
 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]
 [PSUBW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xF9\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xF9\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xF9\110                  PENT,MMX
 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]
 [PUNPCKHBW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x68\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x68\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x68\110                  PENT,MMX
 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]
 [PUNPCKHDQ]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x6A\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x6A\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x6A\110                  PENT,MMX
 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]
 [PUNPCKHWD]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x69\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x69\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x69\110                  PENT,MMX
 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]
 [PUNPCKLBW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x60\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x60\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x60\110                  PENT,MMX
 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]
 [PUNPCKLDQ]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x62\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x62\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x62\110                  PENT,MMX
 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]
 [PUNPCKLWD]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\x61\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\x61\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\x61\110                  PENT,MMX
 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]
 [PUSH,pushX]
 (Ch_Rop1, Ch_RWESP, Ch_None)
 (Ch_Rop1, Ch_RWESP, Ch_None)
@@ -1771,6 +1884,8 @@ void                  \320\1\x9C                      186
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mem            \301\2\x0F\xEF\110              PENT,MMX,SM
 mmxreg,mem            \301\2\x0F\xEF\110              PENT,MMX,SM
 mmxreg,mmxreg         \2\x0F\xEF\110                  PENT,MMX
 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]
 [RCL,rclX]
 (Ch_Mop2, Ch_Rop1, Ch_RWFlags)
 (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)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xE0\110                  KATMAI,MMX
 mmxreg,mmxreg         \2\x0F\xE0\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xE0\110              KATMAI,MMX,SM
 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]
 [PAVGW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xE3\110                  KATMAI,MMX
 mmxreg,mmxreg         \2\x0F\xE3\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xE3\110              KATMAI,MMX,SM
 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]
 [PEXTRW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 reg32,mmxreg,imm      \2\x0F\xC5\110\22               KATMAI,MMX,SB,AR2
 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]
 [PINSRW]
 (Ch_All, Ch_None, Ch_None)
 (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,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,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
 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]
 [PMAXSW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xEE\110                  KATMAI,MMX
 mmxreg,mmxreg         \2\x0F\xEE\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xEE\110              KATMAI,MMX,SM
 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]
 [PMAXUB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xDE\110                  KATMAI,MMX
 mmxreg,mmxreg         \2\x0F\xDE\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xDE\110              KATMAI,MMX,SM
 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]
 [PMINSW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xEA\110                  KATMAI,MMX
 mmxreg,mmxreg         \2\x0F\xEA\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xEA\110              KATMAI,MMX,SM
 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]
 [PMINUB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xDA\110                  KATMAI,MMX
 mmxreg,mmxreg         \2\x0F\xDA\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xDA\110              KATMAI,MMX,SM
 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]
 [PMOVMSKB]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 reg32,mmxreg          \2\x0F\xD7\110                  KATMAI,MMX
 reg32,mmxreg          \2\x0F\xD7\110                  KATMAI,MMX
+reg32,xmmreg          \3\x66\x0F\xD7\110              WILLAMETTE,SSE2
 
 
 [PMULHUW]
 [PMULHUW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xE4\110                  KATMAI,MMX
 mmxreg,mmxreg         \2\x0F\xE4\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xE4\110              KATMAI,MMX,SM
 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]
 [PSADBW]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 mmxreg,mmxreg         \2\x0F\xF6\110                  KATMAI,MMX
 mmxreg,mmxreg         \2\x0F\xF6\110                  KATMAI,MMX
 mmxreg,mem            \301\2\x0F\xF6\110              KATMAI,MMX,SM
 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]
 [PSHUFW]
 (Ch_All, Ch_None, Ch_None)
 (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
 mmxreg,mem,imm        \301\2\x0F\x70\110\22           KATMAI,MMX,SM2,SB,AR2
 
 
 ;
 ;
-; New K7 Instructions
+; New Athlon Instructions
 ;
 ;
 
 
 [PFNACC]
 [PFNACC]
@@ -2764,3 +2901,419 @@ mmxreg,mmxreg         \2\x0F\x0F\110\01\xBB           PENT,3DNOW,SM
 [FFREEP]
 [FFREEP]
 (Ch_All, Ch_None, Ch_None)
 (Ch_All, Ch_None, Ch_None)
 fpureg                \1\xDF\10\xC0                   PENT,3DNOW,FPU
 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',
 'prefetch',
 'prefetchw',
 'prefetchw',
 'pslld',
 'pslld',
+'pslldq',
 'psllq',
 'psllq',
 'psllw',
 'psllw',
 'psrad',
 'psrad',
@@ -465,5 +466,85 @@
 'pi2fw',
 'pi2fw',
 'pf2iw',
 'pf2iw',
 'pswapd',
 '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 }
 { 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_PREFETCH,
 A_PREFETCHW,
 A_PREFETCHW,
 A_PSLLD,
 A_PSLLD,
+A_PSLLDQ,
 A_PSLLQ,
 A_PSLLQ,
 A_PSLLW,
 A_PSLLW,
 A_PSRAD,
 A_PSRAD,
@@ -465,5 +466,85 @@ A_PFPNACC,
 A_PI2FW,
 A_PI2FW,
 A_PF2IW,
 A_PF2IW,
 A_PSWAPD,
 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_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_Rop1, Ch_RWESP, 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)),
@@ -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)),
+(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))
 );
 );

文件差异内容过多而无法显示
+ 711 - 4
compiler/i386/i386tab.inc


+ 7 - 2
compiler/i386/n386add.pas

@@ -57,7 +57,7 @@ interface
       globtype,systems,
       globtype,systems,
       cutils,verbose,globals,
       cutils,verbose,globals,
       symconst,symdef,paramgr,
       symconst,symdef,paramgr,
-      aasmbase,aasmtai,aasmcpu,types,htypechk,
+      aasmbase,aasmtai,aasmcpu,defbase,htypechk,
       cgbase,pass_2,regvars,
       cgbase,pass_2,regvars,
       cpupara,
       cpupara,
       ncon,nset,
       ncon,nset,
@@ -1573,7 +1573,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.42  2002/07/07 09:52:33  florian
   Revision 1.42  2002/07/07 09:52:33  florian

+ 7 - 2
compiler/i386/n386cal.pas

@@ -51,7 +51,7 @@ implementation
     uses
     uses
       globtype,systems,
       globtype,systems,
       cutils,verbose,globals,
       cutils,verbose,globals,
-      symconst,symbase,symsym,symtable,types,
+      symconst,symbase,symsym,symtable,defbase,
 {$ifdef GDB}
 {$ifdef GDB}
   {$ifdef delphi}
   {$ifdef delphi}
       sysutils,
       sysutils,
@@ -1481,7 +1481,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.58  2002/07/07 09:52:34  florian
   Revision 1.58  2002/07/07 09:52:34  florian

+ 7 - 2
compiler/i386/n386cnv.pas

@@ -27,7 +27,7 @@ unit n386cnv;
 interface
 interface
 
 
     uses
     uses
-      node,ncgcnv,types;
+      node,ncgcnv,defbase;
 
 
     type
     type
        ti386typeconvnode = class(tcgtypeconvnode)
        ti386typeconvnode = class(tcgtypeconvnode)
@@ -365,7 +365,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * internal linker
     * reorganized aasm layer
     * reorganized aasm layer
 
 

+ 7 - 2
compiler/i386/n386inl.pas

@@ -39,7 +39,7 @@ implementation
     uses
     uses
       globtype,systems,
       globtype,systems,
       cutils,verbose,globals,fmodule,
       cutils,verbose,globals,fmodule,
-      symconst,symdef,types,
+      symconst,symdef,defbase,
       aasmbase,aasmtai,aasmcpu,
       aasmbase,aasmtai,aasmcpu,
       cginfo,cgbase,pass_1,pass_2,
       cginfo,cgbase,pass_1,pass_2,
       cpubase,paramgr,
       cpubase,paramgr,
@@ -461,7 +461,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.47  2002/07/07 09:52:34  florian
   Revision 1.47  2002/07/07 09:52:34  florian

+ 7 - 2
compiler/i386/n386mat.pas

@@ -52,7 +52,7 @@ implementation
     uses
     uses
       globtype,systems,
       globtype,systems,
       cutils,verbose,globals,
       cutils,verbose,globals,
-      symconst,symdef,aasmbase,aasmtai,aasmcpu,types,
+      symconst,symdef,aasmbase,aasmtai,aasmcpu,defbase,
       cginfo,cgbase,pass_1,pass_2,
       cginfo,cgbase,pass_1,pass_2,
       ncon,
       ncon,
       cpubase,
       cpubase,
@@ -830,7 +830,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * internal linker
     * reorganized aasm layer
     * reorganized aasm layer
 
 

+ 7 - 2
compiler/i386/n386mem.pas

@@ -50,7 +50,7 @@ implementation
 {$endif}
 {$endif}
       globtype,systems,
       globtype,systems,
       cutils,verbose,globals,
       cutils,verbose,globals,
-      symconst,symtype,symdef,symsym,symtable,types,paramgr,
+      symconst,symtype,symdef,symsym,symtable,defbase,paramgr,
       aasmbase,aasmtai,aasmcpu,
       aasmbase,aasmtai,aasmcpu,
       cginfo,cgbase,pass_2,
       cginfo,cgbase,pass_2,
       pass_1,nld,ncon,nadd,
       pass_1,nld,ncon,nadd,
@@ -520,7 +520,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.36  2002/07/07 09:52:34  florian
   Revision 1.36  2002/07/07 09:52:34  florian

+ 7 - 2
compiler/i386/n386opt.pas

@@ -42,7 +42,7 @@ type
 implementation
 implementation
 
 
 uses
 uses
-  pass_1, types, htypechk,
+  pass_1, defbase, htypechk,
   symdef,paramgr,
   symdef,paramgr,
   aasmbase,aasmtai,aasmcpu,
   aasmbase,aasmtai,aasmcpu,
   ncnv, ncon, pass_2,
   ncnv, ncon, pass_2,
@@ -248,7 +248,12 @@ end.
 
 
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.19  2002/07/07 09:52:34  florian
   Revision 1.19  2002/07/07 09:52:34  florian

+ 7 - 2
compiler/i386/n386set.pas

@@ -44,7 +44,7 @@ implementation
     uses
     uses
       globtype,systems,
       globtype,systems,
       verbose,globals,
       verbose,globals,
-      symconst,symdef,types,
+      symconst,symdef,defbase,
       aasmbase,aasmtai,aasmcpu,
       aasmbase,aasmtai,aasmcpu,
       cginfo,cgbase,pass_2,
       cginfo,cgbase,pass_2,
       ncon,
       ncon,
@@ -1016,7 +1016,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.33  2002/07/06 20:27:26  carl
   Revision 1.33  2002/07/06 20:27:26  carl

+ 7 - 2
compiler/i386/ra386dir.pas

@@ -42,7 +42,7 @@ interface
        { aasm }
        { aasm }
        aasmbase,aasmtai,aasmcpu,
        aasmbase,aasmtai,aasmcpu,
        { symtable }
        { symtable }
-       symconst,symbase,symtype,symsym,symtable,types,paramgr,
+       symconst,symbase,symtype,symsym,symtable,defbase,paramgr,
        { pass 1 }
        { pass 1 }
        nbas,
        nbas,
        { parser }
        { parser }
@@ -304,7 +304,12 @@ initialization
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.19  2002/07/01 18:46:34  peter
   Revision 1.19  2002/07/01 18:46:34  peter

+ 9 - 4
compiler/nadd.pas

@@ -60,7 +60,7 @@ implementation
     uses
     uses
       globtype,systems,
       globtype,systems,
       cutils,verbose,globals,widestr,
       cutils,verbose,globals,widestr,
-      symconst,symtype,symdef,symsym,symtable,types,
+      symconst,symtype,symdef,symsym,symtable,defbase,
       cgbase,
       cgbase,
       htypechk,pass_1,
       htypechk,pass_1,
       nmat,ncnv,ncon,nset,nopt,ncal,ninl,
       nmat,ncnv,ncon,nset,nopt,ncal,ninl,
@@ -1346,7 +1346,7 @@ implementation
          { first do the two subtrees }
          { first do the two subtrees }
          firstpass(left);
          firstpass(left);
          firstpass(right);
          firstpass(right);
-	 
+	
          if codegenerror then
          if codegenerror then
            exit;
            exit;
 
 
@@ -1627,7 +1627,7 @@ implementation
     function Taddnode.track_state_pass(exec_known:boolean):boolean;
     function Taddnode.track_state_pass(exec_known:boolean):boolean;
 
 
     var factval:Tnode;
     var factval:Tnode;
-    
+
     begin
     begin
 	track_state_pass:=false;
 	track_state_pass:=false;
 	if left.track_state_pass(exec_known) then
 	if left.track_state_pass(exec_known) then
@@ -1664,7 +1664,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into
     allows the state tracker to change while nodes automatically into

+ 10 - 5
compiler/nbas.pas

@@ -161,7 +161,7 @@ implementation
     uses
     uses
       cutils,
       cutils,
       verbose,globals,globtype,systems,
       verbose,globals,globtype,systems,
-      symconst,symdef,symsym,types,
+      symconst,symdef,symsym,defbase,
       pass_1,
       pass_1,
       nld,ncal,nflw,rgobj,cgbase
       nld,ncal,nflw,rgobj,cgbase
       ;
       ;
@@ -293,7 +293,7 @@ implementation
            registersmmx:=right.registersmmx;
            registersmmx:=right.registersmmx;
 {$endif}
 {$endif}
       end;
       end;
-      
+
 {$ifdef extdebug}
 {$ifdef extdebug}
     procedure tstatementnode.dowrite;
     procedure tstatementnode.dowrite;
 
 
@@ -438,9 +438,9 @@ implementation
 
 
 {$ifdef state_tracking}
 {$ifdef state_tracking}
       function Tblocknode.track_state_pass(exec_known:boolean):boolean;
       function Tblocknode.track_state_pass(exec_known:boolean):boolean;
-      
+
       var hp:Tstatementnode;
       var hp:Tstatementnode;
-      
+
       begin
       begin
         track_state_pass:=false;
         track_state_pass:=false;
         hp:=Tstatementnode(left);
         hp:=Tstatementnode(left);
@@ -694,7 +694,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into
     allows the state tracker to change while nodes automatically into

+ 11 - 6
compiler/ncal.pas

@@ -129,7 +129,7 @@ implementation
     uses
     uses
       cutils,globtype,systems,
       cutils,globtype,systems,
       verbose,globals,
       verbose,globals,
-      symconst,paramgr,types,
+      symconst,paramgr,defbase,
       htypechk,pass_1,cpuinfo,cpubase,
       htypechk,pass_1,cpuinfo,cpubase,
       ncnv,nld,ninl,nadd,ncon,
       ncnv,nld,ninl,nadd,ncon,
       rgobj,cgbase
       rgobj,cgbase
@@ -774,7 +774,7 @@ implementation
             end;
             end;
            { all types can be passed to a formaldef }
            { all types can be passed to a formaldef }
            is_equal:=(def.deftype=formaldef) or
            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
            { integer constants are compatible with all integer parameters if
              the specified value matches the range }
              the specified value matches the range }
              or
              or
@@ -1223,7 +1223,7 @@ implementation
                                               is_in_limit(def_to,conv_to) then
                                               is_in_limit(def_to,conv_to) then
                                              begin
                                              begin
                                                 { is it the same as the previous best? }
                                                 { 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
                                                   begin
                                                     { no -> remove all previous best matches }
                                                     { no -> remove all previous best matches }
                                                     hp := hp^.next;
                                                     hp := hp^.next;
@@ -1784,10 +1784,10 @@ implementation
 
 
 {$ifdef state_tracking}
 {$ifdef state_tracking}
     function Tcallnode.track_state_pass(exec_known:boolean):boolean;
     function Tcallnode.track_state_pass(exec_known:boolean):boolean;
-    
+
     var hp:Tcallparanode;
     var hp:Tcallparanode;
 	value:Tnode;
 	value:Tnode;
-    
+
     begin
     begin
 	track_state_pass:=false;
 	track_state_pass:=false;
 	hp:=Tcallparanode(left);
 	hp:=Tcallparanode(left);
@@ -1904,7 +1904,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into
     allows the state tracker to change while nodes automatically into

+ 7 - 2
compiler/ncgcal.pas

@@ -51,7 +51,7 @@ implementation
     uses
     uses
       globtype,systems,
       globtype,systems,
       cutils,verbose,globals,
       cutils,verbose,globals,
-      symconst,symbase,symsym,symtable,types,paramgr,
+      symconst,symbase,symsym,symtable,defbase,paramgr,
 {$ifdef GDB}
 {$ifdef GDB}
   {$ifdef delphi}
   {$ifdef delphi}
       sysutils,
       sysutils,
@@ -1499,7 +1499,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * some more generic calling stuff fixed
 
 
   Revision 1.1  2002/07/11 14:41:28  florian
   Revision 1.1  2002/07/11 14:41:28  florian

+ 7 - 2
compiler/ncgcnv.pas

@@ -28,7 +28,7 @@ unit ncgcnv;
 interface
 interface
 
 
     uses
     uses
-       node,ncnv,types;
+       node,ncnv,defbase;
 
 
     type
     type
        tcgtypeconvnode = class(ttypeconvnode)
        tcgtypeconvnode = class(ttypeconvnode)
@@ -490,7 +490,12 @@ end.
 
 
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.19  2002/07/07 09:52:32  florian
   Revision 1.19  2002/07/07 09:52:32  florian

+ 7 - 2
compiler/ncgcon.pas

@@ -65,7 +65,7 @@ implementation
     uses
     uses
       globtype,widestr,systems,
       globtype,widestr,systems,
       verbose,globals,
       verbose,globals,
-      symconst,symdef,aasmbase,aasmtai,types,
+      symconst,symdef,aasmbase,aasmtai,defbase,
       cpuinfo,cpubase,
       cpuinfo,cpubase,
       cginfo,cgbase,tgobj,rgobj;
       cginfo,cgbase,tgobj,rgobj;
 
 
@@ -519,7 +519,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * internal linker
     * reorganized aasm layer
     * reorganized aasm layer
 
 

+ 10 - 5
compiler/ncgflw.pas

@@ -71,7 +71,7 @@ implementation
 
 
     uses
     uses
       verbose,globals,systems,globtype,
       verbose,globals,systems,globtype,
-      symconst,symsym,aasmbase,aasmtai,aasmcpu,types,
+      symconst,symsym,aasmbase,aasmtai,aasmcpu,defbase,
       cginfo,cgbase,pass_2,
       cginfo,cgbase,pass_2,
       cpubase,cpuinfo,
       cpubase,cpuinfo,
       nld,ncon,
       nld,ncon,
@@ -107,7 +107,7 @@ implementation
 	 if not(cs_littlesize in aktglobalswitches) then
 	 if not(cs_littlesize in aktglobalswitches) then
             { align loop target }
             { align loop target }
             exprasmList.concat(Tai_align.Create(aktalignment.loopalign));
             exprasmList.concat(Tai_align.Create(aktalignment.loopalign));
-	    
+	
          cg.a_label(exprasmlist,lloop);
          cg.a_label(exprasmlist,lloop);
 
 
          aktcontinuelabel:=lcont;
          aktcontinuelabel:=lcont;
@@ -133,7 +133,7 @@ implementation
           end;
           end;
          rg.cleartempgen;
          rg.cleartempgen;
          secondpass(left);
          secondpass(left);
-	 
+	
          maketojumpbool(exprasmlist,left,lr_load_regvars);
          maketojumpbool(exprasmlist,left,lr_load_regvars);
          cg.a_label(exprasmlist,lbreak);
          cg.a_label(exprasmlist,lbreak);
          truelabel:=otlabel;
          truelabel:=otlabel;
@@ -631,7 +631,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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 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
     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.
     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
   Revision 1.8  2002/03/04 19:10:11  peter
     * removed compiler warnings
     * removed compiler warnings
 
 
-}
+}

+ 7 - 2
compiler/ncgld.pas

@@ -53,7 +53,7 @@ implementation
     uses
     uses
       systems,
       systems,
       verbose,globals,
       verbose,globals,
-      symconst,symtype,symdef,symsym,symtable,types,paramgr,
+      symconst,symtype,symdef,symsym,symtable,defbase,paramgr,
       ncnv,ncon,nmem,
       ncnv,ncon,nmem,
       aasmbase,aasmtai,aasmcpu,regvars,
       aasmbase,aasmtai,aasmcpu,regvars,
       cginfo,cgbase,pass_2,
       cginfo,cgbase,pass_2,
@@ -922,7 +922,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * threadvar relocation result wasn't handled properly, it could cause
       a crash
       a crash
 
 

+ 7 - 2
compiler/ncgset.pas

@@ -54,7 +54,7 @@ implementation
     uses
     uses
       globtype,systems,
       globtype,systems,
       verbose,globals,
       verbose,globals,
-      symconst,symdef,types,
+      symconst,symdef,defbase,
       paramgr,
       paramgr,
       pass_2,
       pass_2,
       ncon,
       ncon,
@@ -585,7 +585,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.4  2002/07/07 10:16:29  florian
   Revision 1.4  2002/07/07 10:16:29  florian

+ 7 - 2
compiler/ncgutil.pas

@@ -75,7 +75,7 @@ implementation
     strings,
     strings,
 {$endif}
 {$endif}
     cutils,cclasses,globtype,globals,systems,verbose,
     cutils,cclasses,globtype,globals,systems,verbose,
-    symbase,symconst,symtype,symsym,symdef,symtable,types,paramgr,
+    symbase,symconst,symtype,symsym,symdef,symtable,defbase,paramgr,
     fmodule,
     fmodule,
     cgbase,regvars,
     cgbase,regvars,
 {$ifdef GDB}
 {$ifdef GDB}
@@ -1629,7 +1629,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.21  2002/07/11 07:33:25  jonas
   Revision 1.21  2002/07/11 07:33:25  jonas

+ 7 - 2
compiler/ncnv.pas

@@ -28,7 +28,7 @@ interface
 
 
     uses
     uses
        node,
        node,
-       symtype,types,
+       symtype,defbase,
        nld;
        nld;
 
 
     type
     type
@@ -1755,7 +1755,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * cg64 patch
     * basics for currency
     * basics for currency
     * asnode updates for class and interface (not finished)
     * asnode updates for class and interface (not finished)

+ 8 - 3
compiler/ncon.pas

@@ -150,7 +150,7 @@ implementation
 
 
     uses
     uses
       cutils,verbose,systems,
       cutils,verbose,systems,
-      types,cpubase,nld;
+      defbase,cpubase,nld;
 
 
     function genintconstnode(v : TConstExprInt) : tordconstnode;
     function genintconstnode(v : TConstExprInt) : tordconstnode;
 
 
@@ -403,7 +403,7 @@ implementation
 
 
 {$ifdef extdebug}
 {$ifdef extdebug}
     procedure Tordconstnode.dowrite;
     procedure Tordconstnode.dowrite;
-    
+
     begin
     begin
 	inherited dowrite;
 	inherited dowrite;
 	write('[',value,']');
 	write('[',value,']');
@@ -733,7 +733,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
   + Added the beginning of a state tracker. This will track the values of
     variables through procedures and optimize things away.
     variables through procedures and optimize things away.
 
 

+ 11 - 6
compiler/nflw.pas

@@ -184,7 +184,7 @@ implementation
     uses
     uses
       globtype,systems,
       globtype,systems,
       cutils,verbose,globals,
       cutils,verbose,globals,
-      symconst,symtable,paramgr,types,htypechk,pass_1,
+      symconst,symtable,paramgr,defbase,htypechk,pass_1,
       ncon,nmem,nld,ncnv,nbas,rgobj,
       ncon,nmem,nld,ncnv,nbas,rgobj,
     {$ifdef state_tracking}
     {$ifdef state_tracking}
       nstate,
       nstate,
@@ -203,7 +203,7 @@ implementation
                p:=cifnode.create(l,r,n1);
                p:=cifnode.create(l,r,n1);
 	    whilerepeatn:
 	    whilerepeatn:
     	       if back then
     	       if back then
-	          {Repeat until.}	        
+	          {Repeat until.}	
         	  p:=cwhilerepeatnode.create(l,r,n1,false,true)
         	  p:=cwhilerepeatnode.create(l,r,n1,false,true)
 	       else
 	       else
 	          {While do.}
 	          {While do.}
@@ -363,7 +363,7 @@ implementation
 
 
 {$ifdef state_tracking}
 {$ifdef state_tracking}
     function Twhilerepeatnode.track_state_pass(exec_known:boolean):boolean;
     function Twhilerepeatnode.track_state_pass(exec_known:boolean):boolean;
-    
+
     var condition:Tnode;
     var condition:Tnode;
 	code:Tnode;
 	code:Tnode;
 	done:boolean;
 	done:boolean;
@@ -371,7 +371,7 @@ implementation
 	change:boolean;
 	change:boolean;
 	firsttest:boolean;
 	firsttest:boolean;
 	factval:Tnode;
 	factval:Tnode;
-    
+
     begin
     begin
 	track_state_pass:=false;
 	track_state_pass:=false;
 	done:=false;
 	done:=false;
@@ -434,7 +434,7 @@ implementation
 	    begin
 	    begin
 	        ...
 	        ...
 	    end;
 	    end;
-	 
+	
 	 When the loop is done, we do know that i<10 = false.
 	 When the loop is done, we do know that i<10 = false.
 	}
 	}
 	condition:=left.getcopy;
 	condition:=left.getcopy;
@@ -1246,7 +1246,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
   * Small mistake fixed; the skip test was done before we know the for node
     is correct.
     is correct.
 
 

+ 7 - 2
compiler/ninl.pas

@@ -57,7 +57,7 @@ implementation
     uses
     uses
       verbose,globals,systems,
       verbose,globals,systems,
       globtype, cutils,
       globtype, cutils,
-      symbase,symconst,symtype,symdef,symsym,symtable,paramgr,types,
+      symbase,symconst,symtype,symdef,symsym,symtable,paramgr,defbase,
       pass_1,
       pass_1,
       ncal,ncon,ncnv,nadd,nld,nbas,nflw,nmem,nmat,
       ncal,ncon,ncnv,nadd,nld,nbas,nflw,nmem,nmat,
       cpubase,tgobj,cgbase
       cpubase,tgobj,cgbase
@@ -2265,7 +2265,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.77  2002/06/06 18:53:53  jonas
   Revision 1.77  2002/06/06 18:53:53  jonas

+ 11 - 6
compiler/nld.pas

@@ -131,7 +131,7 @@ implementation
 
 
     uses
     uses
       cutils,verbose,globtype,globals,systems,
       cutils,verbose,globtype,globals,systems,
-      symtable,paramgr,types,
+      symtable,paramgr,defbase,
       htypechk,pass_1,
       htypechk,pass_1,
       ncon,ninl,ncnv,nmem,ncal,cpubase,rgobj,cginfo,cgbase
       ncon,ninl,ncnv,nmem,ncal,cpubase,rgobj,cginfo,cgbase
       ;
       ;
@@ -406,7 +406,7 @@ implementation
 
 
 {$ifdef extdebug}
 {$ifdef extdebug}
     procedure Tloadnode.dowrite;
     procedure Tloadnode.dowrite;
-    
+
     begin
     begin
 	inherited dowrite;
 	inherited dowrite;
 	write('[',symtableentry.name,']');
 	write('[',symtableentry.name,']');
@@ -565,8 +565,8 @@ implementation
 
 
 
 
     function tassignmentnode.pass_1 : tnode;
     function tassignmentnode.pass_1 : tnode;
-    
-    
+
+
       begin
       begin
          result:=nil;
          result:=nil;
 
 
@@ -591,7 +591,7 @@ implementation
 
 
 {$ifdef state_tracking}
 {$ifdef state_tracking}
     function Tassignmentnode.track_state_pass(exec_known:boolean):boolean;
     function Tassignmentnode.track_state_pass(exec_known:boolean):boolean;
-    
+
     var se:Tstate_entry;
     var se:Tstate_entry;
 
 
     begin
     begin
@@ -995,7 +995,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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}
   * Forgot to add a {$ifdef extdebug}
 
 
   Revision 1.47  2002/07/19 12:55:27  daniel
   Revision 1.47  2002/07/19 12:55:27  daniel

+ 9 - 4
compiler/nmat.pas

@@ -77,7 +77,7 @@ implementation
       systems,tokens,
       systems,tokens,
       verbose,globals,cutils,
       verbose,globals,cutils,
       globtype,
       globtype,
-      symconst,symtype,symtable,symdef,types,
+      symconst,symtype,symtable,symdef,defbase,
       htypechk,pass_1,cpubase,
       htypechk,pass_1,cpubase,
       cgbase,
       cgbase,
       ncon,ncnv,ncal,nadd;
       ncon,ncnv,ncal,nadd;
@@ -696,10 +696,10 @@ implementation
               location.loc:=LOC_REGISTER;
               location.loc:=LOC_REGISTER;
            end
            end
       end;
       end;
-      
+
 {$ifdef state_tracking}
 {$ifdef state_tracking}
     function Tnotnode.track_state_pass(exec_known:boolean):boolean;
     function Tnotnode.track_state_pass(exec_known:boolean):boolean;
-    
+
     begin
     begin
 	track_state_pass:=true;
 	track_state_pass:=true;
 	if left.track_state_pass(exec_known) then
 	if left.track_state_pass(exec_known) then
@@ -718,7 +718,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into
     allows the state tracker to change while nodes automatically into

+ 7 - 2
compiler/nmem.pas

@@ -131,7 +131,7 @@ implementation
     uses
     uses
       globtype,systems,
       globtype,systems,
       cutils,verbose,globals,
       cutils,verbose,globals,
-      symconst,symbase,types,
+      symconst,symbase,defbase,
       nbas,
       nbas,
       htypechk,pass_1,ncal,nld,ncon,ncnv,cgbase
       htypechk,pass_1,ncal,nld,ncon,ncnv,cgbase
       ;
       ;
@@ -894,7 +894,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * readded missing revisions
 
 
   Revision 1.32  2002/05/16 19:46:39  carl
   Revision 1.32  2002/05/16 19:46:39  carl

+ 7 - 2
compiler/nobj.pas

@@ -135,7 +135,7 @@ implementation
        strings,
        strings,
 {$endif}
 {$endif}
        globtype,globals,verbose,
        globtype,globals,verbose,
-       symtable,symconst,symtype,symsym,types,
+       symtable,symconst,symtype,symsym,defbase,
 {$ifdef GDB}
 {$ifdef GDB}
        gdb,
        gdb,
 {$endif GDB}
 {$endif GDB}
@@ -1269,7 +1269,12 @@ initialization
 end.
 end.
 {
 {
   $Log$
   $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
     * internal linker
     * reorganized aasm layer
     * reorganized aasm layer
 
 

+ 7 - 3
compiler/nopt.pas

@@ -84,7 +84,7 @@ var
 
 
 implementation
 implementation
 
 
-uses cutils, htypechk, types, globtype, globals, cpubase, ncnv, ncon,
+uses cutils, htypechk, defbase, globtype, globals, cpubase, ncnv, ncon,
      verbose, symdef, cgbase;
      verbose, symdef, cgbase;
 
 
 
 
@@ -278,7 +278,12 @@ end.
 
 
 {
 {
   $Log$
   $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
     * readded missing revisions
 
 
   Revision 1.8  2002/05/16 19:46:39  carl
   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
       (this is compatible with Kylix). This saves a lot of push/pop especially
       with string operations
       with string operations
     * adapted some routines to use the new cg methods
     * adapted some routines to use the new cg methods
-
 }
 }

+ 8 - 3
compiler/nset.pas

@@ -111,7 +111,7 @@ implementation
     uses
     uses
       globtype,systems,
       globtype,systems,
       verbose,
       verbose,
-      symconst,symdef,symsym,types,
+      symconst,symdef,symsym,defbase,
       htypechk,pass_1,
       htypechk,pass_1,
       ncnv,ncon,cpubase,nld,rgobj,cgbase;
       ncnv,ncon,cpubase,nld,rgobj,cgbase;
 
 
@@ -277,7 +277,7 @@ implementation
       begin
       begin
          result:=nil;
          result:=nil;
          location.loc:=LOC_REGISTER;
          location.loc:=LOC_REGISTER;
-         
+
          firstpass(right);
          firstpass(right);
          firstpass(left);
          firstpass(left);
          if codegenerror then
          if codegenerror then
@@ -578,7 +578,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
   + generic set handling
 
 
   Revision 1.25  2002/07/01 18:46:24  peter
   Revision 1.25  2002/07/01 18:46:24  peter

+ 8 - 3
compiler/paramgr.pas

@@ -62,7 +62,7 @@ unit paramgr;
     uses
     uses
        cpuinfo,
        cpuinfo,
        symconst,symbase,
        symconst,symbase,
-       types;
+       defbase;
 
 
     { true if the return value is in accumulator (EAX for i386), D0 for 68k }
     { true if the return value is in accumulator (EAX for i386), D0 for 68k }
     function tparamanager.ret_in_acc(def : tdef) : boolean;
     function tparamanager.ret_in_acc(def : tdef) : boolean;
@@ -132,7 +132,12 @@ end.
 
 
 {
 {
    $Log$
    $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
      * some more generic calling stuff fixed
 
 
    Revision 1.2  2002/07/13 07:17:15  jonas
    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
    Revision 1.1  2002/07/11 14:41:28  florian
      * start of the new generic parameter handling
      * start of the new generic parameter handling
-}
+}

+ 7 - 2
compiler/pdecobj.pas

@@ -37,7 +37,7 @@ implementation
     uses
     uses
       cutils,cclasses,
       cutils,cclasses,
       globals,verbose,systems,tokens,
       globals,verbose,systems,tokens,
-      symconst,symbase,symsym,symtable,types,
+      symconst,symbase,symsym,symtable,defbase,
       cgbase,
       cgbase,
       node,nld,nmem,ncon,ncnv,ncal,pass_1,
       node,nld,nmem,ncon,ncnv,ncal,pass_1,
       scanner,
       scanner,
@@ -1133,7 +1133,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * cg64 patch
     * basics for currency
     * basics for currency
     * asnode updates for class and interface (not finished)
     * asnode updates for class and interface (not finished)

+ 7 - 2
compiler/pdecsub.pas

@@ -71,7 +71,7 @@ implementation
        { aasm }
        { aasm }
        aasmbase,aasmtai,aasmcpu,
        aasmbase,aasmtai,aasmcpu,
        { symtable }
        { symtable }
-       symbase,symtable,types,paramgr,
+       symbase,symtable,defbase,paramgr,
        { pass 1 }
        { pass 1 }
        node,htypechk,
        node,htypechk,
        nmat,nadd,ncal,nset,ncnv,ninl,ncon,nld,nflw,
        nmat,nadd,ncal,nset,ncnv,ninl,ncon,nld,nflw,
@@ -1957,7 +1957,12 @@ const
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.58  2002/07/01 18:46:25  peter
   Revision 1.58  2002/07/01 18:46:25  peter

+ 7 - 2
compiler/pdecvar.pas

@@ -39,7 +39,7 @@ implementation
        globtype,globals,tokens,verbose,
        globtype,globals,tokens,verbose,
        systems,
        systems,
        { symtable }
        { symtable }
-       symconst,symbase,symtype,symdef,symsym,symtable,types,fmodule,
+       symconst,symbase,symtype,symdef,symsym,symtable,defbase,fmodule,
        { pass 1 }
        { pass 1 }
        node,
        node,
        nmat,nadd,ncal,nset,ncnv,ninl,ncon,nld,nflw,
        nmat,nadd,ncal,nset,ncnv,ninl,ncon,nld,nflw,
@@ -583,7 +583,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * fixed bug 1985
 
 
   Revision 1.26  2002/05/18 13:34:12  peter
   Revision 1.26  2002/05/18 13:34:12  peter

+ 7 - 2
compiler/pexpr.pas

@@ -68,7 +68,7 @@ implementation
        globtype,tokens,verbose,
        globtype,tokens,verbose,
        systems,widestr,
        systems,widestr,
        { symtable }
        { symtable }
-       symconst,symbase,symdef,symsym,symtable,types,
+       symconst,symbase,symdef,symsym,symtable,defbase,
        { pass 1 }
        { pass 1 }
        pass_1,htypechk,
        pass_1,htypechk,
        nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,nbas,
        nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,nbas,
@@ -2251,7 +2251,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * exit is now a syssym instead of a keyword
 
 
   Revision 1.70  2002/07/06 20:18:02  carl
   Revision 1.70  2002/07/06 20:18:02  carl

+ 7 - 2
compiler/pinline.pas

@@ -51,7 +51,7 @@ implementation
        globtype,tokens,verbose,
        globtype,tokens,verbose,
        systems,
        systems,
        { symtable }
        { symtable }
-       symconst,symdef,symsym,symtable,types,
+       symconst,symdef,symsym,symtable,defbase,
        { pass 1 }
        { pass 1 }
        pass_1,htypechk,
        pass_1,htypechk,
        nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,nbas,
        nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,nbas,
@@ -565,7 +565,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * readded missing revisions
 
 
   Revision 1.4  2002/05/16 19:46:43  carl
   Revision 1.4  2002/05/16 19:46:43  carl

+ 7 - 2
compiler/powerpc/nppccnv.pas

@@ -27,7 +27,7 @@ unit nppccnv;
 interface
 interface
 
 
     uses
     uses
-      node,ncnv,ncgcnv,types;
+      node,ncnv,ncgcnv,defbase;
 
 
     type
     type
        tppctypeconvnode = class(tcgtypeconvnode)
        tppctypeconvnode = class(tcgtypeconvnode)
@@ -377,7 +377,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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
     * fixed fpu constants in second_int_to_real (fpu values are also stored
       in big endian)
       in big endian)
 
 

+ 10 - 5
compiler/powerpc/nppcmat.pas

@@ -53,7 +53,7 @@ implementation
       cutils,verbose,globals,
       cutils,verbose,globals,
       symconst,symdef,
       symconst,symdef,
       aasmbase,aasmcpu,aasmtai,
       aasmbase,aasmcpu,aasmtai,
-      types,
+      defbase,
       cgbase,cgobj,pass_1,pass_2,
       cgbase,cgobj,pass_1,pass_2,
       ncon,
       ncon,
       cpubase,cpuinfo,cginfo,
       cpubase,cpuinfo,cginfo,
@@ -91,7 +91,7 @@ implementation
          numerator := location.register;
          numerator := location.register;
          resultreg := location.register;
          resultreg := location.register;
          if (location.loc = LOC_CREGISTER) then
          if (location.loc = LOC_CREGISTER) then
-           begin 
+           begin
              location.loc := LOC_REGISTER;
              location.loc := LOC_REGISTER;
              location.register := rg.getregisterint(exprasmlist);
              location.register := rg.getregisterint(exprasmlist);
              resultreg := location.register;
              resultreg := location.register;
@@ -295,7 +295,7 @@ implementation
                  resultreg := rg.getregisterint(exprasmlist);
                  resultreg := rg.getregisterint(exprasmlist);
                  location.register := resultreg;
                  location.register := resultreg;
                end;
                end;
-              
+
               { determine operator }
               { determine operator }
               if nodetype=shln then
               if nodetype=shln then
                 op:=OP_SHL
                 op:=OP_SHL
@@ -454,7 +454,7 @@ implementation
                   location_reset(location,LOC_FLAGS,OS_NO);
                   location_reset(location,LOC_FLAGS,OS_NO);
                   location.resflags.cr:=r_cr0;
                   location.resflags.cr:=r_cr0;
                   location.resflags.flag:=F_EQ;
                   location.resflags.flag:=F_EQ;
-               end;  
+               end;
             end;
             end;
           end
           end
          else if is_64bitint(left.resulttype.def) then
          else if is_64bitint(left.resulttype.def) then
@@ -489,7 +489,12 @@ begin
 end.
 end.
 {
 {
   $Log$
   $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 tppcmoddivnode
     * fixed 64bit parts of tppcshlshrnode
     * fixed 64bit parts of tppcshlshrnode
 
 

+ 7 - 2
compiler/pstatmnt.pas

@@ -46,7 +46,7 @@ implementation
        { aasm }
        { aasm }
        cpubase,aasmbase,aasmtai,aasmcpu,
        cpubase,aasmbase,aasmtai,aasmcpu,
        { symtable }
        { symtable }
-       symconst,symbase,symtype,symdef,symsym,symtable,types,paramgr,
+       symconst,symbase,symtype,symdef,symsym,symtable,defbase,paramgr,
        { pass 1 }
        { pass 1 }
        pass_1,htypechk,
        pass_1,htypechk,
        nbas,nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,
        nbas,nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,
@@ -1231,7 +1231,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into
     allows the state tracker to change while nodes automatically into

+ 7 - 2
compiler/psub.pas

@@ -46,7 +46,7 @@ implementation
        { aasm }
        { aasm }
        cpubase,cpuinfo,aasmbase,aasmtai,
        cpubase,cpuinfo,aasmbase,aasmtai,
        { symtable }
        { symtable }
-       symconst,symbase,symdef,symsym,symtype,symtable,types,paramgr,
+       symconst,symbase,symdef,symsym,symtype,symtable,defbase,paramgr,
        ppu,fmodule,
        ppu,fmodule,
        { pass 1 }
        { pass 1 }
        node,
        node,
@@ -831,7 +831,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
   * State tracker work
   * The whilen and repeatn are now completely unified into whilerepeatn. This
   * The whilen and repeatn are now completely unified into whilerepeatn. This
     allows the state tracker to change while nodes automatically into
     allows the state tracker to change while nodes automatically into

+ 7 - 2
compiler/ptconst.pas

@@ -43,7 +43,7 @@ implementation
 {$endif Delphi}
 {$endif Delphi}
        globtype,systems,tokens,
        globtype,systems,tokens,
        cutils,globals,widestr,scanner,
        cutils,globals,widestr,scanner,
-       symconst,symbase,symdef,aasmbase,aasmtai,aasmcpu,types,verbose,
+       symconst,symbase,symdef,aasmbase,aasmtai,aasmcpu,defbase,verbose,
        { pass 1 }
        { pass 1 }
        node,
        node,
        nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,
        nmat,nadd,ncal,nmem,nset,ncnv,ninl,ncon,nld,nflw,
@@ -971,7 +971,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * internal linker
     * reorganized aasm layer
     * reorganized aasm layer
 
 

+ 7 - 2
compiler/ptype.pas

@@ -60,7 +60,7 @@ implementation
        globals,tokens,verbose,
        globals,tokens,verbose,
        systems,
        systems,
        { symtable }
        { symtable }
-       symconst,symbase,symdef,symsym,symtable,types,
+       symconst,symbase,symdef,symsym,symtable,defbase,
        { pass 1 }
        { pass 1 }
        node,
        node,
        nmat,nadd,ncal,nset,ncnv,ninl,ncon,nld,nflw,
        nmat,nadd,ncal,nset,ncnv,ninl,ncon,nld,nflw,
@@ -631,7 +631,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * readded missing revisions
 
 
   Revision 1.40  2002/05/16 19:46:44  carl
   Revision 1.40  2002/05/16 19:46:44  carl

+ 7 - 2
compiler/rautils.pas

@@ -216,7 +216,7 @@ uses
 {$else}
 {$else}
   strings,
   strings,
 {$endif}
 {$endif}
-  types,systems,verbose,globals,
+  defbase,systems,verbose,globals,
   symsym,symtable,paramgr,
   symsym,symtable,paramgr,
   aasmcpu,
   aasmcpu,
   cpuinfo,cgbase;
   cpuinfo,cgbase;
@@ -1592,7 +1592,12 @@ end;
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.36  2002/07/01 18:46:25  peter
   Revision 1.36  2002/07/01 18:46:25  peter

+ 7 - 2
compiler/regvars.pas

@@ -48,7 +48,7 @@ implementation
     uses
     uses
       globtype,systems,comphook,
       globtype,systems,comphook,
       cutils,cclasses,verbose,globals,
       cutils,cclasses,verbose,globals,
-      symconst,symbase,symtype,symdef,paramgr,types,
+      symconst,symbase,symtype,symdef,paramgr,defbase,
       cgbase,cgobj,cgcpu,rgcpu;
       cgbase,cgobj,cgcpu,rgcpu;
 
 
 
 
@@ -464,7 +464,12 @@ end.
 
 
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.35  2002/07/01 18:46:25  peter
   Revision 1.35  2002/07/01 18:46:25  peter

+ 7 - 2
compiler/symdef.pas

@@ -723,7 +723,7 @@ implementation
        systems,
        systems,
        { symtable }
        { symtable }
        symsym,symtable,paramgr,
        symsym,symtable,paramgr,
-       types,
+       defbase,
        { module }
        { module }
 {$ifdef GDB}
 {$ifdef GDB}
        gdb,
        gdb,
@@ -5482,7 +5482,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.82  2002/07/07 09:52:32  florian
   Revision 1.82  2002/07/07 09:52:32  florian

+ 7 - 2
compiler/symsym.pas

@@ -357,7 +357,7 @@ implementation
        { target }
        { target }
        systems,
        systems,
        { symtable }
        { symtable }
-       symtable,types,
+       symtable,defbase,
 {$ifdef GDB}
 {$ifdef GDB}
        gdb,
        gdb,
 {$endif GDB}
 {$endif GDB}
@@ -2517,7 +2517,12 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $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
     * start of the new generic parameter handling
 
 
   Revision 1.41  2002/07/10 07:24:40  jonas
   Revision 1.41  2002/07/10 07:24:40  jonas

部分文件因为文件数量过多而无法显示