2003-09-19 Michael Snyder <msnyder@redhat.com>
[deliverable/binutils-gdb.git] / cpu / frv.cpu
index 36e58044650dfa194a917d88437f07c583154316..8c33d96d77d6e6ddedafad49aef17f063a46c4f5 100644 (file)
@@ -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.
 ;
        () ; 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
   )
 )
 
-(ne-load-quad-r-simm nldqi  OP_46 GR    (ne-XI-size) 0 NA
-                    ((fr500 (unit u-gr-load))) "Load quad word")
 (ne-load-quad-r-simm nldqfi OP_4C FRint (ne-XI-size) 1 FR-ACCESS
                     ((fr500 (unit u-fr-load))) "Load quad float")
 
   (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)
This page took 0.027897 seconds and 4 git commands to generate.