> Hello, > > I have noticed a strange thing with FPC-generated assembler code. > The Pascal code is very simple: > > program test; > {$mode objfpc}{$h+} > type > TObj = class(TObject) > public > destructor Destroy; override; > end; > > destructor TObj.Destroy; > begin > writeln('TObj.Destroy'); > end; > > begin > end. > > I compiled with 'fpc test.pp -a -AMASM -al -s -O1'. > > The generated assembler code follows below. Look at the prologs/epilogs. > When compiled with -O1, there are 16 bytes allocated at the stack, but > location [ebp-12] is never used. > When compiled with -O2, however, allocation increases to 32 bytes, but > still only three DWORDs (12 bytes) are used, remaining 20 bytes look > just wasted. > > Is this subject for a bug report?
Fixed in r9293. There was a duplicate temp allocation. That 16 bytes instead of 12 bytes are allocated comes from alignment. Peter _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel