|
@@ -768,14 +768,18 @@ implementation
|
|
max_dist,
|
|
max_dist,
|
|
dist : aword;
|
|
dist : aword;
|
|
hp : tstatementnode;
|
|
hp : tstatementnode;
|
|
|
|
+ relabeling: boolean;
|
|
begin
|
|
begin
|
|
location_reset(location,LOC_VOID,OS_NO);
|
|
location_reset(location,LOC_VOID,OS_NO);
|
|
|
|
|
|
{ Relabel for inlining? }
|
|
{ Relabel for inlining? }
|
|
- if inlining_procedure and assigned(nodes) then
|
|
|
|
|
|
+ relabeling := false;
|
|
|
|
+ if assigned(nodes) and
|
|
|
|
+ (nodes^.statement.getrefs <> 0) then
|
|
begin
|
|
begin
|
|
objectlibrary.CreateUsedAsmSymbolList;
|
|
objectlibrary.CreateUsedAsmSymbolList;
|
|
relabelcaserecord(nodes);
|
|
relabelcaserecord(nodes);
|
|
|
|
+ relabeling := true;
|
|
end;
|
|
end;
|
|
|
|
|
|
objectlibrary.getlabel(endlabel);
|
|
objectlibrary.getlabel(endlabel);
|
|
@@ -926,7 +930,7 @@ implementation
|
|
while assigned(hp) do
|
|
while assigned(hp) do
|
|
begin
|
|
begin
|
|
{ relabel when inlining }
|
|
{ relabel when inlining }
|
|
- if inlining_procedure then
|
|
|
|
|
|
+ if relabeling then
|
|
begin
|
|
begin
|
|
if hp.left.nodetype<>labeln then
|
|
if hp.left.nodetype<>labeln then
|
|
internalerror(200211261);
|
|
internalerror(200211261);
|
|
@@ -953,7 +957,7 @@ implementation
|
|
cg.a_label(exprasmlist,endlabel);
|
|
cg.a_label(exprasmlist,endlabel);
|
|
|
|
|
|
{ Remove relabels for inlining }
|
|
{ Remove relabels for inlining }
|
|
- if inlining_procedure and
|
|
|
|
|
|
+ if relabeling and
|
|
assigned(nodes) then
|
|
assigned(nodes) then
|
|
begin
|
|
begin
|
|
{ restore used symbols }
|
|
{ restore used symbols }
|
|
@@ -970,7 +974,11 @@ begin
|
|
end.
|
|
end.
|
|
{
|
|
{
|
|
$Log$
|
|
$Log$
|
|
- Revision 1.64 2004-07-04 12:38:55 jonas
|
|
|
|
|
|
+ Revision 1.65 2004-07-22 10:07:09 jonas
|
|
|
|
+ * fixed relabeling (nextaltnr was never increased)
|
|
|
|
+ * fixed inlining of case statements at the node level
|
|
|
|
+
|
|
|
|
+ Revision 1.64 2004/07/04 12:38:55 jonas
|
|
* fixed regvar bug in tcginnode.pass_2
|
|
* fixed regvar bug in tcginnode.pass_2
|
|
|
|
|
|
Revision 1.63 2004/06/20 08:55:29 florian
|
|
Revision 1.63 2004/06/20 08:55:29 florian
|