mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 06:19:19 +02:00
* fixed class field info alignment
This commit is contained in:
parent
cb75ebda02
commit
5fb0678de2
@ -56,7 +56,7 @@ interface
|
|||||||
|
|
||||||
{ since we have only 16 offsets, we need to be able to specify the high
|
{ since we have only 16 offsets, we need to be able to specify the high
|
||||||
and low 16 bits of the address of a symbol }
|
and low 16 bits of the address of a symbol }
|
||||||
trefaddr = (addr_no,addr_full,addr_hi,addr_lo);
|
trefaddr = (addr_no,addr_full,addr_hi,addr_lo,addr_pic);
|
||||||
|
|
||||||
{# Generic opcodes, which must be supported by all processors
|
{# Generic opcodes, which must be supported by all processors
|
||||||
}
|
}
|
||||||
@ -597,7 +597,10 @@ finalization
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.99 2004-12-12 10:50:34 florian
|
Revision 1.100 2004-12-27 15:54:54 florian
|
||||||
|
* fixed class field info alignment
|
||||||
|
|
||||||
|
Revision 1.99 2004/12/12 10:50:34 florian
|
||||||
* fixed operand size calculation for sse operands
|
* fixed operand size calculation for sse operands
|
||||||
+ all nasm assembler targets to help page output added
|
+ all nasm assembler targets to help page output added
|
||||||
|
|
||||||
|
@ -5572,6 +5572,9 @@ implementation
|
|||||||
if needs_prop_entry(tsym(sym)) and
|
if needs_prop_entry(tsym(sym)) and
|
||||||
(tsym(sym).typ=fieldvarsym) then
|
(tsym(sym).typ=fieldvarsym) then
|
||||||
begin
|
begin
|
||||||
|
{$ifdef cpurequiresproperalignment}
|
||||||
|
rttilist.concat(Tai_align.Create(sizeof(TConstPtrUInt)));
|
||||||
|
{$endif cpurequiresproperalignment}
|
||||||
rttiList.concat(Tai_const.Create_32bit(tfieldvarsym(sym).fieldoffset));
|
rttiList.concat(Tai_const.Create_32bit(tfieldvarsym(sym).fieldoffset));
|
||||||
hp:=searchclasstablelist(tobjectdef(tfieldvarsym(sym).vartype.def));
|
hp:=searchclasstablelist(tobjectdef(tfieldvarsym(sym).vartype.def));
|
||||||
if not(assigned(hp)) then
|
if not(assigned(hp)) then
|
||||||
@ -5601,6 +5604,9 @@ implementation
|
|||||||
symtable.foreach({$ifdef FPC}@{$endif}count_published_fields,nil);
|
symtable.foreach({$ifdef FPC}@{$endif}count_published_fields,nil);
|
||||||
rttiList.concat(Tai_label.Create(fieldtable));
|
rttiList.concat(Tai_label.Create(fieldtable));
|
||||||
rttiList.concat(Tai_const.Create_16bit(count));
|
rttiList.concat(Tai_const.Create_16bit(count));
|
||||||
|
{$ifdef cpurequiresproperalignment}
|
||||||
|
rttilist.concat(Tai_align.Create(sizeof(TConstPtrUInt)));
|
||||||
|
{$endif cpurequiresproperalignment}
|
||||||
rttiList.concat(Tai_const.Create_sym(classtable));
|
rttiList.concat(Tai_const.Create_sym(classtable));
|
||||||
symtable.foreach({$ifdef FPC}@{$endif}writefields,nil);
|
symtable.foreach({$ifdef FPC}@{$endif}writefields,nil);
|
||||||
|
|
||||||
@ -5608,6 +5614,9 @@ implementation
|
|||||||
rttilist.concat(tai_align.create(const_align(sizeof(aint))));
|
rttilist.concat(tai_align.create(const_align(sizeof(aint))));
|
||||||
rttiList.concat(Tai_label.Create(classtable));
|
rttiList.concat(Tai_label.Create(classtable));
|
||||||
rttiList.concat(Tai_const.Create_16bit(tablecount));
|
rttiList.concat(Tai_const.Create_16bit(tablecount));
|
||||||
|
{$ifdef cpurequiresproperalignment}
|
||||||
|
rttilist.concat(Tai_align.Create(sizeof(TConstPtrUInt)));
|
||||||
|
{$endif cpurequiresproperalignment}
|
||||||
hp:=tclasslistitem(classtablelist.first);
|
hp:=tclasslistitem(classtablelist.first);
|
||||||
while assigned(hp) do
|
while assigned(hp) do
|
||||||
begin
|
begin
|
||||||
@ -6155,7 +6164,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.284 2004-12-07 15:41:11 peter
|
Revision 1.285 2004-12-27 15:54:54 florian
|
||||||
|
* fixed class field info alignment
|
||||||
|
|
||||||
|
Revision 1.284 2004/12/07 15:41:11 peter
|
||||||
* modified algorithm for shortening manglednames to fix compilation
|
* modified algorithm for shortening manglednames to fix compilation
|
||||||
of procedures with a lot of longtypenames that are equal, see
|
of procedures with a lot of longtypenames that are equal, see
|
||||||
tw343
|
tw343
|
||||||
|
Loading…
Reference in New Issue
Block a user