瀏覽代碼

* fixed bug in destroyrefs (indexes are now handled as pointers)

Jonas Maebe 26 年之前
父節點
當前提交
552b86f85b
共有 1 個文件被更改,包括 9 次插入5 次删除
  1. 9 5
      compiler/daopt386.pas

+ 9 - 5
compiler/daopt386.pas

@@ -1628,12 +1628,13 @@ Procedure DestroyRefs(p: pai; Const Ref: TReference; WhichReg: TRegister);
 Var Counter: TRegister;
 Var Counter: TRegister;
 Begin
 Begin
   WhichReg := Reg32(WhichReg);
   WhichReg := Reg32(WhichReg);
-  If ((Ref.base = ProcInfo.FramePointer) And
-      (Ref.Index = R_NO)) Or
-     Assigned(Ref.Symbol)
+  If (Ref.Index = R_NO) And
+     ((Ref.base = ProcInfo.FramePointer) Or
+      (Assigned(Ref.Symbol) And
+       (Ref.base = R_NO)))
     Then
     Then
 {write something to a parameter, a local or global variable, so
 {write something to a parameter, a local or global variable, so
-   * with uncertzain optimizations on:
+   * with uncertain optimizations on:
       - destroy the contents of registers whose contents have somewhere a
       - destroy the contents of registers whose contents have somewhere a
         "mov?? (Ref), %reg". WhichReg (this is the register whose contents
         "mov?? (Ref), %reg". WhichReg (this is the register whose contents
         are being written to memory) is not destroyed if it's StartMod is
         are being written to memory) is not destroyed if it's StartMod is
@@ -2350,7 +2351,10 @@ End.
 
 
 {
 {
  $Log$
  $Log$
- Revision 1.58  1999-09-05 12:37:50  jonas
+ Revision 1.59  1999-09-21 15:46:58  jonas
+   * fixed bug in destroyrefs (indexes are now handled as pointers)
+
+ Revision 1.58  1999/09/05 12:37:50  jonas
    * fixed typo's in -darithopt
    * fixed typo's in -darithopt
 
 
  Revision 1.57  1999/08/25 12:00:00  jonas
  Revision 1.57  1999/08/25 12:00:00  jonas