* Register variables are now possible for global variables too. This is

important for small programs without procedures.
This commit is contained in:
daniel 2002-07-20 17:45:29 +00:00
parent ba1d11e778
commit 94e5bd51a1

View File

@ -1514,9 +1514,20 @@ implementation
bssSegment.concat(Tai_datablock.Create_global(mangledname,l))
else
bssSegment.concat(Tai_datablock.Create(mangledname,l));
{ this symbol can't be loaded to a register }
exclude(varoptions,vo_regable);
exclude(varoptions,vo_fpuregable);
{Global variables (in implementation part of course)
*can* be loaded into registers, they just may not be
accessed from procedures. The lexlevel test in nld.pas,
Tloadnode.pass_1, should take care of this.
If for some reason you think it isn't safe, try isolating
and disabling those specific cases, because small programs
without procedures can be very speed critical. For example,
think of benchmarks and programming contests. Also, new
users often test the quality of the code the compiler
generates and they do that with small programs, we should
show them the full optimizing power. (DM)}
{exclude(varoptions,vo_regable);
exclude(varoptions,vo_fpuregable);}
end;
globalsymtable :
begin
@ -2517,7 +2528,11 @@ implementation
end.
{
$Log$
Revision 1.43 2002-07-20 11:57:58 florian
Revision 1.44 2002-07-20 17:45:29 daniel
* Register variables are now possible for global variables too. This is
important for small programs without procedures.
Revision 1.43 2002/07/20 11:57:58 florian
* types.pas renamed to defbase.pas because D6 contains a types
unit so this would conflicts if D6 programms are compiled
+ Willamette/SSE2 instructions to assembler added