From e04d281592028a91b2efa895671729a4aaf619f9 Mon Sep 17 00:00:00 2001
From: rtoy <rtoy>
Date: Tue, 6 Sep 2005 00:39:00 +0000
Subject: [PATCH] o The branch instructions were missing the branch attribute.
 o Fix typo in DEFINE-A-TAC-INSTRUCTION (frb should be frc).

---
 compiler/ppc/insts.lisp | 34 +++++++++++++++++++++++++++++-----
 1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/compiler/ppc/insts.lisp b/compiler/ppc/insts.lisp
index 53f9065d5..debed0b34 100644
--- a/compiler/ppc/insts.lisp
+++ b/compiler/ppc/insts.lisp
@@ -7,7 +7,7 @@
 ;;; Scott Fahlman or slisp-group@cs.cmu.edu.
 ;;;
 (ext:file-comment
-  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/insts.lisp,v 1.12 2005/06/19 02:41:04 rtoy Exp $")
+  "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/insts.lisp,v 1.13 2005/09/06 00:39:00 rtoy Exp $")
 ;;;
 ;;; **********************************************************************
 ;;;
@@ -1182,7 +1182,7 @@ about function addresses and register values.")
        (:printer a-tac ((op ,op) (xo ,xo) (rc ,rc)))
        (:cost ,cost)
        (:delay 1)
-       (:dependencies (reads fra) (reads frb) ,@other-reads
+       (:dependencies (reads fra) (reads frc) ,@other-reads
                       (writes frt) ,@other-writes)
        (:emitter
         (emit-a-form-inst segment 
@@ -1290,6 +1290,7 @@ about function addresses and register values.")
 (define-instruction bc (segment bo bi target)
   (:declare (type label target))
   (:printer b ((op 16) (aa 0) (lk 0)))
+  (:attributes branch)
   (:delay 1)
   (:dependencies (reads :ccr))
   (:emitter
@@ -1298,14 +1299,16 @@ about function addresses and register values.")
 (define-instruction bcl (segment bo bi target)
   (:declare (type label target))
   (:printer b ((op 16) (aa 0) (lk 1)))
+  (:attributes branch)
   (:delay 1)
-  (:dependencies (reads :ccr))
+  (:dependencies (reads :ccr) (writes :lr))
   (:emitter
    (emit-conditional-branch segment bo bi target nil t)))
 
 (define-instruction bca (segment bo bi target)
   (:declare (type label target))
   (:printer b ((op 16) (aa 1) (lk 0)))
+  (:attributes branch)
   (:delay 1)
   (:dependencies (reads :ccr))
   (:emitter
@@ -1314,8 +1317,9 @@ about function addresses and register values.")
 (define-instruction bcla (segment bo bi target)
   (:declare (type label target))
   (:printer b ((op 16) (aa 1) (lk 1)))
+  (:attributes branch)
   (:delay 1)
-  (:dependencies (reads :ccr))
+  (:dependencies (reads :ccr) (writes :lr))
   (:emitter
    (emit-conditional-branch segment bo bi target t t)))
 
@@ -1326,6 +1330,7 @@ about function addresses and register values.")
   (:declare (type label target))
   (:printer b ((op 16) (bo #.(valid-bo-encoding :bo-u)) (bi 0) (aa 0) (lk 0)) 
             '(:name :tab bd))
+  (:attributes branch)
   (:delay 1)
   (:emitter
    (emit-conditional-branch segment #.(valid-bo-encoding :bo-u) 0 target nil nil)))
@@ -1334,6 +1339,8 @@ about function addresses and register values.")
 (define-instruction bt (segment bi  target)
   (:printer b ((op 16) (bo #.(valid-bo-encoding :bo-t)) (aa 0) (lk 0))
             '(:name :tab bi ", " bd))
+  (:attributes branch)
+  (:dependencies (reads :ccr))
   (:delay 1)
   (:emitter
    (emit-conditional-branch segment #.(valid-bo-encoding :bo-t) bi target nil nil)))
@@ -1341,12 +1348,16 @@ about function addresses and register values.")
 (define-instruction bf (segment bi  target)
   (:printer b ((op 16) (bo #.(valid-bo-encoding :bo-f)) (aa 0) (lk 0))
             '(:name :tab bi ", " bd))
+  (:attributes branch)
+  (:dependencies (reads :ccr))
   (:delay 1)
   (:emitter
    (emit-conditional-branch segment #.(valid-bo-encoding :bo-f) bi target nil nil)))
 
 (define-instruction b? (segment cr-field-name cr-name  &optional (target nil target-p))
   (:delay 1)
+  (:attributes branch)
+  (:dependencies (reads :ccr))
   (:emitter 
    (unless target-p
      (setq target cr-name cr-name cr-field-name cr-field-name :cr0))
@@ -1367,12 +1378,14 @@ about function addresses and register values.")
 
 (define-instruction b (segment target)
   (:printer i ((op 18) (aa 0) (lk 0)))
+  (:attributes branch)
   (:delay 1)
   (:emitter
    (emit-i-form-branch segment target nil)))
 
 (define-instruction ba (segment target)
   (:printer i-abs ((op 18) (aa 1) (lk 0)))
+  (:attributes branch)
   (:delay 1)
   (:emitter
    (when (typep target 'fixup)
@@ -1383,13 +1396,17 @@ about function addresses and register values.")
 
 (define-instruction bl (segment target)
   (:printer i ((op 18) (aa 0) (lk 1)))
+  (:attributes branch)
   (:delay 1)
+  (:dependencies (writes :lr))
   (:emitter
    (emit-i-form-branch segment target t)))
 
 (define-instruction bla (segment target)
   (:printer i-abs ((op 18) (aa 1) (lk 1)))
+  (:attributes branch)
   (:delay 1)
+  (:dependencies (writes :lr))
   (:emitter
    (when (typep target 'fixup)
      (note-fixup segment :ba target)
@@ -1398,6 +1415,7 @@ about function addresses and register values.")
 
 (define-instruction blr (segment)
   (:printer xl-bo-bi ((op 19) (xo 16) (bo #.(valid-bo-encoding :bo-u))(bi 0) (lk 0))  '(:name))
+  (:attributes branch)
   (:delay 1)
   (:dependencies (reads :ccr) (reads :ctr))
   (:emitter
@@ -1405,6 +1423,7 @@ about function addresses and register values.")
 
 (define-instruction bclr (segment bo bi)
   (:printer xl-bo-bi ((op 19) (xo 16)))
+  (:attributes branch)
   (:delay 1)
   (:dependencies (reads :ccr) (reads :lr))
   (:emitter
@@ -1412,8 +1431,9 @@ about function addresses and register values.")
 
 (define-instruction bclrl (segment bo bi)
   (:printer xl-bo-bi ((op 19) (xo 16) (lk 1)))
+  (:attributes branch)
   (:delay 1)
-  (:dependencies (reads :ccr) (reads :lr))
+  (:dependencies (reads :ccr) (reads :lr) (write :lr))
   (:emitter
    (emit-x-form-inst segment 19 (valid-bo-encoding bo) (valid-bi-encoding bi) 0 16 1)))
 
@@ -1434,6 +1454,7 @@ about function addresses and register values.")
 
 (define-instruction bcctr (segment bo bi)
   (:printer xl-bo-bi ((op 19) (xo 528)))
+  (:attributes branch)
   (:delay 1)
   (:dependencies (reads :ccr) (reads :ctr))
   (:emitter
@@ -1441,6 +1462,7 @@ about function addresses and register values.")
 
 (define-instruction bcctrl (segment bo bi)
   (:printer xl-bo-bi ((op 19) (xo 528) (lk 1)))
+  (:attributes branch)
   (:delay 1)
   (:dependencies (reads :ccr) (reads :ctr) (writes :lr))
   (:emitter
@@ -1448,6 +1470,7 @@ about function addresses and register values.")
 
 (define-instruction bctr (segment)
   (:printer xl-bo-bi ((op 19) (xo 528) (bo #.(valid-bo-encoding :bo-u)) (bi 0) (lk 0))  '(:name))
+  (:attributes branch)
   (:delay 1)
   (:dependencies (reads :ccr) (reads :ctr))
   (:emitter
@@ -1455,6 +1478,7 @@ about function addresses and register values.")
 
 (define-instruction bctrl (segment)
   (:printer xl-bo-bi ((op 19) (xo 528) (bo #.(valid-bo-encoding :bo-u)) (bi 0) (lk 1))  '(:name))
+  (:attributes branch)
   (:delay 1)
   (:dependencies (reads :ccr) (reads :ctr))
   (:emitter
-- 
GitLab