Browse Source

* small warning position bug fixed
* support_mmx switches splitting was missing
* rhide error and warning output corrected

pierre 27 years ago
parent
commit
2222aab027

+ 8 - 3
compiler/cg386add.pas

@@ -1042,7 +1042,7 @@ implementation
                    mmxbase:=mmx_type(p^.left^.resulttype);
                    case p^.treetype of
                       addn : begin
-                                if (cs_mmx_saturation in aktswitches) then
+                                if (cs_mmx_saturation in aktlocalswitches) then
                                   begin
                                      case mmxbase of
                                         mmxs8bit:
@@ -1076,7 +1076,7 @@ implementation
                                 end;
                              end;
                       subn : begin
-                                if (cs_mmx_saturation in aktswitches) then
+                                if (cs_mmx_saturation in aktlocalswitches) then
                                   begin
                                      case mmxbase of
                                         mmxs8bit:
@@ -1237,7 +1237,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.5  1998-08-14 18:18:37  peter
+  Revision 1.6  1998-08-18 09:24:35  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.5  1998/08/14 18:18:37  peter
     + dynamic set contruction
     * smallsets are now working (always longint size)
 

+ 7 - 2
compiler/cg386cal.pas

@@ -2089,7 +2089,7 @@ implementation
             in_inc_byte..in_dec_dword:
               begin
                  secondpass(p^.left);
-                 if cs_check_overflow in aktswitches then
+                 if cs_check_overflow in aktlocalswitches then
                    begin
                    { SINCE THE CARRY FLAG IS NEVER SET BY DEC/INC, we must use  }
                    { ADD and SUB to check for overflow for unsigned operations. }
@@ -2314,7 +2314,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.15  1998-08-13 11:00:09  peter
+  Revision 1.16  1998-08-18 09:24:36  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.15  1998/08/13 11:00:09  peter
     * fixed procedure<>procedure construct
 
   Revision 1.14  1998/08/11 14:05:33  peter

+ 9 - 4
compiler/cg386mat.pas

@@ -292,7 +292,7 @@ implementation
            op : tasmop;
         begin
            p^.location.loc:=LOC_MMXREGISTER;
-           if cs_mmx_saturation in aktswitches then
+           if cs_mmx_saturation in aktlocalswitches then
              case mmx_type(p^.resulttype) of
                 mmxs8bit:
                   op:=A_PSUBSB;
@@ -361,7 +361,7 @@ implementation
                                    exprasmlist^.concat(new(pai386,op_none(A_FCHS,S_NO)));
                                 end
 {$ifdef SUPPORT_MMX}
-                              else if (cs_mmx in aktswitches) and is_mmx_able_array(p^.left^.resulttype) then
+                              else if (cs_mmx in aktlocalswitches) and is_mmx_able_array(p^.left^.resulttype) then
                                 begin
                                    p^.location.register:=getregistermmx;
                                    emit_reg_reg(A_PXOR,S_NO,R_MM7,R_MM7);
@@ -467,7 +467,7 @@ implementation
                  end;
               end
 {$ifdef SUPPORT_MMX}
-            else if (cs_mmx in aktswitches) and is_mmx_able_array(p^.left^.resulttype) then
+            else if (cs_mmx in aktlocalswitches) and is_mmx_able_array(p^.left^.resulttype) then
               begin
                  secondpass(p^.left);
                  p^.location.loc:=LOC_MMXREGISTER;
@@ -549,7 +549,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.3  1998-06-05 17:44:12  peter
+  Revision 1.4  1998-08-18 09:24:38  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.3  1998/06/05 17:44:12  peter
     * splitted cgi386
 
   Revision 1.2  1998/06/02 17:02:59  pierre

+ 8 - 3
compiler/cg386set.pas

@@ -641,14 +641,14 @@ implementation
            hr^.scalefactor:=4;
            exprasmlist^.concat(new(pai386,op_ref(A_JMP,S_NO,hr)));
            { !!!!! generate tables
-             if not(cs_littlesize in aktswitches^ ) then
+             if not(cs_littlesize in aktlocalswitches) then
              jumpsegment^.concat(new(pai386,op_const(A_ALIGN,S_NO,4)));
            }
            jumpsegment^.concat(new(pai_label,init(table)));
              last:=min_;
            genitem(hp);
              { !!!!!!!
-           if not(cs_littlesize in aktswitches^ ) then
+           if not(cs_littlesize in aktlocalswitches) then
              exprasmlist^.concat(new(pai386,op_const(A_ALIGN,S_NO,4)));
            }
         end;
@@ -782,7 +782,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.5  1998-08-14 18:18:40  peter
+  Revision 1.6  1998-08-18 09:24:39  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.5  1998/08/14 18:18:40  peter
     + dynamic set contruction
     * smallsets are now working (always longint size)
 

+ 7 - 2
compiler/comphook.pas

@@ -197,7 +197,7 @@ begin
         even if it does not yet use it PM }
         if status.use_gccoutput then
           hs:=gccfilename(status.currentsource)+':'+tostr(status.currentline)
-              +':'+tostr(status.currentcolumn)+': '+hs
+              +': '+hs+tostr(status.currentcolumn)+': '
         else
           hs:=status.currentsource+'('+tostr(status.currentline)
               +','+tostr(status.currentcolumn)+') '+hs;
@@ -234,7 +234,12 @@ end;
 end.
 {
   $Log$
-  Revision 1.2  1998-08-11 14:02:45  peter
+  Revision 1.3  1998-08-18 09:24:40  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.2  1998/08/11 14:02:45  peter
     * don't write line if no sourcefile is set
 
   Revision 1.1  1998/08/10 10:18:24  peter

+ 12 - 3
compiler/makefile

@@ -68,6 +68,7 @@ EXEEXT=.exe
 endif
 
 REPLACE=mv -f
+REMOVE=rm
 CP=cp -f
 
 COMPILERDIR=$(BASEDIR)
@@ -213,9 +214,9 @@ MSGFILES:=$(wildcard *.msg)
 
 .PHONY : all clean info \
 	 cycle remake remake3 \
-	 install \
+	 install next \
 	 diff diff3 patch rtl toflor replacediff3 restorediff3 \
-	 test rtlzip \
+	 test rtlzip rtlclean \
 
 .pas.ppu:
 	$(COMPILER) $<
@@ -306,14 +307,17 @@ remake3: $(TEMPNAME3)
 	diff $(TEMPNAME3) $(EXENAME)
 
 $(TEMPNAME1) : $(EXENAME)
+	-$(REMOVE) $(TEMPNAME1)
 	$(REPLACE) $(EXENAME) $(TEMPNAME1)
 
 $(TEMPNAME2) : $(TEMPNAME1)
 	$(MAKE) 'PP=./$(TEMPNAME1)' 'OLDPP=' next
+	-$(REMOVE) $(TEMPNAME2)
 	$(REPLACE) $(EXENAME) $(TEMPNAME2)
 
 $(TEMPNAME3) : $(TEMPNAME2)
 	$(MAKE) 'PP=./$(TEMPNAME2)' 'OLDPP=./$(TEMPNAME1)' next
+	-$(REMOVE) $(TEMPNAME3)
 	$(REPLACE) $(EXENAME) $(TEMPNAME3)
 
 cycle:
@@ -440,7 +444,12 @@ rtlclean :
 # Test of log at the end
 # does CVS add # at start of each line ??
 # $Log$
-# Revision 1.24  1998-08-14 09:29:53  michael
+# Revision 1.25  1998-08-18 09:24:41  pierre
+#   * small warning position bug fixed
+#   * support_mmx switches splitting was missing
+#   * rhide error and warning output corrected
+#
+# Revision 1.24  1998/08/14 09:29:53  michael
 # Updated compiler number
 #
 # Revision 1.23  1998/08/06 10:42:56  pierre

+ 11 - 6
compiler/pass_1.pas

@@ -1323,7 +1323,7 @@ unit pass_1;
               end;
            end
 {$ifdef SUPPORT_MMX}
-         else if (cs_mmx in aktmoduleswitches) and is_mmx_able_array(ld)
+         else if (cs_mmx in aktlocalswitches) and is_mmx_able_array(ld)
            and is_mmx_able_array(rd) and is_equal(ld,rd) then
            begin
               firstpass(p^.right);
@@ -1591,7 +1591,7 @@ unit pass_1;
                 p^.location.loc:=LOC_FPU;
            end
 {$ifdef SUPPORT_MMX}
-         else if (cs_mmx in aktmoduleswitches) and
+         else if (cs_mmx in aktlocalswitches) and
            is_mmx_able_array(p^.left^.resulttype) then
              begin
                if (p^.left^.location.loc<>LOC_MMXREGISTER) and
@@ -1599,7 +1599,7 @@ unit pass_1;
                  p^.registersmmx:=1;
                { if saturation is on, p^.left^.resulttype isn't
                  "mmx able" (FK)
-               if (cs_mmx_saturation in aktmoduleswitches^) and
+               if (cs_mmx_saturation in aktlocalswitches^) and
                  (porddef(parraydef(p^.resulttype)^.definition)^.typ in
                  [s32bit,u32bit]) then
                  Message(sym_e_type_mismatch);
@@ -1780,7 +1780,7 @@ unit pass_1;
            end
          else
 {$ifdef SUPPORT_MMX}
-           if (cs_mmx in aktmoduleswitches) and
+           if (cs_mmx in aktlocalswitches) and
              is_mmx_able_array(p^.left^.resulttype) then
              begin
                if (p^.left^.location.loc<>LOC_MMXREGISTER) and
@@ -3484,7 +3484,7 @@ unit pass_1;
               else
                 begin
 {$ifdef SUPPORT_MMX}
-                   if (cs_mmx in aktmoduleswitches) and
+                   if (cs_mmx in aktlocalswitches) and
                      is_mmx_able_array(p^.resulttype) then
                      begin
                         p^.location.loc:=LOC_MMXREGISTER;
@@ -5206,7 +5206,12 @@ unit pass_1;
 end.
 {
   $Log$
-  Revision 1.55  1998-08-14 18:18:44  peter
+  Revision 1.56  1998-08-18 09:24:42  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.55  1998/08/14 18:18:44  peter
     + dynamic set contruction
     * smallsets are now working (always longint size)
 

+ 7 - 2
compiler/pexpr.pas

@@ -1075,7 +1075,7 @@ unit pexpr;
                   ((p^.flags and pi_operator)<>0))}) and
                   (p^.retdef<>pdef(voiddef)) and
                   (token<>LKLAMMER) and
-                  (not ((cs_tp_compatible in aktswitches) and
+                  (not ((cs_tp_compatible in aktmoduleswitches) and
                   (afterassignment or in_args))) then
                  begin
                     p1:=genzeronode(funcretn);
@@ -1829,7 +1829,12 @@ unit pexpr;
 end.
 {
   $Log$
-  Revision 1.36  1998-08-15 16:50:29  peter
+  Revision 1.37  1998-08-18 09:24:43  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.36  1998/08/15 16:50:29  peter
     * fixed proc()=expr which was not allowed anymore by my previous fix
 
   Revision 1.35  1998/08/14 18:18:46  peter

+ 26 - 7
compiler/scandir.inc

@@ -459,17 +459,31 @@ const
         sw : tmoduleswitch;
       begin
         case t of
+           _DIR_SMARTLINK : sw:=cs_smartlink;
+        end;
+        current_scanner^.skipspace;
+        if c='-' then
+         aktmoduleswitches:=aktmoduleswitches-[sw]
+        else
+         aktmoduleswitches:=aktmoduleswitches+[sw];
+      end;
+
+
+    procedure dir_localswitch(t:tdirectivetoken);
+      var
+        sw : tlocalswitch;
+      begin
+        case t of
 {$ifdef SUPPORT_MMX}
           _DIR_MMX : sw:=cs_mmx;
-   _DIR_SATURATION : sw:=cs_mmx_saturation;
+          _DIR_SATURATION : sw:=cs_mmx_saturation;
 {$endif}
-   _DIR_SMARTLINK : sw:=cs_smartlink;
         end;
         current_scanner^.skipspace;
         if c='-' then
-         aktmoduleswitches:=aktmoduleswitches-[sw]
+         aktlocalswitches:=aktlocalswitches-[sw]
         else
-         aktmoduleswitches:=aktmoduleswitches+[sw];
+         aktlocalswitches:=aktlocalswitches+[sw];
       end;
 
 
@@ -640,11 +654,11 @@ const
          {_DIR_L} dir_linkobject,
          {_DIR_LINKLIB} dir_linklib,
          {_DIR_MESSAGE} dir_message,
-         {_DIR_MMX} dir_moduleswitch,
+         {_DIR_MMX} dir_localswitch,
          {_DIR_NOTE} dir_message,
          {_DIR_OUTPUT_FORMAT} dir_outputformat,
          {_DIR_PACKRECORDS} dir_packrecords,
-         {_DIR_SATURATION} dir_moduleswitch,
+         {_DIR_SATURATION} dir_localswitch,
          {_DIR_SMARTLINK} dir_moduleswitch,
          {_DIR_STOP} dir_message,
          {_DIR_UNDEF} dir_undef,
@@ -706,7 +720,12 @@ const
 
 {
   $Log$
-  Revision 1.18  1998-08-10 14:50:25  peter
+  Revision 1.19  1998-08-18 09:24:44  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.18  1998/08/10 14:50:25  peter
     + localswitches, moduleswitches, globalswitches splitting
 
   Revision 1.17  1998/08/10 09:56:04  peter

+ 7 - 1
compiler/systems.pas

@@ -1,3 +1,4 @@
+
 {
     $Id$
     Copyright (C) 1995,97 by Florian Klaempfl
@@ -875,7 +876,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.24  1998-08-17 09:17:54  peter
+  Revision 1.25  1998-08-18 09:24:45  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.24  1998/08/17 09:17:54  peter
     * static/shared linking updates
 
   Revision 1.23  1998/06/25 08:48:20  florian

+ 8 - 3
compiler/tree.pas

@@ -1240,9 +1240,9 @@ unit tree;
                comment(v_warning,'fileinfo.fileindex field different');
                error_found:=true;
             end;
-          if oldp^.pragmas<>p^.pragmas then
+          if oldp^.localswitches<>p^.localswitches then
             begin
-               comment(v_warning,'pragmas field different');
+               comment(v_warning,'localswitches field different');
                error_found:=true;
             end;
 {$ifdef extdebug}
@@ -1557,7 +1557,12 @@ unit tree;
 end.
 {
   $Log$
-  Revision 1.29  1998-08-14 18:18:48  peter
+  Revision 1.30  1998-08-18 09:24:47  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.29  1998/08/14 18:18:48  peter
     + dynamic set contruction
     * smallsets are now working (always longint size)
 

+ 13 - 3
compiler/types.pas

@@ -321,7 +321,7 @@ unit types;
 
       begin
 {$ifdef SUPPORT_MMX}
-         if (cs_mmx_saturation in aktswitches) then
+         if (cs_mmx_saturation in aktlocalswitches) then
            begin
               is_mmx_able_array:=(p^.deftype=arraydef) and
                 (
@@ -862,14 +862,24 @@ unit types;
 end.
 {
   $Log$
-  Revision 1.18  1998-08-14 18:18:49  peter
+  Revision 1.19  1998-08-18 09:24:48  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.18  1998/08/14 18:18:49  peter
     + dynamic set contruction
     * smallsets are now working (always longint size)
 
   Revision 1.17  1998/08/05 16:00:17  florian
     * some fixes for ansi strings
     * $log$ to $Log$
-    * $log$ to Revision 1.18  1998-08-14 18:18:49  peter
+    * $log$ to Revision 1.19  1998-08-18 09:24:48  pierre
+    * $log$ to   * small warning position bug fixed
+    * $log$ to   * support_mmx switches splitting was missing
+    * $log$ to   * rhide error and warning output corrected
+    * $log$ to
+    * $log$ to Revision 1.18  1998/08/14 18:18:49  peter
     * $log$ to   + dynamic set contruction
     * $log$ to   * smallsets are now working (always longint size)
     * $log$ to changed

+ 11 - 6
compiler/verbose.pas

@@ -225,11 +225,11 @@ begin
   status.currentcolumn:=aktfilepos.column;
   if assigned(current_module) and
      ((current_module^.unit_index<>lastmoduleidx) or
-      (current_module^.current_index<>lastfileidx)) then
+      (aktfilepos.fileindex<>lastfileidx)) then
    begin
      status.currentsource:=current_module^.sourcefiles.get_file_name(current_module^.current_index);
      lastmoduleidx:=current_module^.unit_index;
-     lastfileidx:=current_module^.current_index;
+     lastfileidx:=aktfilepos.fileindex;
    end;
 end;
 
@@ -331,11 +331,11 @@ begin
   status.currentcolumn:=aktfilepos.column;
   if assigned(current_module) and
      ((current_module^.unit_index<>lastmoduleidx) or
-      (current_module^.current_index<>lastfileidx)) then
+      (aktfilepos.fileindex<>lastfileidx)) then
    begin
-     status.currentsource:=current_module^.sourcefiles.get_file_name(current_module^.current_index);
+     status.currentsource:=current_module^.sourcefiles.get_file_name(aktfilepos.fileindex);
      lastmoduleidx:=current_module^.unit_index;
-     lastfileidx:=current_module^.current_index;
+     lastfileidx:=aktfilepos.fileindex;
    end;
 { show comment }
   if do_comment(v,s) or dostop or (status.errorcount>=status.maxerrorcount) then
@@ -385,7 +385,12 @@ end.
 
 {
   $Log$
-  Revision 1.14  1998-08-11 14:09:15  peter
+  Revision 1.15  1998-08-18 09:24:49  pierre
+    * small warning position bug fixed
+    * support_mmx switches splitting was missing
+    * rhide error and warning output corrected
+
+  Revision 1.14  1998/08/11 14:09:15  peter
     * fixed some messages and smaller msgtxt.inc
 
   Revision 1.13  1998/08/10 14:50:37  peter