+ 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:
florian 2004-11-06 17:44:47 +00:00
parent 139913d009
commit 42e14b6825
4 changed files with 47 additions and 8 deletions

View File

@ -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
* ...

View File

@ -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

View File

@ -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

View File

@ -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