mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-08 12:59: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_uleb128bit(_value : qword);
|
||||||
constructor Create_aint(_value : aint);
|
constructor Create_aint(_value : aint);
|
||||||
constructor Create_pint(_value : pint);
|
constructor Create_pint(_value : pint);
|
||||||
|
constructor Create_pint_unaligned(_value : pint);
|
||||||
constructor Create_sym(_sym:tasmsymbol);
|
constructor Create_sym(_sym:tasmsymbol);
|
||||||
constructor Create_type_sym(_typ:taiconst_type;_sym:tasmsymbol);
|
constructor Create_type_sym(_typ:taiconst_type;_sym:tasmsymbol);
|
||||||
constructor Create_sym_offset(_sym:tasmsymbol;ofs:aint);
|
constructor Create_sym_offset(_sym:tasmsymbol;ofs:aint);
|
||||||
constructor Create_rel_sym(_typ:taiconst_type;_sym,_endsym:tasmsymbol);
|
constructor Create_rel_sym(_typ:taiconst_type;_sym,_endsym:tasmsymbol);
|
||||||
constructor Create_rva_sym(_sym:tasmsymbol);
|
constructor Create_rva_sym(_sym:tasmsymbol);
|
||||||
constructor Createname(const name:string;ofs:aint);
|
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_codeptr;
|
||||||
constructor Create_nil_dataptr;
|
constructor Create_nil_dataptr;
|
||||||
constructor ppuload(t:taitype;ppufile:tcompilerppufile);override;
|
constructor ppuload(t:taitype;ppufile:tcompilerppufile);override;
|
||||||
@ -1608,6 +1610,17 @@ implementation
|
|||||||
end;
|
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);
|
constructor tai_const.Create_type_sym(_typ:taiconst_type;_sym:tasmsymbol);
|
||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
@ -1685,6 +1698,13 @@ implementation
|
|||||||
end;
|
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;
|
constructor tai_const.Create_nil_codeptr;
|
||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
|
|||||||
@ -2383,7 +2383,7 @@ implementation
|
|||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
templist.concat(tai_const.create_8bit(ord(DW_OP_addr)));
|
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);
|
blocksize:=1+sizeof(puint);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2666,7 +2666,7 @@ implementation
|
|||||||
begin
|
begin
|
||||||
AddConstToAbbrev(ord(DW_FORM_block));
|
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_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;
|
end;
|
||||||
i:=0;
|
i:=0;
|
||||||
size:=sym.value.len;
|
size:=sym.value.len;
|
||||||
@ -2838,13 +2838,13 @@ implementation
|
|||||||
end;
|
end;
|
||||||
*)
|
*)
|
||||||
templist.concat(tai_const.create_8bit(3));
|
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);
|
blocksize:=1+sizeof(puint);
|
||||||
end;
|
end;
|
||||||
toasm :
|
toasm :
|
||||||
begin
|
begin
|
||||||
templist.concat(tai_const.create_8bit(3));
|
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);
|
blocksize:=1+sizeof(puint);
|
||||||
end;
|
end;
|
||||||
tovar:
|
tovar:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user