From 23600bb3cd7709fca21684899cb172b83f89b74a Mon Sep 17 00:00:00 2001
From: Dave Brolley <brolley@redhat.com>
Date: Fri, 12 Sep 2003 22:04:22 +0000
Subject: [PATCH] 2003-09-12  Dave Brolley  <brolley@redhat.com>

        * frv.cpu (u-clrgr, u-clrfr): New units of model fr500.
        (clear-ne-flag-r): Pass insn profiling in as an argument. Call
        frv_ref_SI to get input register referenced for profiling.
        (clear-ne-flag-all): Pass insn profiling in as an argument.
        (clrgr,clrfr,clrga,clrfa): Add profiling information.
---
 cpu/ChangeLog |  8 ++++++++
 cpu/frv.cpu   | 47 +++++++++++++++++++++++++++++++++++++----------
 2 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/cpu/ChangeLog b/cpu/ChangeLog
index 7d8dbf6579d..9074168bf5d 100644
--- a/cpu/ChangeLog
+++ b/cpu/ChangeLog
@@ -1,3 +1,11 @@
+2003-09-12  Dave Brolley  <brolley@redhat.com>
+
+	* frv.cpu (u-clrgr, u-clrfr): New units of model fr500.
+	(clear-ne-flag-r): Pass insn profiling in as an argument. Call
+	frv_ref_SI to get input register referenced for profiling.
+	(clear-ne-flag-all): Pass insn profiling in as an argument.
+	(clrgr,clrfr,clrga,clrfa): Add profiling information.
+
 2003-09-11  Michael Snyder  <msnyder@redhat.com>
 
 	* frv.cpu: Typographical corrections.
diff --git a/cpu/frv.cpu b/cpu/frv.cpu
index 36e58044650..e2e7359c27d 100644
--- a/cpu/frv.cpu
+++ b/cpu/frv.cpu
@@ -1,6 +1,6 @@
 ; Fujitsu FRV opcode support, for GNU Binutils.  -*- Scheme -*-
 ;
-; Copyright 2000, 2001 Free Software Foundation, Inc.
+; Copyright 2000, 2001, 2003 Free Software Foundation, Inc.
 ;
 ; Contributed by Red Hat Inc; developed under contract from Fujitsu.
 ;
@@ -158,6 +158,22 @@
 	() ; outputs
 	() ; profile action (default)
 	)
+  ; Clrgr unit
+  (unit u-clrgr "Clrgr Unit" ()
+	1 1 ; issue done
+	() ; state
+	((GRk INT -1)) ; inputs
+	() ; outputs
+	() ; profile action (default)
+	)
+  ; Clrfr unit
+  (unit u-clrfr "Clrfr Unit" ()
+	1 1 ; issue done
+	() ; state
+	((FRk INT -1)) ; inputs
+	() ; outputs
+	() ; profile action (default)
+	)
   ; GR set half unit
   (unit u-set-hilo "GR Set Half" ()
 	1 1 ; issue done
@@ -5734,33 +5750,44 @@
   (c-call VOID "@cpu@_clear_ne_flags" target_index is_float)
 )
 
-(define-pmacro (clear-ne-flag-r name op ope reg is_float attr comment)
+(define-pmacro (clear-ne-flag-r name op ope reg is_float attr profile comment)
   (dni name
        (comment)
        ((UNIT I01) (FR500-MAJOR I-6) (MACH simple,tomcat,fr500,frv) attr)
        (.str name "$pack $" reg "k")
        (+ pack (.sym reg k) op (rs-null) ope (GRj-null))
-       (clear-ne-flag-semantics (index-of (.sym reg k)) is_float)
-       ()
+       (sequence ()
+		 ; hack to get this referenced for profiling
+		 (c-raw-call VOID "frv_ref_SI" (.sym reg k))
+		 (clear-ne-flag-semantics (index-of (.sym reg k)) is_float))
+       profile
   )
 )
 
-(clear-ne-flag-r clrgr OP_0A OPE1_00 GR 0 NA        "Clear GR NE flag")
-(clear-ne-flag-r clrfr OP_0A OPE1_02 FR 1 FR-ACCESS "Clear FR NE flag")
+(clear-ne-flag-r clrgr OP_0A OPE1_00 GR 0 NA
+		 ((fr500 (unit u-clrgr)))
+		 "Clear GR NE flag")
+(clear-ne-flag-r clrfr OP_0A OPE1_02 FR 1 FR-ACCESS
+		 ((fr500 (unit u-clrfr)))
+		 "Clear FR NE flag")
 
-(define-pmacro (clear-ne-flag-all name op ope is_float attr comment)
+(define-pmacro (clear-ne-flag-all name op ope is_float attr profile comment)
   (dni name
        (comment)
        ((UNIT I01) (FR500-MAJOR I-6) (MACH simple,tomcat,fr500,frv) attr)
        (.str name "$pack")
        (+ pack (rd-null) op (rs-null) ope (GRj-null))
        (clear-ne-flag-semantics -1 is_float)
-       ()
+       profile
   )
 )
 
-(clear-ne-flag-all clrga OP_0A OPE1_01 0 NA        "Clear GR NE flag ALL")
-(clear-ne-flag-all clrfa OP_0A OPE1_03 1 FR-ACCESS "Clear FR NE flag ALL")
+(clear-ne-flag-all clrga OP_0A OPE1_01 0 NA
+		   ((fr500 (unit u-clrgr)))
+		   "Clear GR NE flag ALL")
+(clear-ne-flag-all clrfa OP_0A OPE1_03 1 FR-ACCESS
+		   ((fr500 (unit u-clrfr)))
+		   "Clear FR NE flag ALL")
 
 (define-pmacro (commit-semantics target_index is_float)
   (c-call VOID "@cpu@_commit" target_index is_float)
-- 
GitLab