* tai_const_symbol.createdataname added

This commit is contained in:
peter 2003-01-30 21:46:20 +00:00
parent 7391487daa
commit 2b0e576cbe
3 changed files with 37 additions and 13 deletions

View File

@ -720,7 +720,10 @@ implementation
begin
hp:=tasmsymbol(symbolsearch.search(s));
if assigned(hp) then
hp.defbind:=_bind
begin
if (_bind<>AB_EXTERNAL) then
hp.defbind:=_bind
end
else
begin
{ Not found, insert it as an External }
@ -884,7 +887,10 @@ implementation
end.
{
$Log$
Revision 1.12 2002-11-17 16:31:55 carl
Revision 1.13 2003-01-30 21:46:20 peter
* tai_const_symbol.createdataname added
Revision 1.12 2002/11/17 16:31:55 carl
* memory optimization (3-4%) : cleanup of tai fields,
cleanup of tdef and tsym fields.
* make it work for m68k

View File

@ -316,6 +316,7 @@ interface
constructor Createname(const name:string);
constructor Createname_offset(const name:string;ofs:longint);
constructor Createname_rva(const name:string);
constructor Createdataname(const name:string);
constructor ppuload(t:taitype;ppufile:tcompilerppufile);override;
procedure ppuwrite(ppufile:tcompilerppufile);override;
procedure derefimpl;override;
@ -845,7 +846,7 @@ uses
{****************************************************************************
TAI_CONST_SYMBOL_OFFSET
TAI_CONST_SYMBOL
****************************************************************************}
constructor tai_const_symbol.Create(_sym:tasmsymbol);
@ -909,6 +910,17 @@ uses
end;
constructor tai_const_symbol.Createdataname(const name:string);
begin
inherited Create;
typ:=ait_const_symbol;
sym:=objectlibrary.newasmsymboltype(name,AB_EXTERNAL,AT_DATA);
offset:=0;
{ update sym info }
sym.increfs;
end;
constructor tai_const_symbol.ppuload(t:taitype;ppufile:tcompilerppufile);
begin
inherited ppuload(t,ppufile);
@ -1714,13 +1726,13 @@ uses
end;
end;
end;
procedure Taasmoutput.convert_registers;
var p:Tai;
i:shortint;
r:Preference;
begin
p:=Tai(first);
while assigned(p) do
@ -1754,7 +1766,10 @@ uses
end.
{
$Log$
Revision 1.19 2003-01-21 08:48:08 daniel
Revision 1.20 2003-01-30 21:46:20 peter
* tai_const_symbol.createdataname added
Revision 1.19 2003/01/21 08:48:08 daniel
* Another 200301081 fixed
Revision 1.18 2003/01/09 20:40:59 daniel

View File

@ -188,7 +188,7 @@ implementation
begin
If (hp.u.flags and uf_threadvars)=uf_threadvars then
begin
ltvTables.concat(Tai_const_symbol.Createname(hp.u.modulename^+'_$THREADVARLIST'));
ltvTables.concat(Tai_const_symbol.Createdataname(hp.u.modulename^+'_$THREADVARLIST'));
inc(count);
end;
hp:=tused_unit(hp.next);
@ -196,7 +196,7 @@ implementation
{ Add program threadvars, if any }
If (current_module.flags and uf_threadvars)=uf_threadvars then
begin
ltvTables.concat(Tai_const_symbol.Createname(current_module.modulename^+'_$THREADVARLIST'));
ltvTables.concat(Tai_const_symbol.Createdataname(current_module.modulename^+'_$THREADVARLIST'));
inc(count);
end;
{ TableCount }
@ -223,7 +223,7 @@ implementation
(vo_is_thread_var in tvarsym(p).varoptions) then
begin
{ address of threadvar }
ltvTable.concat(tai_const_symbol.createname(tvarsym(p).mangledname));
ltvTable.concat(tai_const_symbol.createdataname(tvarsym(p).mangledname));
{ size of threadvar }
ltvTable.concat(tai_const.create_32bit(tvarsym(p).getsize));
end;
@ -266,7 +266,7 @@ implementation
begin
If (hp.u.flags and uf_has_resources)=uf_has_resources then
begin
ResourceStringTables.concat(Tai_const_symbol.Createname(hp.u.modulename^+'_RESOURCESTRINGLIST'));
ResourceStringTables.concat(Tai_const_symbol.Createdataname(hp.u.modulename^+'_RESOURCESTRINGLIST'));
inc(count);
end;
hp:=tused_unit(hp.next);
@ -274,7 +274,7 @@ implementation
{ Add program resources, if any }
If ResourceStringList<>Nil then
begin
ResourceStringTables.concat(Tai_const_symbol.Createname(current_module.modulename^+'_RESOURCESTRINGLIST'));
ResourceStringTables.concat(Tai_const_symbol.Createdataname(current_module.modulename^+'_RESOURCESTRINGLIST'));
Inc(Count);
end;
{ TableCount }
@ -1438,7 +1438,10 @@ implementation
end.
{
$Log$
Revision 1.93 2003-01-11 11:19:54 hajny
Revision 1.94 2003-01-30 21:46:20 peter
* tai_const_symbol.createdataname added
Revision 1.93 2003/01/11 11:19:54 hajny
* correction from rev. 1.88 put back
Revision 1.92 2003/01/08 18:43:56 daniel