mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-24 20:49:16 +02:00
- Applied patch by Christo Crause from #33914
git-svn-id: trunk@42493 -
This commit is contained in:
parent
030cf78ac5
commit
ff3372567f
@ -702,6 +702,9 @@ interface
|
|||||||
constructor Create_int_codeptr_unaligned(_value: int64);
|
constructor Create_int_codeptr_unaligned(_value: int64);
|
||||||
constructor Create_int_dataptr(_value: int64);
|
constructor Create_int_dataptr(_value: int64);
|
||||||
constructor Create_int_dataptr_unaligned(_value: int64);
|
constructor Create_int_dataptr_unaligned(_value: int64);
|
||||||
|
{$ifdef avr}
|
||||||
|
constructor Create_int_dataptr_unaligned(_value: int64; size: taiconst_type);
|
||||||
|
{$endif}
|
||||||
{$ifdef i8086}
|
{$ifdef i8086}
|
||||||
constructor Create_seg_name(const name:string);
|
constructor Create_seg_name(const name:string);
|
||||||
constructor Create_dgroup;
|
constructor Create_dgroup;
|
||||||
@ -1962,6 +1965,20 @@ implementation
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
{$ifdef avr}
|
||||||
|
constructor tai_const.Create_int_dataptr_unaligned(_value: int64;
|
||||||
|
size: taiconst_type);
|
||||||
|
begin
|
||||||
|
inherited Create;
|
||||||
|
typ:=ait_const;
|
||||||
|
consttype:=size;
|
||||||
|
sym:=nil;
|
||||||
|
endsym:=nil;
|
||||||
|
symofs:=0;
|
||||||
|
value:=_value;
|
||||||
|
end;
|
||||||
|
{$endif avr}
|
||||||
|
|
||||||
{$ifdef i8086}
|
{$ifdef i8086}
|
||||||
constructor tai_const.Create_seg_name(const name:string);
|
constructor tai_const.Create_seg_name(const name:string);
|
||||||
begin
|
begin
|
||||||
|
@ -48,6 +48,12 @@ interface
|
|||||||
DbgBase;
|
DbgBase;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
{$ifdef avr}
|
||||||
|
// re-map to larger types because of offsets required to distinguish different memory spaces
|
||||||
|
puint = cardinal;
|
||||||
|
pint = longint;
|
||||||
|
{$endif avr}
|
||||||
|
|
||||||
{ Tag names and codes. }
|
{ Tag names and codes. }
|
||||||
tdwarf_tag = (DW_TAG_padding := $00,DW_TAG_array_type := $01,
|
tdwarf_tag = (DW_TAG_padding := $00,DW_TAG_array_type := $01,
|
||||||
DW_TAG_class_type := $02,DW_TAG_entry_point := $03,
|
DW_TAG_class_type := $02,DW_TAG_entry_point := $03,
|
||||||
@ -538,6 +544,11 @@ implementation
|
|||||||
{ Implementation-defined range start. }
|
{ Implementation-defined range start. }
|
||||||
DW_LANG_hi_user = $ffff;
|
DW_LANG_hi_user = $ffff;
|
||||||
|
|
||||||
|
{$ifdef avr}
|
||||||
|
// More space required to include memory type offset
|
||||||
|
aitconst_ptr_unaligned = aitconst_32bit_unaligned;
|
||||||
|
{$endif avr}
|
||||||
|
|
||||||
type
|
type
|
||||||
{ Names and codes for macro information. }
|
{ Names and codes for macro information. }
|
||||||
tdwarf_macinfo_record_type = (DW_MACINFO_define := 1,DW_MACINFO_undef := 2,
|
tdwarf_macinfo_record_type = (DW_MACINFO_define := 1,DW_MACINFO_undef := 2,
|
||||||
@ -3142,7 +3153,12 @@ implementation
|
|||||||
end;
|
end;
|
||||||
*)
|
*)
|
||||||
templist.concat(tai_const.create_8bit(3));
|
templist.concat(tai_const.create_8bit(3));
|
||||||
|
{$ifdef avr}
|
||||||
|
// Add $800000 to indicate that the address is in memory space
|
||||||
|
templist.concat(tai_const.create_int_dataptr_unaligned(sym.addroffset + $800000, aitconst_ptr_unaligned));
|
||||||
|
{$else}
|
||||||
templist.concat(tai_const.create_int_dataptr_unaligned(sym.addroffset));
|
templist.concat(tai_const.create_int_dataptr_unaligned(sym.addroffset));
|
||||||
|
{$endif}
|
||||||
blocksize:=1+sizeof(puint);
|
blocksize:=1+sizeof(puint);
|
||||||
end;
|
end;
|
||||||
toasm :
|
toasm :
|
||||||
|
Loading…
Reference in New Issue
Block a user