mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-20 15:49:27 +02:00
* made target macos really work again after the dwarf merge
This commit is contained in:
parent
c70b07e9f3
commit
07e8c04224
@ -872,10 +872,33 @@ var
|
||||
{TODO: ? PadTabs(s,#0) }
|
||||
end;
|
||||
end;
|
||||
|
||||
ait_const_128bit:
|
||||
begin
|
||||
internalerror(200404291);
|
||||
end;
|
||||
ait_const_64bit:
|
||||
begin
|
||||
if assigned(tai_const(hp).sym) then
|
||||
internalerror(200404292);
|
||||
AsmWrite(ait_const2str[ait_const_32bit]);
|
||||
if target_info.endian = endian_little then
|
||||
begin
|
||||
AsmWrite(tostr(longint(lo(tai_const(hp).value))));
|
||||
AsmWrite(',');
|
||||
AsmWrite(tostr(longint(hi(tai_const(hp).value))));
|
||||
end
|
||||
else
|
||||
begin
|
||||
AsmWrite(tostr(longint(hi(tai_const(hp).value))));
|
||||
AsmWrite(',');
|
||||
AsmWrite(tostr(longint(lo(tai_const(hp).value))));
|
||||
end;
|
||||
AsmLn;
|
||||
end;
|
||||
|
||||
ait_const_uleb128bit,
|
||||
ait_const_sleb128bit,
|
||||
ait_const_128bit,
|
||||
ait_const_64bit,
|
||||
ait_const_32bit,
|
||||
ait_const_16bit,
|
||||
ait_const_8bit,
|
||||
@ -888,23 +911,68 @@ var
|
||||
repeat
|
||||
if assigned(tai_const(hp).sym) then
|
||||
begin
|
||||
if use_PR then
|
||||
if assigned(tai_const(hp).endsym) then
|
||||
begin
|
||||
if (tai_const(hp).endsym.typ = AT_FUNCTION) and use_PR then
|
||||
AsmWrite('.');
|
||||
|
||||
s:=tai_const(hp).endsym.name;
|
||||
ReplaceForbiddenChars(s);
|
||||
AsmWrite(s);
|
||||
inc(l,length(s));
|
||||
|
||||
if tai_const(hp).endsym.typ = AT_FUNCTION then
|
||||
begin
|
||||
if use_PR then
|
||||
AsmWrite('[PR]')
|
||||
else
|
||||
AsmWrite('[DS]');
|
||||
end
|
||||
else if not macos_direct_globals then
|
||||
AsmWrite(const_storage_class);
|
||||
|
||||
AsmWrite('-');
|
||||
inc(l,5); {Approx 5 extra, no need to be exactly}
|
||||
end;
|
||||
|
||||
if (tai_const(hp).sym.typ = AT_FUNCTION) and use_PR then
|
||||
AsmWrite('.');
|
||||
if assigned(tai_const(hp).endsym) then
|
||||
s:=tai_const(hp).endsym.name+'-'+tai_const(hp).sym.name
|
||||
|
||||
s:= tai_const(hp).sym.name;
|
||||
ReplaceForbiddenChars(s);
|
||||
AsmWrite(s);
|
||||
inc(l,length(s));
|
||||
|
||||
if tai_const(hp).sym.typ = AT_FUNCTION then
|
||||
begin
|
||||
if use_PR then
|
||||
AsmWrite('[PR]')
|
||||
else
|
||||
AsmWrite('[DS]');
|
||||
end
|
||||
else if not macos_direct_globals then
|
||||
AsmWrite(const_storage_class);
|
||||
inc(l,5); {Approx 5 extra, no need to be exactly}
|
||||
|
||||
if tai_const(hp).value > 0 then
|
||||
s:= '+'+tostr(tai_const(hp).value)
|
||||
else if tai_const(hp).value < 0 then
|
||||
s:= '-'+tostr(tai_const(hp).value)
|
||||
else
|
||||
s:=tai_const(hp).sym.name;
|
||||
ReplaceForbiddenChars(s);
|
||||
if tai_const(hp).value<>0 then
|
||||
InternalError(2002110101);
|
||||
if use_PR then
|
||||
AsmWriteLn('[PR]')
|
||||
else
|
||||
AsmWriteLn('[DS]');
|
||||
s:= '';
|
||||
if s<>'' then
|
||||
begin
|
||||
AsmWrite(s);
|
||||
inc(l,length(s));
|
||||
end;
|
||||
end
|
||||
else
|
||||
s:=tostr(tai_const(hp).value);
|
||||
AsmWrite(s);
|
||||
begin
|
||||
s:= tostr(tai_const(hp).value);
|
||||
AsmWrite(s);
|
||||
inc(l,length(s));
|
||||
end;
|
||||
|
||||
if (l>line_length) or
|
||||
(hp.next=nil) or
|
||||
(tai(hp.next).typ<>consttyp) then
|
||||
@ -968,40 +1036,40 @@ var
|
||||
end; { end for j:=0 ... }
|
||||
|
||||
{ do last line of lines }
|
||||
if counter < tai_string(hp).len then
|
||||
AsmWrite(#9'dc.b'#9);
|
||||
quoted:=false;
|
||||
for i:=counter to tai_string(hp).len-1 do
|
||||
begin
|
||||
{ it is an ascii character. }
|
||||
if (ord(tai_string(hp).str[i])>31) and
|
||||
(ord(tai_string(hp).str[i])<128) and
|
||||
(tai_string(hp).str[i]<>'''') and
|
||||
(tai_string(hp).str[i]<>'\') then
|
||||
begin
|
||||
if not(quoted) then
|
||||
begin
|
||||
if i>counter then
|
||||
AsmWrite(',');
|
||||
AsmWrite('''');
|
||||
end;
|
||||
AsmWrite(tai_string(hp).str[i]);
|
||||
quoted:=true;
|
||||
end { if > 31 and < 128 and " }
|
||||
else
|
||||
begin
|
||||
if quoted then
|
||||
AsmWrite('''');
|
||||
if i>counter then
|
||||
AsmWrite(',');
|
||||
quoted:=false;
|
||||
AsmWrite(tostr(ord(tai_string(hp).str[i])));
|
||||
end;
|
||||
end; { end for i:=0 to... }
|
||||
if quoted then
|
||||
AsmWrite('''');
|
||||
if counter < tai_string(hp).len then
|
||||
AsmWrite(#9'dc.b'#9);
|
||||
quoted:=false;
|
||||
for i:=counter to tai_string(hp).len-1 do
|
||||
begin
|
||||
{ it is an ascii character. }
|
||||
if (ord(tai_string(hp).str[i])>31) and
|
||||
(ord(tai_string(hp).str[i])<128) and
|
||||
(tai_string(hp).str[i]<>'''') and
|
||||
(tai_string(hp).str[i]<>'\') then
|
||||
begin
|
||||
if not(quoted) then
|
||||
begin
|
||||
if i>counter then
|
||||
AsmWrite(',');
|
||||
AsmWrite('''');
|
||||
end;
|
||||
AsmWrite(tai_string(hp).str[i]);
|
||||
quoted:=true;
|
||||
end { if > 31 and < 128 and " }
|
||||
else
|
||||
begin
|
||||
if quoted then
|
||||
AsmWrite('''');
|
||||
if i>counter then
|
||||
AsmWrite(',');
|
||||
quoted:=false;
|
||||
AsmWrite(tostr(ord(tai_string(hp).str[i])));
|
||||
end;
|
||||
end; { end for i:=0 to... }
|
||||
if quoted then
|
||||
AsmWrite('''');
|
||||
end;
|
||||
AsmLn;
|
||||
AsmLn;
|
||||
end;
|
||||
ait_label:
|
||||
begin
|
||||
@ -1343,7 +1411,10 @@ initialization
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.36 2004-06-20 08:55:31 florian
|
||||
Revision 1.37 2004-07-26 22:26:39 olle
|
||||
* made target macos really work again after the dwarf merge
|
||||
|
||||
Revision 1.36 2004/06/20 08:55:31 florian
|
||||
* logs truncated
|
||||
|
||||
Revision 1.35 2004/06/17 16:55:46 peter
|
||||
|
Loading…
Reference in New Issue
Block a user