* small warning position bug fixed

* support_mmx switches splitting was missing
  * rhide error and warning output corrected
This commit is contained in:
pierre 1998-08-18 09:24:35 +00:00
parent 8f0342912e
commit 2222aab027
13 changed files with 135 additions and 46 deletions

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -459,11 +459,7 @@ const
sw : tmoduleswitch;
begin
case t of
{$ifdef SUPPORT_MMX}
_DIR_MMX : sw:=cs_mmx;
_DIR_SATURATION : sw:=cs_mmx_saturation;
{$endif}
_DIR_SMARTLINK : sw:=cs_smartlink;
_DIR_SMARTLINK : sw:=cs_smartlink;
end;
current_scanner^.skipspace;
if c='-' then
@ -473,6 +469,24 @@ const
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;
{$endif}
end;
current_scanner^.skipspace;
if c='-' then
aktlocalswitches:=aktlocalswitches-[sw]
else
aktlocalswitches:=aktlocalswitches+[sw];
end;
procedure dir_include(t:tdirectivetoken);
var
hs : string;
@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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