* Another 200301081 fixed

This commit is contained in:
daniel 2003-01-21 08:48:08 +00:00
parent c3321868d5
commit a86b31c4f0

View File

@ -1503,23 +1503,27 @@ uses
if opidx>=ops then if opidx>=ops then
ops:=opidx+1; ops:=opidx+1;
with oper[opidx] do with oper[opidx] do
begin begin
if typ<>top_ref then if typ<>top_ref then
new(ref); new(ref);
ref^:=r; ref^:=r;
{$ifdef i386} {$ifdef i386}
if ref^.segment.enum>lastreg then { We allow this exception for i386, since overloading this would be
internalerror(200301081); too much of a a speed penalty}
{ We allow this exception for i386, since overloading this would be if ref^.segment.enum=R_INTREGISTER then
too much of a a speed penalty} begin
if not(ref^.segment.enum in [R_DS,R_NO]) then if (ref^.segment.number <> NR_NO) and (ref^.segment.number <> NR_DS) then
segprefix:=ref^.segment; segprefix:=ref^.segment;
end
else
if not(ref^.segment.enum in [R_DS,R_NO]) then
segprefix:=ref^.segment;
{$endif} {$endif}
typ:=top_ref; typ:=top_ref;
{ mark symbol as used } { mark symbol as used }
if assigned(ref^.symbol) then if assigned(ref^.symbol) then
ref^.symbol.increfs; ref^.symbol.increfs;
end; end;
end; end;
@ -1750,7 +1754,10 @@ uses
end. end.
{ {
$Log$ $Log$
Revision 1.18 2003-01-09 20:40:59 daniel Revision 1.19 2003-01-21 08:48:08 daniel
* Another 200301081 fixed
Revision 1.18 2003/01/09 20:40:59 daniel
* Converted some code in cgx86.pas to new register numbering * Converted some code in cgx86.pas to new register numbering
Revision 1.17 2003/01/09 15:49:56 daniel Revision 1.17 2003/01/09 15:49:56 daniel