summaryrefslogtreecommitdiff
path: root/compiler/aoptbase.pas
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2012-05-15 18:06:41 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2012-05-15 18:06:41 +0000
commit643a56d46222b88ab8d3aa77e50c310687b12d1d (patch)
treefdb107abc88c9127fa8686d41cfd2514177a90b7 /compiler/aoptbase.pas
parent82aafe830580d66448c0b7eb5ac7a2aa26468263 (diff)
downloadfpc-643a56d46222b88ab8d3aa77e50c310687b12d1d.tar.gz
* fixes some issues with reg. allocation information
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@21303 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/aoptbase.pas')
-rw-r--r--compiler/aoptbase.pas10
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/aoptbase.pas b/compiler/aoptbase.pas
index 0ac9cca969..42360616e1 100644
--- a/compiler/aoptbase.pas
+++ b/compiler/aoptbase.pas
@@ -47,7 +47,7 @@ unit aoptbase;
constructor create; virtual;
destructor destroy;override;
{ returns true if register Reg is used by instruction p1 }
- Function RegInInstruction(Reg: TRegister; p1: tai): Boolean;
+ Function RegInInstruction(Reg: TRegister; p1: tai): Boolean;virtual;
{ returns true if register Reg occurs in operand op }
Function RegInOp(Reg: TRegister; const op: toper): Boolean;
{ returns true if register Reg is used in the reference Ref }
@@ -201,12 +201,12 @@ unit aoptbase;
Current := Tai(Current.previous);
While Assigned(Current) And
(((Current.typ = ait_Marker) And
- Not(Tai_Marker(Current).Kind in [mark_AsmBlockEnd,mark_NoPropInfoEnd])) or
+ Not(Tai_Marker(Current).Kind in [mark_AsmBlockEnd{,mark_NoPropInfoEnd}])) or
(Current.typ In SkipInstr) or
((Current.typ = ait_label) And
labelCanBeSkipped(Tai_Label(Current)))) Do
Current := Tai(Current.previous);
- If Assigned(Current) And
+{ If Assigned(Current) And
(Current.typ = ait_Marker) And
(Tai_Marker(Current).Kind = mark_NoPropInfoEnd) Then
Begin
@@ -214,10 +214,10 @@ unit aoptbase;
((Current.typ <> ait_Marker) Or
(Tai_Marker(Current).Kind <> mark_NoPropInfoStart)) Do
Current := Tai(Current.previous);
- End;
+ End; }
Until Not(Assigned(Current)) Or
(Current.typ <> ait_Marker) Or
- (Tai_Marker(Current).Kind <> mark_NoPropInfoStart);
+ not(tai_Marker(current).Kind in [mark_NoPropInfoStart,mark_NoPropInfoEnd]);
If Not(Assigned(Current)) or
(Current.typ In SkipInstr) or
((Current.typ = ait_label) And