summaryrefslogtreecommitdiff
path: root/cpu
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2003-09-12 22:04:22 +0000
committerDave Brolley <brolley@redhat.com>2003-09-12 22:04:22 +0000
commit48fd4c97270ad40d385f3c138895289b0447762e (patch)
treea0be413903eed587b83434a17f3435dbc16bc2df /cpu
parent87a438ca3e1f2af0f267ef36234e06c8e47a9963 (diff)
downloadbinutils-redhat-48fd4c97270ad40d385f3c138895289b0447762e.tar.gz
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.
Diffstat (limited to 'cpu')
-rw-r--r--cpu/ChangeLog8
-rw-r--r--cpu/frv.cpu47
2 files changed, 45 insertions, 10 deletions
diff --git a/cpu/ChangeLog b/cpu/ChangeLog
index 7d8dbf6579..9074168bf5 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 36e5804465..e2e7359c27 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)