2003-10-10 Dave Brolley <brolley@redhat.com>
authorDave Brolley <brolley@redhat.com>
Fri, 10 Oct 2003 19:29:38 +0000 (19:29 +0000)
committerDave Brolley <brolley@redhat.com>
Fri, 10 Oct 2003 19:29:38 +0000 (19:29 +0000)
        * frv.cpu (dnpmop): New p-macro.
        (GRdoublek): Use dnpmop.
        (CPRdoublek, FRdoublei, FRdoublej, FRdoublek): Ditto.
        (store-double-r-r): Use (.sym regtype doublek).
        (r-store-double): Ditto.
        (store-double-r-r-u): Ditto.
        (conditional-store-double): Ditto.
        (conditional-store-double-u): Ditto.
        (store-double-r-simm): Ditto.
        (fmovs): Assign to UNIT FMALL.

cpu/ChangeLog
cpu/frv.cpu

index 5d09377205e7b9fdbe626c3045fdff176a1aa32a..faeb5a6e658aea790f49efe9d95743808fcc6991 100644 (file)
@@ -1,3 +1,16 @@
+2003-10-10  Dave Brolley  <brolley@redhat.com>
+
+       * frv.cpu (dnpmop): New p-macro.
+       (GRdoublek): Use dnpmop.
+       (CPRdoublek, FRdoublei, FRdoublej, FRdoublek): Ditto.
+       (store-double-r-r): Use (.sym regtype doublek).
+       (r-store-double): Ditto.
+       (store-double-r-r-u): Ditto.
+       (conditional-store-double): Ditto.
+       (conditional-store-double-u): Ditto.
+       (store-double-r-simm): Ditto.
+       (fmovs): Assign to UNIT FMALL.
+
 2003-10-06  Dave Brolley  <brolley@redhat.com>
 
        * frv.cpu, frv.opc: Add support for fr550.
index f70c3eb086d2fa19bd8e460ddbd88f2c5b338516..f7bb2960eaa9bcab3ee0f973066c07e0d05f84d3 100644 (file)
     )
 )
 
+; dnpmop: define-normal-parsed-mode-operand: Normal mode operand with parse handler
+(define-pmacro (dnpmop xname xcomment xattrs xtype xindex xmode xparse)
+  (define-operand
+    (name xname)
+    (comment xcomment)
+    (.splice attrs (.unsplice xattrs))
+    (type xtype)
+    (index xindex)
+    (mode xmode)
+    (handlers (parse xparse))
+    )
+)
+
 (dnop  pack "packing bit" () h-pack f-pack)
 
 (dnmop GRi        "source register 1"      () h-gr        f-GRi  SI)
 (dnmop GRk        "destination register"   () h-gr        f-GRk  SI)
 (dnmop GRkhi      "destination register"   () h-gr_hi     f-GRk  UHI)
 (dnmop GRklo      "destination register"   () h-gr_lo     f-GRk  UHI)
-(dnmop GRdoublek  "destination register"   () h-gr_double f-GRk  DI)
+(dnpmop GRdoublek "destination register"   () h-gr_double f-GRk  DI "even_register")
 (dnmop ACC40Si    "signed accumulator"     () h-acc40S    f-ACC40Si DI)
 (dnmop ACC40Ui    "unsigned accumulator"   () h-acc40U    f-ACC40Ui UDI)
 (dnmop ACC40Sk    "target accumulator"     () h-acc40S    f-ACC40Sk DI)
 (dnmop CPRi       "source register"        ((MACH frv)) h-cpr        f-CPRi SI)
 (dnmop CPRj       "source register"        ((MACH frv)) h-cpr        f-CPRj SI)
 (dnmop CPRk       "destination register"   ((MACH frv)) h-cpr        f-CPRk SI)
-(dnmop CPRdoublek "destination register"   ((MACH frv)) h-cpr_double f-CPRk DI)
+(dnpmop CPRdoublek "destination register"  ((MACH frv)) h-cpr_double f-CPRk DI "even_register")
 
 ; floating point operands
 (dnmop FRinti    "source register 1"      () h-fr_int    f-FRi SI)
 (dnmop FRk       "destination register"   () h-fr        f-FRk SF)
 (dnmop FRkhi     "destination register"   () h-fr_hi     f-FRk UHI)
 (dnmop FRklo     "destination register"   () h-fr_lo     f-FRk UHI)
-(dnmop FRdoublei "source register 1"      () h-fr_double f-FRi DF)
-(dnmop FRdoublej "source register 2"      () h-fr_double f-FRj DF)
-(dnmop FRdoublek "target register"        () h-fr_double f-FRk DF)
+(dnpmop FRdoublei "source register 1"     () h-fr_double f-FRi DF "even_register")
+(dnpmop FRdoublej "source register 2"     () h-fr_double f-FRj DF "even_register")
+(dnpmop FRdoublek "target register"       () h-fr_double f-FRk DF "even_register")
 
 (dnop CRi       "source register 1"       () h-cccr f-CRi)
 (dnop CRj       "source register 2"       () h-cccr f-CRj)
   (dni name
        (comment)
        ((UNIT STORE) (FR550-MAJOR I-4) (FR500-MAJOR I-3) (FR400-MAJOR I-3) attr)
-       (.str name "$pack $" regtype "k,@($GRi,$GRj)")
-       (+ pack (.sym regtype k) op GRi ope GRj)
+       (.str name "$pack $" regtype "doublek,@($GRi,$GRj)")
+       (+ pack (.sym regtype doublek) op GRi ope GRj)
        (sequence ((WI address))
                 (store-double-semantics mode regtype address GRj))
        profile
   (dni name
        (comment)
        ((UNIT STORE) (FR500-MAJOR I-3) (MACH frv) attr)
-       (.str name "$pack $" regtype "k,@($GRi,$GRj)")
-       (+ pack (.sym regtype k) op GRi ope GRj)
+       (.str name "$pack $" regtype "doublek,@($GRi,$GRj)")
+       (+ pack (.sym regtype doublek) op GRi ope GRj)
        (sequence ((WI address))
                 (store-double-semantics mode regtype address GRj)
                 (c-call VOID "@cpu@_check_recovering_store"
-                        address (index-of (.sym regtype k)) 8 is_float))
+                        address (index-of (.sym regtype doublek)) 8 is_float))
        profile
   )
 )
   (dni name
        (comment)
        ((UNIT STORE) (FR550-MAJOR I-4) (FR500-MAJOR I-3) (FR400-MAJOR I-3) attr)
-       (.str name "$pack $" regtype "k,@($GRi,$GRj)")
-       (+ pack (.sym regtype k) op GRi ope GRj)
+       (.str name "$pack $" regtype "doublek,@($GRi,$GRj)")
+       (+ pack (.sym regtype doublek) op GRi ope GRj)
        (sequence ((WI address))
                 (store-double-semantics mode regtype address GRj)
                 (set GRi address))
   (dni name
        (comment)
        ((UNIT STORE) (FR550-MAJOR I-4) (FR500-MAJOR I-3) (FR400-MAJOR I-3) CONDITIONAL attr)
-       (.str name "$pack $" regtype "k,@($GRi,$GRj),$CCi,$cond")
-       (+ pack (.sym regtype k) op GRi CCi  cond ope GRj)
+       (.str name "$pack $" regtype "doublek,@($GRi,$GRj),$CCi,$cond")
+       (+ pack (.sym regtype doublek) op GRi CCi  cond ope GRj)
        (if (eq CCi (or cond 2))
           (sequence ((WI address))
                     (store-double-semantics mode regtype address GRj)))
   (dni name
        (comment)
        ((UNIT STORE) (FR550-MAJOR I-4) (FR500-MAJOR I-3) (FR400-MAJOR I-3) CONDITIONAL attr)
-       (.str name "$pack $" regtype "k,@($GRi,$GRj),$CCi,$cond")
-       (+ pack (.sym regtype k) op GRi CCi  cond ope GRj)
+       (.str name "$pack $" regtype "doublek,@($GRi,$GRj),$CCi,$cond")
+       (+ pack (.sym regtype doublek) op GRi CCi  cond ope GRj)
        (if (eq CCi (or cond 2))
           (sequence ((WI address))
                     (store-double-semantics mode regtype address GRj)
   (dni name
        (comment)
        ((UNIT STORE) (FR550-MAJOR I-4) (FR500-MAJOR I-3) (FR400-MAJOR I-3) attr)
-       (.str name "$pack $" regtype "k,@($GRi,$d12)")
-       (+ pack (.sym regtype k) op GRi d12)
+       (.str name "$pack $" regtype "doublek,@($GRi,$d12)")
+       (+ pack (.sym regtype doublek) op GRi d12)
        (sequence ((WI address))
                 (store-double-semantics mode regtype address d12))
        profile
 (ne-floating-point-conversion nfstoi OP_79 OPE1_21 fix   SI FRj FRintk "NE convert Single to Integer")
 
 (register-transfer fmovs OP_79 OPE1_02
-                  FRj FRk FM01
+                  FRj FRk FMALL
                   ((FR500-MAJOR F-1) (FR550-MAJOR F-2) (MACH simple,tomcat,fr500,fr550,frv))
                   ((fr500 (unit u-fr2fr)))
                   "Move Single Float")