2005-10-28 Dave Brolley <brolley@redhat.com>
[deliverable/binutils-gdb.git] / cpu / cris.cpu
index 6bfa539f90c4b17442efd25e1151657453260e48..d2c6fcf30a0e1aab3a736a9d77667da258dd9e0a 100644 (file)
@@ -18,7 +18,7 @@
 ;
 ; You should have received a copy of the GNU General Public License
 ; along with this program; if not, write to the Free Software
-; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+; Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 
 (include "simplify.inc")
 
            (sequence
              ()
              (set (mem size addr) value)
-             (set cbit 0))
+             ; Write failures are signalled (by whatever entity "sends
+             ; the signal") by setting P at time of the write above, if X
+             ; is set.  Here, we just need to copy P into C.
+             (set cbit pbit))
            (set cbit 1))
        (set (mem size addr) value))
 
    (cris-arit5 add SI Rd-sfield Rd-sfield Ps rbit rbit))
 )
 
+; MSTEP   Rs,Rd           [ Rd | 01111111 | Rs ]
+(dni-cdt-attr
+ mstep "Multiply step"
+ (MACH-PRE-V32)
+ "mstep $Rs,$Rd"
+ (+ Rd MODE_REGISTER RFIX_MSTEP SIZE_FIXED Rs)
+ (sequence
+   ((SI tmpd) (SI tmps))
+   (set tmps Rs)
+   (set tmpd (add (sll Rd 1) (if SI nbit tmps 0)))
+   (set Rd tmpd)
+   (setf-move SI tmpd))
+)
+
 ; DSTEP   Rs,Rd           [ Rd | 01101111 | Rs ]
 (dni-cdt
  dstep "Division step"
This page took 0.024944 seconds and 4 git commands to generate.