Bläddra i källkod

* iret, lret fixes

peter 24 år sedan
förälder
incheckning
c72d1f4c76
4 ändrade filer med 26 tillägg och 18 borttagningar
  1. 15 7
      compiler/i386/cpubase.pas
  2. 3 3
      compiler/i386/i386att.inc
  3. 3 3
      compiler/i386/i386atts.inc
  4. 5 5
      compiler/i386/i386ins.dat

+ 15 - 7
compiler/i386/cpubase.pas

@@ -167,7 +167,7 @@ const
   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  = 
+  IF_PMASK  =
      longint($FF000000);  { the mask for processor types  }
   IF_PFMASK =
      longint($F001FF00);  { the mask for disassembly "prefer"  }
@@ -238,7 +238,8 @@ type
   topsize = (S_NO,
     S_B,S_W,S_L,S_BW,S_BL,S_WL,
     S_IS,S_IL,S_IQ,
-    S_FS,S_FL,S_FX,S_D,S_Q,S_FV
+    S_FS,S_FL,S_FX,S_D,S_Q,S_FV,
+    S_NEAR,S_FAR,S_SHORT
   );
 
 const
@@ -247,17 +248,20 @@ const
     (OT_NONE,
      OT_BITS8,OT_BITS16,OT_BITS32,OT_BITS16,OT_BITS32,OT_BITS32,
      OT_BITS16,OT_BITS32,OT_BITS64,
-     OT_BITS32,OT_BITS64,OT_BITS80,OT_BITS64,OT_BITS64,OT_BITS64
+     OT_BITS32,OT_BITS64,OT_BITS80,OT_BITS64,OT_BITS64,OT_BITS64,
+     OT_NEAR,OT_FAR,OT_SHORT
     ),
     (OT_NONE,
      OT_BITS8,OT_BITS16,OT_BITS32,OT_BITS8,OT_BITS8,OT_BITS16,
      OT_BITS16,OT_BITS32,OT_BITS64,
-     OT_BITS32,OT_BITS64,OT_BITS80,OT_BITS64,OT_BITS64,OT_BITS64
+     OT_BITS32,OT_BITS64,OT_BITS80,OT_BITS64,OT_BITS64,OT_BITS64,
+     OT_NEAR,OT_FAR,OT_SHORT
     ),
     (OT_NONE,
      OT_BITS8,OT_BITS16,OT_BITS32,OT_NONE,OT_NONE,OT_NONE,
      OT_BITS16,OT_BITS32,OT_BITS64,
-     OT_BITS32,OT_BITS64,OT_BITS80,OT_BITS64,OT_BITS64,OT_BITS64
+     OT_BITS32,OT_BITS64,OT_BITS80,OT_BITS64,OT_BITS64,OT_BITS64,
+     OT_NEAR,OT_FAR,OT_SHORT
     )
   );
 
@@ -265,7 +269,8 @@ const
   att_opsize2str : array[topsize] of string[2] = ('',
     'b','w','l','bw','bl','wl',
     's','l','q',
-    's','l','t','d','q','v'
+    's','l','t','d','q','v',
+    '','',''
   );
 {$endif}
 
@@ -919,7 +924,10 @@ end;
 end.
 {
   $Log$
-  Revision 1.2  2000-12-07 17:19:45  jonas
+  Revision 1.3  2001-02-20 21:34:04  peter
+    * iret, lret fixes
+
+  Revision 1.2  2000/12/07 17:19:45  jonas
     * new constant handling: from now on, hex constants >$7fffffff are
       parsed as unsigned constants (otherwise, $80000000 got sign extended
       and became $ffffffff80000000), all constants in the longint range

+ 3 - 3
compiler/i386/i386att.inc

@@ -158,7 +158,7 @@
 'invd',
 'invlpg',
 'iret',
-'iretd',
+'iret',
 'iretw',
 'jcxz',
 'jecxz',
@@ -311,8 +311,8 @@
 'repnz',
 'repz',
 'ret',
-'retf',
-'retn',
+'lret',
+'ret',
 'rol',
 'ror',
 'rsdc',

+ 3 - 3
compiler/i386/i386atts.inc

@@ -310,9 +310,9 @@ attsufNONE,
 attsufNONE,
 attsufNONE,
 attsufNONE,
-attsufINT,
-attsufINT,
-attsufINT,
+attsufNONE,
+attsufNONE,
+attsufNONE,
 attsufINT,
 attsufINT,
 attsufNONE,

+ 5 - 5
compiler/i386/i386ins.dat

@@ -948,7 +948,7 @@ mem                   \300\2\x0F\x01\207              486,PRIV
 (Ch_All, Ch_None, Ch_None)
 void                  \322\1\xCF                      8086
 
-[IRETD]
+[IRETD,iret]
 (Ch_All, Ch_None, Ch_None)
 void                  \321\1\xCF                      386
 
@@ -1832,17 +1832,17 @@ void                  \1\xF2                          8086,PRE
 (Ch_RWECX, Ch_RWFLAGS, Ch_None)
 void                  \1\xF3                          8086,PRE
 
-[RET,retX]
+[RET]
 (Ch_All, Ch_None, Ch_None)
 void                  \1\xC3                          8086
 imm                   \1\xC2\30                       8086,SW
 
-[RETF,retfX]
+[RETF,lret]
 (Ch_All, Ch_None, Ch_None)
 void                  \1\xCB                          8086
 imm                   \1\xCA\30                       8086,SW
 
-[RETN,retnX]
+[RETN,ret]
 (Ch_All, Ch_None, Ch_None)
 void                  \1\xC3                          8086
 imm                   \1\xC2\30                       8086,SW
@@ -2763,4 +2763,4 @@ mmxreg,mmxreg         \2\x0F\x0F\110\01\xBB           PENT,3DNOW,SM
 
 [FFREEP]
 (Ch_All, Ch_None, Ch_None)
-fpureg                \1\xDF\10\xC0                   PENT,3DNOW,FPU
+fpureg                \1\xDF\10\xC0                   PENT,3DNOW,FPU