Browse Source

+ cpuid,emms support for asm readers

peter 27 years ago
parent
commit
73b85611a9
2 changed files with 16 additions and 7 deletions
  1. 5 1
      compiler/daopt386.pas
  2. 11 6
      compiler/i386.pas

+ 5 - 1
compiler/daopt386.pas

@@ -552,6 +552,7 @@ Const AsmInstr: Array[tasmop] Of TAsmInstrucProp = (
 {FIDIVRS}(Ch: (C_FPU, C_None, C_None)),
   {REPE} (Ch: (C_RWECX, C_RFlags, C_None)),
  {REPNE} (Ch: (C_RWECX, C_RFlags, C_None)),
+ {CPUID} (Ch: (C_All, C_None, C_none)),
  {FADDS} (Ch: (C_FPU, C_None, C_None)),
  {POPFD} (Ch: (C_RWESP, C_WFlags, C_None)),
 {below are the MMX instructions}
@@ -2007,7 +2008,10 @@ End.
 
 {
  $Log$
- Revision 1.23  1998-11-09 19:40:46  jonas
+ Revision 1.24  1998-11-13 10:13:44  peter
+   + cpuid,emms support for asm readers
+
+ Revision 1.23  1998/11/09 19:40:46  jonas
    * fixed comments from last commit (apparently there's still a 255 char limit :( )
 
  Revision 1.22  1998/11/09 19:33:40  jonas

+ 11 - 6
compiler/i386.pas

@@ -76,7 +76,7 @@ unit i386;
          A_FISUBL,A_FSUBL,A_FISUBS,A_FSUBS,A_FSUBR,A_FSUBRS,A_FISUBRL,
          A_FSUBRL,A_FISUBRS,A_FMULS,A_FIMULL,A_FMULL,A_FIMULS,A_FDIVS,A_FIDIVL,
          A_FDIVL,A_FIDIVS,A_FDIVRS,A_FIDIVRL,A_FDIVRL,A_FIDIVRS,
-         A_REPE,A_REPNE,A_FADDS,A_POPFD,
+         A_REPE,A_REPNE,A_CPUID,A_FADDS,A_POPFD,
          { MMX instructions: }
          A_EMMS,A_MOVD,A_MOVQ,A_PACKSSDW,A_PACKSSWB,A_PACKUSWB,
          A_PADDB,A_PADDD,A_PADDSB,A_PADDSW,A_PADDUSB,A_PADDUSW,
@@ -443,7 +443,7 @@ unit i386;
        ins_cache : tins_cache;
 
     const
-       it : array[0..440] of ttemplate = (
+       it : array[0..442] of ttemplate = (
          (i : A_MOV;ops : 2;oc : $a0;eb : ao_none;m : af_dw or NoModrm;o1 : ao_disp32;o2 : ao_acc;o3 : 0 ),
          (i : A_MOV;ops : 2;oc : $88;eb : ao_none;m : af_dw or Modrm;o1 : ao_reg;o2 : ao_reg or ao_mem;o3 : 0 ),
          (i : A_MOV;ops : 2;oc : $b0;eb : ao_none;m : ShortFormW;o1 : ao_imm;o2 : ao_reg;o3 : 0 ),
@@ -905,6 +905,8 @@ unit i386;
          (i : A_REP;ops : 0;oc : $f3;eb : ao_none;m : NoModrm;o1 : 0;o2 : 0;o3 : 0),
          (i : A_REPE;ops : 0;oc : $f3;eb : ao_none;m : NoModrm;o1 : 0;o2 : 0;o3 : 0),
          (i : A_REPNE;ops : 0;oc : $f2;eb : ao_none;m : NoModrm;o1 : 0;o2 : 0;o3 : 0),
+         (i : A_CPUID;ops : 0;oc : $0fa2;eb : ao_none;m : NoModrm;o1 : 0;o2 : 0;o3 : 0),
+         (i : A_EMMS;ops : 0;oc : $0f77;eb : ao_none;m : NoModrm;o1 : 0;o2 : 0;o3 : 0),
          (i : A_NONE));
 
 {****************************************************************************
@@ -955,7 +957,7 @@ unit i386;
         'fiaddl','faddl','fiadds','fisubl','fsubl','fisubs','fsubs',
         'fsubr','fsubrs','fisubrl','fsubrl','fisubrs','fmuls','fimull',
         'fmull','fimuls','fdivs','fidivl','fdivl','fidivs','fdivrs',
-        'fidivrl','fdivrl','fidivrs','repe','repne','fadds','popfl',
+        'fidivrl','fdivrl','fidivrs','repe','repne','cpuid','fadds','popfl',
         { mmx instructions supported by GNU AS v281 }
         'emms','movd','movq','packssdw','packsswb','packuswb',
         'paddb','paddd','paddsb','paddsw','paddusb','paddusw',
@@ -989,7 +991,7 @@ unit i386;
         'fild','cmp','jz','inc','dec','sete','setne','setl',
         'setg','setle','setge','je','jne','jl','jg','jle','jge',
         'or','fld','fadd','fmul','fsub','fdiv','fchs','fld1',
-        'fidiv','cdq','jnz','fstp','and','jno','','',
+        'fidiv','cltd','jnz','fstp','and','jno','','',
         'enter','leave','cld','movs','rep','shl','shr','bound',
         'jns','js','jo','sar','test',
         'fcom','fcomp','fcompp','fxch','faddp','fmulp','fsubrp','fdivp',
@@ -1026,7 +1028,7 @@ unit i386;
         'fiadd','fadd','fiadd','fisub','fsub','fisub','fsub',
         'fsubr','fsubr','fisubr','fsubr','fisubr','fmul','fimul',
         'fmul','fimul','fdiv','fidiv','fdiv','fidiv','fdivr',
-        'fidivr','fdivr','fidivr','repe','repne','fadd','popfd',
+        'fidivr','fdivr','fidivr','repe','repne','cpuid','fadd','popfd',
         { mmx instructions }
         'emms','movd','movq','packssdw','packsswb','packuswb',
         'paddb','paddd','paddsb','paddsw','paddusb','paddusw',
@@ -1725,7 +1727,10 @@ unit i386;
 end.
 {
   $Log$
-  Revision 1.15  1998-11-05 23:48:20  peter
+  Revision 1.16  1998-11-13 10:13:46  peter
+    + cpuid,emms support for asm readers
+
+  Revision 1.15  1998/11/05 23:48:20  peter
     * recordtype.field support in constant expressions
     * fixed imul for oa_imm8 which was not allowed
     * fixed reading of local typed constants