+ support for asd_reference, asd_weak_reference and asd_weak_definition

in AIX assembler writer

git-svn-id: trunk@20836 -
This commit is contained in:
Jonas Maebe 2012-04-11 18:06:09 +00:00
parent 5433db6a49
commit 1c91a555f4
2 changed files with 25 additions and 2 deletions

View File

@ -54,6 +54,7 @@ interface
procedure WriteWeakSymbolDef(s: tasmsymbol); virtual;
procedure WriteAixStringConst(hp: tai_string);
procedure WriteAixIntConst(hp: tai_const);
procedure WriteDirectiveName(dir: TAsmDirective); virtual;
public
function MakeCmdLine: TCmdStr; override;
procedure WriteTree(p:TAsmList);override;
@ -1317,7 +1318,7 @@ implementation
ait_directive :
begin
AsmWrite('.'+directivestr[tai_directive(hp).directive]+' ');
WriteDirectiveName(tai_directive(hp).directive);
if tai_directive(hp).name <>'' then
AsmWrite(tai_directive(hp).name);
AsmLn;
@ -1495,6 +1496,12 @@ implementation
end;
procedure TGNUAssembler.WriteDirectiveName(dir: TAsmDirective);
begin
AsmWrite('.'+directivestr[dir]+' ');
end;
procedure TGNUAssembler.WriteAsmList;
var
n : string;

View File

@ -54,9 +54,11 @@ unit agppcgas;
TPPCAIXAssembler=class(TPPCGNUAssembler)
constructor create(smart: boolean); override;
protected
function sectionname(atype: TAsmSectiontype; const aname: string; aorder: TAsmSectionOrder): string; override;
procedure WriteExtraHeader; override;
procedure WriteExtraFooter; override;
function sectionname(atype: TAsmSectiontype; const aname: string; aorder: TAsmSectionOrder): string; override;
procedure WriteDirectiveName(dir: TAsmDirective); override;
end;
topstr = string[4];
@ -493,6 +495,20 @@ unit agppcgas;
end;
procedure TPPCAIXAssembler.WriteDirectiveName(dir: TAsmDirective);
begin
case dir of
asd_reference:
AsmWrite('.ref ');
asd_weak_reference,
asd_weak_definition:
AsmWrite('.weak ');
else
inherited WriteDirectiveName(dir);
end;
end;
function TPPCAIXAssembler.sectionname(atype: TAsmSectiontype; const aname: string; aorder: TAsmSectionOrder): string;
begin
case atype of