mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-11 10:26:05 +02:00
* changed newasmsymbol to newasmsymboldata for data symbols
This commit is contained in:
parent
1372a617cb
commit
a069aadad0
@ -190,6 +190,7 @@ interface
|
||||
procedure DerefAsmsymbol(var s:tasmsymbol);
|
||||
{ asmsymbol }
|
||||
function newasmsymbol(const s : string) : tasmsymbol;
|
||||
function newasmsymboldata(const s : string) : tasmsymbol;
|
||||
function newasmsymboltype(const s : string;_bind:TAsmSymBind;_typ:TAsmsymtype) : tasmsymbol;
|
||||
function getasmsymbol(const s : string) : tasmsymbol;
|
||||
function renameasmsymbol(const sold, snew : string):tasmsymbol;
|
||||
@ -714,6 +715,21 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
function TAsmLibraryData.newasmsymboldata(const s : string) : tasmsymbol;
|
||||
var
|
||||
hp : tasmsymbol;
|
||||
begin
|
||||
hp:=tasmsymbol(symbolsearch.search(s));
|
||||
if not assigned(hp) then
|
||||
begin
|
||||
{ Not found, insert it as an External }
|
||||
hp:=tasmsymbol.create(s,AB_EXTERNAL,AT_DATA);
|
||||
symbolsearch.insert(hp);
|
||||
end;
|
||||
newasmsymboldata:=hp;
|
||||
end;
|
||||
|
||||
|
||||
function TAsmLibraryData.newasmsymboltype(const s : string;_bind:TAsmSymBind;_typ:Tasmsymtype) : tasmsymbol;
|
||||
var
|
||||
hp : tasmsymbol;
|
||||
@ -887,7 +903,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.13 2003-01-30 21:46:20 peter
|
||||
Revision 1.14 2003-04-06 21:11:23 olle
|
||||
* changed newasmsymbol to newasmsymboldata for data symbols
|
||||
|
||||
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
|
||||
|
@ -1487,7 +1487,7 @@ unit cgobj;
|
||||
begin
|
||||
if (cs_check_object in aktlocalswitches) then
|
||||
begin
|
||||
reference_reset_symbol(hrefvmt,objectlibrary.newasmsymbol(objdef.vmt_mangledname),0);
|
||||
reference_reset_symbol(hrefvmt,objectlibrary.newasmsymboldata(objdef.vmt_mangledname),0);
|
||||
a_paramaddr_ref(list,hrefvmt,paramanager.getintparaloc(2));
|
||||
a_param_reg(list,OS_ADDR,reg,paramanager.getintparaloc(1));
|
||||
a_call_name(list,'FPC_CHECK_OBJECT_EXT');
|
||||
@ -1719,7 +1719,10 @@ finalization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.80 2003-03-28 19:16:56 peter
|
||||
Revision 1.81 2003-04-06 21:11:23 olle
|
||||
* changed newasmsymbol to newasmsymboldata for data symbols
|
||||
|
||||
Revision 1.80 2003/03/28 19:16:56 peter
|
||||
* generic constructor working for i386
|
||||
* remove fixed self register
|
||||
* esi added as address register for i386
|
||||
|
@ -389,7 +389,7 @@ implementation
|
||||
if (oo_has_vmt in tobjectdef(methodpointer.resulttype.def).objectoptions) then
|
||||
begin
|
||||
location_reset(vmtloc,LOC_REFERENCE,OS_NO);
|
||||
reference_reset_symbol(vmtloc.reference,objectlibrary.newasmsymbol(tobjectdef(methodpointer.resulttype.def).vmt_mangledname),0);
|
||||
reference_reset_symbol(vmtloc.reference,objectlibrary.newasmsymboldata(tobjectdef(methodpointer.resulttype.def).vmt_mangledname),0);
|
||||
vmtrefaddr:=true;
|
||||
end;
|
||||
end
|
||||
@ -429,7 +429,7 @@ implementation
|
||||
{ constructor with extended syntax called from new }
|
||||
{ vmt }
|
||||
location_reset(vmtloc,LOC_REFERENCE,OS_ADDR);
|
||||
reference_reset_symbol(vmtloc.reference,objectlibrary.newasmsymbol(tobjectdef(methodpointer.resulttype.def).vmt_mangledname),0);
|
||||
reference_reset_symbol(vmtloc.reference,objectlibrary.newasmsymboldata(tobjectdef(methodpointer.resulttype.def).vmt_mangledname),0);
|
||||
vmtrefaddr:=true;
|
||||
end;
|
||||
hdisposen:
|
||||
@ -439,7 +439,7 @@ implementation
|
||||
secondpass(methodpointer);
|
||||
{ vmt }
|
||||
location_reset(vmtloc,LOC_REFERENCE,OS_ADDR);
|
||||
reference_reset_symbol(vmtloc.reference,objectlibrary.newasmsymbol(tobjectdef(methodpointer.resulttype.def).vmt_mangledname),0);
|
||||
reference_reset_symbol(vmtloc.reference,objectlibrary.newasmsymboldata(tobjectdef(methodpointer.resulttype.def).vmt_mangledname),0);
|
||||
vmtrefaddr:=true;
|
||||
{ self, load in register first when it requires a virtual call }
|
||||
location_reset(selfloc,LOC_REFERENCE,OS_ADDR);
|
||||
@ -543,7 +543,7 @@ implementation
|
||||
begin
|
||||
{ vmt }
|
||||
location_reset(vmtloc,LOC_REFERENCE,OS_ADDR);
|
||||
reference_reset_symbol(vmtloc.reference,objectlibrary.newasmsymbol(
|
||||
reference_reset_symbol(vmtloc.reference,objectlibrary.newasmsymboldata(
|
||||
tobjectdef(methodpointer.resulttype.def).vmt_mangledname),0);
|
||||
vmtrefaddr:=true;
|
||||
end;
|
||||
@ -1448,7 +1448,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.42 2003-04-04 15:38:56 peter
|
||||
Revision 1.43 2003-04-06 21:11:23 olle
|
||||
* changed newasmsymbol to newasmsymboldata for data symbols
|
||||
|
||||
Revision 1.42 2003/04/04 15:38:56 peter
|
||||
* moved generic code from n386cal to ncgcal, i386 now also
|
||||
uses the generic ncgcal
|
||||
|
||||
|
@ -136,7 +136,7 @@ interface
|
||||
(str_length(left)=0) then
|
||||
begin
|
||||
reference_reset(hr);
|
||||
hr.symbol:=objectlibrary.newasmsymbol('FPC_EMPTYCHAR');
|
||||
hr.symbol:=objectlibrary.newasmsymboldata('FPC_EMPTYCHAR');
|
||||
location.register:=rg.getaddressregister(exprasmlist);
|
||||
cg.a_loadaddr_ref_reg(exprasmlist,hr,location.register);
|
||||
end
|
||||
@ -157,7 +157,7 @@ interface
|
||||
(str_length(left)=0) then
|
||||
begin
|
||||
reference_reset(hr);
|
||||
hr.symbol:=objectlibrary.newasmsymbol('FPC_EMPTYCHAR');
|
||||
hr.symbol:=objectlibrary.newasmsymboldata('FPC_EMPTYCHAR');
|
||||
location.register:=rg.getaddressregister(exprasmlist);
|
||||
cg.a_loadaddr_ref_reg(exprasmlist,hr,location.register);
|
||||
end
|
||||
@ -385,7 +385,7 @@ interface
|
||||
end;
|
||||
cg.a_cmp_const_reg_label(exprasmlist,OS_32,OC_NE,0,location.register,l1);
|
||||
reference_reset(hr);
|
||||
hr.symbol:=objectlibrary.newasmsymbol('FPC_EMPTYCHAR');
|
||||
hr.symbol:=objectlibrary.newasmsymboldata('FPC_EMPTYCHAR');
|
||||
cg.a_loadaddr_ref_reg(exprasmlist,hr,location.register);
|
||||
cg.a_label(exprasmlist,l1);
|
||||
end;
|
||||
@ -511,7 +511,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.37 2003-03-28 19:16:56 peter
|
||||
Revision 1.38 2003-04-06 21:11:23 olle
|
||||
* changed newasmsymbol to newasmsymboldata for data symbols
|
||||
|
||||
Revision 1.37 2003/03/28 19:16:56 peter
|
||||
* generic constructor working for i386
|
||||
* remove fixed self register
|
||||
* esi added as address register for i386
|
||||
|
@ -1225,7 +1225,7 @@ implementation
|
||||
objectlibrary.getlabel(nextonlabel);
|
||||
|
||||
{ send the vmt parameter }
|
||||
reference_reset_symbol(href2,objectlibrary.newasmsymbol(excepttype.vmt_mangledname),0);
|
||||
reference_reset_symbol(href2,objectlibrary.newasmsymboldata(excepttype.vmt_mangledname),0);
|
||||
cg.a_paramaddr_ref(exprasmlist,href2,paramanager.getintparaloc(1));
|
||||
cg.a_call_name(exprasmlist,'FPC_CATCHES');
|
||||
|
||||
@ -1483,7 +1483,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.52 2003-03-28 19:16:56 peter
|
||||
Revision 1.53 2003-04-06 21:11:23 olle
|
||||
* changed newasmsymbol to newasmsymboldata for data symbols
|
||||
|
||||
Revision 1.52 2003/03/28 19:16:56 peter
|
||||
* generic constructor working for i386
|
||||
* remove fixed self register
|
||||
* esi added as address register for i386
|
||||
|
@ -228,7 +228,7 @@ implementation
|
||||
if left.nodetype=typen then
|
||||
begin
|
||||
hregister:=rg.getaddressregister(exprasmlist);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymbol(tobjectdef(left.resulttype.def).vmt_mangledname),0);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata(tobjectdef(left.resulttype.def).vmt_mangledname),0);
|
||||
cg.a_loadaddr_ref_reg(exprasmlist,href,hregister);
|
||||
end
|
||||
else
|
||||
@ -646,7 +646,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.22 2003-03-28 19:16:56 peter
|
||||
Revision 1.23 2003-04-06 21:11:23 olle
|
||||
* changed newasmsymbol to newasmsymboldata for data symbols
|
||||
|
||||
Revision 1.22 2003/03/28 19:16:56 peter
|
||||
* generic constructor working for i386
|
||||
* remove fixed self register
|
||||
* esi added as address register for i386
|
||||
|
@ -92,14 +92,14 @@ implementation
|
||||
location.reference.offset:=tabsolutesym(symtableentry).address;
|
||||
end
|
||||
else
|
||||
location.reference.symbol:=objectlibrary.newasmsymbol(tabsolutesym(symtableentry).mangledname);
|
||||
location.reference.symbol:=objectlibrary.newasmsymboldata(tabsolutesym(symtableentry).mangledname);
|
||||
end;
|
||||
constsym:
|
||||
begin
|
||||
if tconstsym(symtableentry).consttyp=constresourcestring then
|
||||
begin
|
||||
location_reset(location,LOC_CREFERENCE,OS_ADDR);
|
||||
location.reference.symbol:=objectlibrary.newasmsymbol(tconstsym(symtableentry).owner.name^+'_RESOURCESTRINGLIST');
|
||||
location.reference.symbol:=objectlibrary.newasmsymboldata(tconstsym(symtableentry).owner.name^+'_RESOURCESTRINGLIST');
|
||||
location.reference.offset:=tconstsym(symtableentry).resstrindex*16+8;
|
||||
end
|
||||
else
|
||||
@ -112,20 +112,20 @@ implementation
|
||||
{ C variable }
|
||||
if (vo_is_C_var in tvarsym(symtableentry).varoptions) then
|
||||
begin
|
||||
location.reference.symbol:=objectlibrary.newasmsymbol(tvarsym(symtableentry).mangledname);
|
||||
location.reference.symbol:=objectlibrary.newasmsymboldata(tvarsym(symtableentry).mangledname);
|
||||
end
|
||||
{ DLL variable }
|
||||
else if (vo_is_dll_var in tvarsym(symtableentry).varoptions) then
|
||||
begin
|
||||
hregister:=rg.getaddressregister(exprasmlist);
|
||||
location.reference.symbol:=objectlibrary.newasmsymbol(tvarsym(symtableentry).mangledname);
|
||||
location.reference.symbol:=objectlibrary.newasmsymboldata(tvarsym(symtableentry).mangledname);
|
||||
cg.a_load_ref_reg(exprasmlist,OS_ADDR,location.reference,hregister);
|
||||
reference_reset_base(location.reference,hregister,0);
|
||||
end
|
||||
{ external variable }
|
||||
else if (vo_is_external in tvarsym(symtableentry).varoptions) then
|
||||
begin
|
||||
location.reference.symbol:=objectlibrary.newasmsymbol(tvarsym(symtableentry).mangledname);
|
||||
location.reference.symbol:=objectlibrary.newasmsymboldata(tvarsym(symtableentry).mangledname);
|
||||
end
|
||||
{ thread variable }
|
||||
else if (vo_is_thread_var in tvarsym(symtableentry).varoptions) then
|
||||
@ -134,14 +134,14 @@ implementation
|
||||
objectlibrary.getlabel(norelocatelab);
|
||||
{ we've to allocate the register before we save the used registers }
|
||||
hregister:=rg.getaddressregister(exprasmlist);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymbol('FPC_THREADVAR_RELOCATE'),0);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata('FPC_THREADVAR_RELOCATE'),0);
|
||||
cg.a_load_ref_reg(exprasmlist,OS_ADDR,href,hregister);
|
||||
cg.a_cmp_const_reg_label(exprasmlist,OS_ADDR,OC_NE,0,hregister,dorelocatelab);
|
||||
{ no relocation needed, load the address of the variable only, the
|
||||
layout of a threadvar is (4 bytes pointer):
|
||||
0 - Threadvar index
|
||||
4 - Threadvar value in single threading }
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymbol(tvarsym(symtableentry).mangledname),POINTER_SIZE);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata(tvarsym(symtableentry).mangledname),POINTER_SIZE);
|
||||
cg.a_loadaddr_ref_reg(exprasmlist,href,hregister);
|
||||
cg.a_jmp_always(exprasmlist,norelocatelab);
|
||||
cg.a_label(exprasmlist,dorelocatelab);
|
||||
@ -149,7 +149,7 @@ implementation
|
||||
internalerror(200301171);
|
||||
{ don't save the allocated register else the result will be destroyed later }
|
||||
rg.saveusedintregisters(exprasmlist,pushed,[RS_ACCUMULATOR]-[hregister.number shr 8]);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymbol(tvarsym(symtableentry).mangledname),0);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata(tvarsym(symtableentry).mangledname),0);
|
||||
cg.a_param_ref(exprasmlist,OS_ADDR,href,paramanager.getintparaloc(1));
|
||||
{ the called procedure isn't allowed to change }
|
||||
{ any register except EAX }
|
||||
@ -238,7 +238,7 @@ implementation
|
||||
globalsymtable,
|
||||
staticsymtable :
|
||||
begin
|
||||
location.reference.symbol:=objectlibrary.newasmsymbol(tvarsym(symtableentry).mangledname);
|
||||
location.reference.symbol:=objectlibrary.newasmsymboldata(tvarsym(symtableentry).mangledname);
|
||||
end;
|
||||
stt_exceptsymtable:
|
||||
begin
|
||||
@ -248,7 +248,7 @@ implementation
|
||||
objectsymtable:
|
||||
begin
|
||||
if (sp_static in tvarsym(symtableentry).symoptions) then
|
||||
location.reference.symbol:=objectlibrary.newasmsymbol(tvarsym(symtableentry).mangledname)
|
||||
location.reference.symbol:=objectlibrary.newasmsymboldata(tvarsym(symtableentry).mangledname)
|
||||
else
|
||||
begin
|
||||
location.reference.base:=cg.g_load_self(exprasmlist);
|
||||
@ -377,7 +377,7 @@ implementation
|
||||
end;
|
||||
typedconstsym :
|
||||
begin
|
||||
location.reference.symbol:=objectlibrary.newasmsymbol(ttypedconstsym(symtableentry).mangledname);
|
||||
location.reference.symbol:=objectlibrary.newasmsymboldata(ttypedconstsym(symtableentry).mangledname);
|
||||
end;
|
||||
else internalerror(4);
|
||||
end;
|
||||
@ -970,7 +970,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.46 2003-03-28 19:16:56 peter
|
||||
Revision 1.47 2003-04-06 21:11:23 olle
|
||||
* changed newasmsymbol to newasmsymboldata for data symbols
|
||||
|
||||
Revision 1.46 2003/03/28 19:16:56 peter
|
||||
* generic constructor working for i386
|
||||
* remove fixed self register
|
||||
* esi added as address register for i386
|
||||
|
@ -122,7 +122,7 @@ implementation
|
||||
location.register:=rg.getaddressregister(exprasmlist);
|
||||
{ on 80386, LEA is the same as mov imm32 }
|
||||
reference_reset_symbol(href,
|
||||
objectlibrary.newasmsymbol(tobjectdef(tclassrefdef(resulttype.def).pointertype.def).vmt_mangledname),0);
|
||||
objectlibrary.newasmsymboldata(tobjectdef(tclassrefdef(resulttype.def).pointertype.def).vmt_mangledname),0);
|
||||
cg.a_loadaddr_ref_reg(exprasmlist,href,location.register);
|
||||
end;
|
||||
|
||||
@ -919,7 +919,10 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.44 2003-03-28 19:16:56 peter
|
||||
Revision 1.45 2003-04-06 21:11:23 olle
|
||||
* changed newasmsymbol to newasmsymboldata for data symbols
|
||||
|
||||
Revision 1.44 2003/03/28 19:16:56 peter
|
||||
* generic constructor working for i386
|
||||
* remove fixed self register
|
||||
* esi added as address register for i386
|
||||
|
@ -995,7 +995,7 @@ implementation
|
||||
if tsym(p).owner.symtabletype in [localsymtable,inlinelocalsymtable] then
|
||||
reference_reset_base(href,procinfo.framepointer,-tvarsym(p).address+tvarsym(p).owner.address_fixup)
|
||||
else
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymbol(tvarsym(p).mangledname),0);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata(tvarsym(p).mangledname),0);
|
||||
cg.g_initialize(list,tvarsym(p).vartype.def,href,false);
|
||||
end;
|
||||
end;
|
||||
@ -1019,7 +1019,7 @@ implementation
|
||||
if tsym(p).owner.symtabletype in [localsymtable,inlinelocalsymtable] then
|
||||
reference_reset_base(href,procinfo.framepointer,-tvarsym(p).address+tvarsym(p).owner.address_fixup)
|
||||
else
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymbol(tvarsym(p).mangledname),0);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata(tvarsym(p).mangledname),0);
|
||||
cg.g_finalize(list,tvarsym(p).vartype.def,href,false);
|
||||
end;
|
||||
end;
|
||||
@ -1028,7 +1028,7 @@ implementation
|
||||
if ttypedconstsym(p).is_writable and
|
||||
ttypedconstsym(p).typedconsttype.def.needs_inittable then
|
||||
begin
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymbol(ttypedconstsym(p).mangledname),0);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata(ttypedconstsym(p).mangledname),0);
|
||||
cg.g_finalize(list,ttypedconstsym(p).typedconsttype.def,href,false);
|
||||
end;
|
||||
end;
|
||||
@ -1466,9 +1466,9 @@ function returns in a register and the caller receives it in an other one}
|
||||
if (target_info.system in [system_i386_win32,system_i386_wdosx]) and
|
||||
(cs_profile in aktmoduleswitches) then
|
||||
begin
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymbol('etext'),0);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata('etext'),0);
|
||||
cg.a_paramaddr_ref(list,href,paraloc);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymbol('__image_base__'),0);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata('__image_base__'),0);
|
||||
cg.a_paramaddr_ref(list,href,paraloc);
|
||||
cg.a_call_name(list,'_monstartup');
|
||||
end;
|
||||
@ -1708,7 +1708,7 @@ function returns in a register and the caller receives it in an other one}
|
||||
else if is_object(procinfo._class) then
|
||||
begin
|
||||
cg.a_param_reg(list,OS_ADDR,r,paramanager.getintparaloc(2));
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymbol(procinfo._class.vmt_mangledname),0);
|
||||
reference_reset_symbol(href,objectlibrary.newasmsymboldata(procinfo._class.vmt_mangledname),0);
|
||||
cg.a_paramaddr_ref(list,href,paramanager.getintparaloc(1));
|
||||
end
|
||||
else
|
||||
@ -2005,7 +2005,10 @@ function returns in a register and the caller receives it in an other one}
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.82 2003-03-30 20:59:07 peter
|
||||
Revision 1.83 2003-04-06 21:11:23 olle
|
||||
* changed newasmsymbol to newasmsymboldata for data symbols
|
||||
|
||||
Revision 1.82 2003/03/30 20:59:07 peter
|
||||
* fix classmethod from classmethod call
|
||||
* move BeforeDestruction/AfterConstruction calls to
|
||||
genentrycode/genexitcode instead of generating them on the fly
|
||||
|
@ -236,7 +236,7 @@ implementation
|
||||
if not(tobjectdef(tclassrefdef(p.resulttype.def).pointertype.def).is_related(
|
||||
tobjectdef(tclassrefdef(t.def).pointertype.def))) then
|
||||
Message(cg_e_illegal_expression);
|
||||
curconstSegment.concat(Tai_const_symbol.Create(objectlibrary.newasmsymbol(tobjectdef(
|
||||
curconstSegment.concat(Tai_const_symbol.Create(objectlibrary.newasmsymboldata(tobjectdef(
|
||||
tclassrefdef(p.resulttype.def).pointertype.def).vmt_mangledname)));
|
||||
end;
|
||||
niln:
|
||||
@ -995,7 +995,10 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.65 2003-03-17 21:42:32 peter
|
||||
Revision 1.66 2003-04-06 21:11:23 olle
|
||||
* changed newasmsymbol to newasmsymboldata for data symbols
|
||||
|
||||
Revision 1.65 2003/03/17 21:42:32 peter
|
||||
* allow nil initialization of dynamic array
|
||||
|
||||
Revision 1.64 2003/01/02 20:45:08 peter
|
||||
|
@ -820,7 +820,7 @@ Begin
|
||||
end;
|
||||
globalsymtable,
|
||||
staticsymtable :
|
||||
opr.ref.symbol:=objectlibrary.newasmsymbol(tvarsym(sym).mangledname);
|
||||
opr.ref.symbol:=objectlibrary.newasmsymboldata(tvarsym(sym).mangledname);
|
||||
parasymtable :
|
||||
begin
|
||||
{ if we only want the offset we don't have to care
|
||||
@ -865,7 +865,7 @@ Begin
|
||||
localsymtable :
|
||||
begin
|
||||
if (vo_is_external in tvarsym(sym).varoptions) then
|
||||
opr.ref.symbol:=objectlibrary.newasmsymbol(tvarsym(sym).mangledname)
|
||||
opr.ref.symbol:=objectlibrary.newasmsymboldata(tvarsym(sym).mangledname)
|
||||
else
|
||||
begin
|
||||
{ if we only want the offset we don't have to care
|
||||
@ -926,7 +926,7 @@ Begin
|
||||
end;
|
||||
typedconstsym :
|
||||
begin
|
||||
opr.ref.symbol:=objectlibrary.newasmsymbol(ttypedconstsym(sym).mangledname);
|
||||
opr.ref.symbol:=objectlibrary.newasmsymboldata(ttypedconstsym(sym).mangledname);
|
||||
case ttypedconstsym(sym).typedconsttype.def.deftype of
|
||||
orddef,
|
||||
enumdef,
|
||||
@ -1582,7 +1582,10 @@ end;
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.54 2003-03-28 19:16:57 peter
|
||||
Revision 1.55 2003-04-06 21:11:23 olle
|
||||
* changed newasmsymbol to newasmsymboldata for data symbols
|
||||
|
||||
Revision 1.54 2003/03/28 19:16:57 peter
|
||||
* generic constructor working for i386
|
||||
* remove fixed self register
|
||||
* esi added as address register for i386
|
||||
|
Loading…
Reference in New Issue
Block a user