diff --git a/compiler/symsym.pas b/compiler/symsym.pas index 3154dec3f8..9b3456e427 100644 --- a/compiler/symsym.pas +++ b/compiler/symsym.pas @@ -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