Explorar o código

* fixed range problem with in [tasmop]

peter %!s(int64=27) %!d(string=hai) anos
pai
achega
895c8b8d77
Modificáronse 2 ficheiros con 19 adicións e 8 borrados
  1. 8 2
      compiler/ag386int.pas
  2. 11 6
      compiler/ag386nsm.pas

+ 8 - 2
compiler/ag386int.pas

@@ -20,6 +20,9 @@
 
  ****************************************************************************
 }
+{$ifdef TP}
+  {$N+,E+}
+{$endif}
 unit ag386int;
 
     interface
@@ -481,7 +484,7 @@ ait_labeled_instruction : AsmWriteLn(#9#9+int_op2str[pai_labeled(hp)^._operator]
                         prefix:= '';
                        if pai386(hp)^.op1t<>top_none then
                         begin
-                          if pai386(hp)^._operator in [A_CALL] then
+                          if pai386(hp)^._operator=A_CALL then
                            begin
                            { with tasm call near ptr [edi+12] does not
                              work but call near [edi+12] works ?? (PM)
@@ -592,7 +595,10 @@ ait_stab_function_name : ;
 end.
 {
   $Log$
-  Revision 1.21  1998-11-30 09:42:55  pierre
+  Revision 1.22  1998-12-01 11:19:38  peter
+    * fixed range problem with in [tasmop]
+
+  Revision 1.21  1998/11/30 09:42:55  pierre
     * some range check bugs fixed (still not working !)
     + added DLL writing support for win32 (also accepts variables)
     + TempAnsi for code that could be used for Temporary ansi strings

+ 11 - 6
compiler/ag386nsm.pas

@@ -21,9 +21,8 @@
 
  ****************************************************************************
 }
-{ R- Necessary for the in [] }
 {$ifdef TP}
-  {$N+,E+,R-}
+  {$N+,E+}
 {$endif}
 unit ag386nsm;
 
@@ -285,6 +284,7 @@ unit ag386nsm;
       counter,
       lines,
       i,j,l    : longint;
+      op       : tasmop;
       consttyp : tait;
       found,
       quoted   : boolean;
@@ -437,8 +437,10 @@ unit ag386nsm;
                      end;
 ait_labeled_instruction :
                      begin
-                       if not (pai_labeled(hp)^._operator in [A_JMP,A_LOOP,A_LOOPZ,A_LOOPE,
-                          A_LOOPNZ,A_LOOPNE,A_JCXZ,A_JECXZ]) then
+                       op:=pai_labeled(hp)^._operator;
+                       if not((op=A_JMP) or (op=A_LOOP) or (op=A_LOOPZ) or
+                              (op=A_LOOPE) or (op=A_LOOPNZ) or (op=A_LOOPNE) or
+                              (op=A_JCXZ) or (op=A_JECXZ)) then
                         AsmWriteLn(#9#9+int_op2str[pai_labeled(hp)^._operator]+#9+'near '+lab2str(pai_labeled(hp)^.lab))
                        else
                         AsmWriteLn(#9#9+int_op2str[pai_labeled(hp)^._operator]+#9+lab2str(pai_labeled(hp)^.lab));
@@ -486,7 +488,7 @@ ait_labeled_instruction :
                          pai386(hp)^._operator:=A_FSTSW;
                        if pai386(hp)^.op1t<>top_none then
                         begin
-                          if pai386(hp)^._operator in [A_CALL] then
+                          if pai386(hp)^._operator=A_CALL then
                            s:=getopstr_jmp(pai386(hp)^.op1t,pai386(hp)^.op1)
                           else
                            begin
@@ -582,7 +584,10 @@ ait_stab_function_name : ;
 end.
 {
   $Log$
-  Revision 1.14  1998-11-30 09:42:56  pierre
+  Revision 1.15  1998-12-01 11:19:39  peter
+    * fixed range problem with in [tasmop]
+
+  Revision 1.14  1998/11/30 09:42:56  pierre
     * some range check bugs fixed (still not working !)
     + added DLL writing support for win32 (also accepts variables)
     + TempAnsi for code that could be used for Temporary ansi strings