mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-03 20:49:35 +01:00
+ tai_const.Create_type_name and tai_const.Create_pint_unaligned
* some locations fixed, where dwarf generated assembler for aligned data accidently git-svn-id: trunk@25054 -
This commit is contained in:
parent
609f6255d4
commit
2cdb4adf39
@ -568,12 +568,14 @@ interface
|
||||
constructor Create_uleb128bit(_value : qword);
|
||||
constructor Create_aint(_value : aint);
|
||||
constructor Create_pint(_value : pint);
|
||||
constructor Create_pint_unaligned(_value : pint);
|
||||
constructor Create_sym(_sym:tasmsymbol);
|
||||
constructor Create_type_sym(_typ:taiconst_type;_sym:tasmsymbol);
|
||||
constructor Create_sym_offset(_sym:tasmsymbol;ofs:aint);
|
||||
constructor Create_rel_sym(_typ:taiconst_type;_sym,_endsym:tasmsymbol);
|
||||
constructor Create_rva_sym(_sym:tasmsymbol);
|
||||
constructor Createname(const name:string;ofs:aint);
|
||||
constructor Create_type_name(_typ:taiconst_type;const name:string;ofs:aint);
|
||||
constructor Create_nil_codeptr;
|
||||
constructor Create_nil_dataptr;
|
||||
constructor ppuload(t:taitype;ppufile:tcompilerppufile);override;
|
||||
@ -1608,6 +1610,17 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
constructor tai_const.Create_pint_unaligned(_value: pint);
|
||||
begin
|
||||
inherited Create;
|
||||
typ:=ait_const;
|
||||
consttype:=aitconst_ptr_unaligned;
|
||||
value:=_value;
|
||||
sym:=nil;
|
||||
endsym:=nil;
|
||||
end;
|
||||
|
||||
|
||||
constructor tai_const.Create_type_sym(_typ:taiconst_type;_sym:tasmsymbol);
|
||||
begin
|
||||
inherited Create;
|
||||
@ -1685,6 +1698,13 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
constructor tai_const.Create_type_name(_typ:taiconst_type;const name:string;ofs:aint);
|
||||
begin
|
||||
self.create_sym_offset(current_asmdata.RefAsmSymbol(name),ofs);
|
||||
consttype:=_typ;
|
||||
end;
|
||||
|
||||
|
||||
constructor tai_const.Create_nil_codeptr;
|
||||
begin
|
||||
inherited Create;
|
||||
|
||||
@ -2383,7 +2383,7 @@ implementation
|
||||
else
|
||||
begin
|
||||
templist.concat(tai_const.create_8bit(ord(DW_OP_addr)));
|
||||
templist.concat(tai_const.createname(sym.mangledname,offset));
|
||||
templist.concat(tai_const.Create_type_name(offsetabstype,sym.mangledname,offset));
|
||||
blocksize:=1+sizeof(puint);
|
||||
end;
|
||||
end;
|
||||
@ -2666,7 +2666,7 @@ implementation
|
||||
begin
|
||||
AddConstToAbbrev(ord(DW_FORM_block));
|
||||
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_uleb128bit(sym.value.len+sizeof(pint)));
|
||||
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_pint(sym.value.len));
|
||||
current_asmdata.asmlists[al_dwarf_info].concat(tai_const.create_pint_unaligned(sym.value.len));
|
||||
end;
|
||||
i:=0;
|
||||
size:=sym.value.len;
|
||||
@ -2838,13 +2838,13 @@ implementation
|
||||
end;
|
||||
*)
|
||||
templist.concat(tai_const.create_8bit(3));
|
||||
templist.concat(tai_const.create_pint(sym.addroffset));
|
||||
templist.concat(tai_const.create_pint_unaligned(sym.addroffset));
|
||||
blocksize:=1+sizeof(puint);
|
||||
end;
|
||||
toasm :
|
||||
begin
|
||||
templist.concat(tai_const.create_8bit(3));
|
||||
templist.concat(tai_const.createname(sym.mangledname,0));
|
||||
templist.concat(tai_const.create_type_name(offsetabstype,sym.mangledname,0));
|
||||
blocksize:=1+sizeof(puint);
|
||||
end;
|
||||
tovar:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user