mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-07 22:10:27 +02:00
+ additional extdebug check for wrong add_reg_instructions added
* too long manglednames are cut off at 200 chars using a crc
This commit is contained in:
parent
139913d009
commit
42e14b6825
@ -224,7 +224,7 @@ unit agarmgas;
|
||||
end;
|
||||
end
|
||||
else
|
||||
s:=s+sep+getopstr(taicpu(hp).oper[i]^);
|
||||
s:=s+sep+getopstr(taicpu(hp).oper[i]^);
|
||||
|
||||
sep:=',';
|
||||
end;
|
||||
@ -238,7 +238,11 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.22 2004-11-01 17:41:28 florian
|
||||
Revision 1.23 2004-11-06 17:44:47 florian
|
||||
+ additional extdebug check for wrong add_reg_instructions added
|
||||
* too long manglednames are cut off at 200 chars using a crc
|
||||
|
||||
Revision 1.22 2004/11/01 17:41:28 florian
|
||||
* fixed arm compilation with cgutils
|
||||
* ...
|
||||
|
||||
|
@ -206,7 +206,7 @@ unit cpupara;
|
||||
|
||||
procedure assignintreg;
|
||||
begin
|
||||
if nextintreg<=ord(NR_R3) then
|
||||
if nextintreg<=RS_R3 then
|
||||
begin
|
||||
paraloc^.loc:=LOC_REGISTER;
|
||||
paraloc^.register:=newreg(R_INTREGISTER,nextintreg,R_SUBWHOLE);
|
||||
@ -424,6 +424,7 @@ unit cpupara;
|
||||
else
|
||||
begin
|
||||
paraloc^.loc:=LOC_REFERENCE;
|
||||
paraloc^.size:=retcgsize;
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -471,7 +472,11 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.24 2004-11-01 09:23:01 florian
|
||||
Revision 1.25 2004-11-06 17:44:47 florian
|
||||
+ additional extdebug check for wrong add_reg_instructions added
|
||||
* too long manglednames are cut off at 200 chars using a crc
|
||||
|
||||
Revision 1.24 2004/11/01 09:23:01 florian
|
||||
* fixed handling of stack parameters on the arm
|
||||
|
||||
Revision 1.23 2004/10/31 12:37:11 florian
|
||||
|
@ -656,6 +656,10 @@ unit rgobj;
|
||||
supreg : tsuperregister;
|
||||
begin
|
||||
supreg:=getsupreg(r);
|
||||
{$ifdef extdebug}
|
||||
if supreg>=maxreginfo then
|
||||
internalerror(200411061);
|
||||
{$endif extdebug}
|
||||
if supreg>=first_imaginary then
|
||||
with reginfo[supreg] do
|
||||
begin
|
||||
@ -1993,11 +1997,16 @@ unit rgobj;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
begin
|
||||
writeln(sizeof(Treginfo));
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.149 2004-11-01 10:34:08 peter
|
||||
Revision 1.150 2004-11-06 17:44:47 florian
|
||||
+ additional extdebug check for wrong add_reg_instructions added
|
||||
* too long manglednames are cut off at 200 chars using a crc
|
||||
|
||||
Revision 1.149 2004/11/01 10:34:08 peter
|
||||
* regalloc bind to instructions need to get real ait_instruction
|
||||
|
||||
Revision 1.148 2004/10/31 23:18:29 jonas
|
||||
|
@ -840,7 +840,8 @@ implementation
|
||||
{$endif GDB}
|
||||
fmodule,
|
||||
{ other }
|
||||
gendef
|
||||
gendef,
|
||||
crc
|
||||
;
|
||||
|
||||
|
||||
@ -870,6 +871,7 @@ implementation
|
||||
var
|
||||
s,
|
||||
prefix : string;
|
||||
crc : dword;
|
||||
begin
|
||||
prefix:='';
|
||||
if not assigned(st) then
|
||||
@ -914,6 +916,12 @@ implementation
|
||||
if (target_info.system = system_powerpc_darwin) and
|
||||
(result[1] = 'L') then
|
||||
result := '_' + result;
|
||||
if length(result)>200 then
|
||||
begin
|
||||
s:=copy(result,1,200);
|
||||
crc:=UpdateCrc32(0,result[201],length(result)-200);
|
||||
result:=s+'_$crc$_$'+hexstr(crc,8);
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
@ -4362,6 +4370,8 @@ implementation
|
||||
function tprocdef.mangledname : string;
|
||||
var
|
||||
hp : TParaItem;
|
||||
s : string;
|
||||
crc : dword;
|
||||
begin
|
||||
if assigned(_mangledname) then
|
||||
begin
|
||||
@ -4385,6 +4395,13 @@ implementation
|
||||
mangledname:=mangledname+'$'+hp.paratype.def.mangledparaname;
|
||||
hp:=TParaItem(hp.next);
|
||||
end;
|
||||
{ cut off too long strings using a crc }
|
||||
if length(result)>200 then
|
||||
begin
|
||||
s:=copy(result,1,200);
|
||||
crc:=UpdateCrc32(0,result[201],length(result)-200);
|
||||
result:=s+'_$crc$_$'+hexstr(crc,8);
|
||||
end;
|
||||
{$ifdef compress}
|
||||
_mangledname:=stringdup(minilzw_encode(mangledname));
|
||||
{$else}
|
||||
@ -6219,7 +6236,11 @@ implementation
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.267 2004-11-05 21:07:13 florian
|
||||
Revision 1.268 2004-11-06 17:44:47 florian
|
||||
+ additional extdebug check for wrong add_reg_instructions added
|
||||
* too long manglednames are cut off at 200 chars using a crc
|
||||
|
||||
Revision 1.267 2004/11/05 21:07:13 florian
|
||||
* vmt offset of objects is no properly aligned when necessary
|
||||
|
||||
Revision 1.266 2004/11/04 17:58:48 peter
|
||||
|
Loading…
Reference in New Issue
Block a user