mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 04:19:07 +02:00
* Register variables are now possible for global variables too. This is
important for small programs without procedures.
This commit is contained in:
parent
ba1d11e778
commit
94e5bd51a1
@ -1514,9 +1514,20 @@ implementation
|
|||||||
bssSegment.concat(Tai_datablock.Create_global(mangledname,l))
|
bssSegment.concat(Tai_datablock.Create_global(mangledname,l))
|
||||||
else
|
else
|
||||||
bssSegment.concat(Tai_datablock.Create(mangledname,l));
|
bssSegment.concat(Tai_datablock.Create(mangledname,l));
|
||||||
{ this symbol can't be loaded to a register }
|
{Global variables (in implementation part of course)
|
||||||
exclude(varoptions,vo_regable);
|
*can* be loaded into registers, they just may not be
|
||||||
exclude(varoptions,vo_fpuregable);
|
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;
|
end;
|
||||||
globalsymtable :
|
globalsymtable :
|
||||||
begin
|
begin
|
||||||
@ -2517,7 +2528,11 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$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
|
* types.pas renamed to defbase.pas because D6 contains a types
|
||||||
unit so this would conflicts if D6 programms are compiled
|
unit so this would conflicts if D6 programms are compiled
|
||||||
+ Willamette/SSE2 instructions to assembler added
|
+ Willamette/SSE2 instructions to assembler added
|
||||||
|
Loading…
Reference in New Issue
Block a user