Browse Source

*** empty log message ***

peter 21 years ago
parent
commit
7ca069476f
3 changed files with 20 additions and 6 deletions
  1. 2 2
      compiler/i386/i386tab.inc
  2. 12 1
      compiler/i386/popt386.pas
  3. 6 3
      compiler/x86/x86ins.dat

+ 2 - 2
compiler/i386/i386tab.inc

@@ -3295,7 +3295,7 @@
     ops     : 1;
     optypes : (ot_immediate or ot_short,ot_none,ot_none);
     code    : #1#235#40;
-    flags   : if_8086
+    flags   : if_8086 or if_pass2
   ),
   (
     opcode  : A_JMP;
@@ -3316,7 +3316,7 @@
     ops     : 1;
     optypes : (ot_immediate or ot_far,ot_none,ot_none);
     code    : #210#1#234#28#31;
-    flags   : if_8086
+    flags   : if_8086 or if_pass2
   ),
   (
     opcode  : A_JMP;

+ 12 - 1
compiler/i386/popt386.pas

@@ -494,6 +494,10 @@ var
                 exit;
               tasmlabel(hp.oper[0]^.sym).decrefs;
               hp.oper[0]^.sym:=taicpu(p1).oper[0]^.sym;
+{$ifndef NOAG386BIN}
+              { Reset JMP information }
+              hp.resetpass1;
+{$endif NOAG386BIN}
               tasmlabel(hp.oper[0]^.sym).increfs;
             end
           else
@@ -1862,6 +1866,10 @@ begin
                     hp2 := taicpu.Op_sym(A_PUSH,S_L,taicpu(hp1).oper[0]^.sym);
                     InsertLLItem(asml, p.previous, p, hp2);
                     taicpu(p).opcode := A_JMP;
+{$ifndef NOAG386BIN}
+                    { Reset JMP information }
+                    taicpu(p).resetpass1;
+{$endif NOAG386BIN}
                     taicpu(p).is_jmp := true;
                     asml.remove(hp1);
                     hp1.free;
@@ -1999,7 +2007,10 @@ end.
 
 {
   $Log$
-  Revision 1.54  2004-01-22 16:14:17  peter
+  Revision 1.55  2004-02-03 16:53:37  peter
+  *** empty log message ***
+
+  Revision 1.54  2004/01/22 16:14:17  peter
     * fixed crashes when procdef.funcretsym is not valid
 
   Revision 1.53  2003/12/15 21:25:49  peter

+ 6 - 3
compiler/x86/x86ins.dat

@@ -979,10 +979,10 @@ imm                   \321\1\xE3\50                   386
 
 [JMP,jmpX]
 (Ch_ROp1, Ch_None, Ch_None)
-imm|short             \1\xEB\50                       8086
+imm|short             \1\xEB\50                       8086,PASS2
 imm                   \322\1\xE9\64                   8086,PASS2
 imm|near              \322\1\xE9\64                   8086,ND,PASS2
-imm|far               \322\1\xEA\34\37                8086,ND
+imm|far               \322\1\xEA\34\37                8086,ND,PASS2
 imm16                 \320\1\xE9\64                   8086,PASS2
 imm16|near            \320\1\xE9\64                   8086,ND,PASS2
 imm16|far             \320\1\xEA\34\37                8086,ND,PASS2
@@ -3422,7 +3422,10 @@ reg32,imm               \321\10\xB8\41                  X86_64
 
 ;
 ; $Log$
-; Revision 1.7  2004-01-15 14:01:32  florian
+; Revision 1.8  2004-02-03 16:53:37  peter
+; *** empty log message ***
+;
+; Revision 1.7  2004/01/15 14:01:32  florian
 ;   + x86 instruction tables for x86-64 extended
 ;
 ; Revision 1.6  2003/12/25 12:01:35  florian