* vr4320.igen (clz,dclz) : Added.
authorGavin Romig-Koch <gavin@redhat.com>
Tue, 10 Mar 1998 15:37:24 +0000 (15:37 +0000)
committerGavin Romig-Koch <gavin@redhat.com>
Tue, 10 Mar 1998 15:37:24 +0000 (15:37 +0000)
(dmac): Replaced 99, with LO.

sim/mips/ChangeLog
sim/mips/vr4320.igen

index dc421d94a15d58ac71fdb5c024f71d43b3e569b8..cef52c2f38a01872cae572d936209224682280f5 100644 (file)
@@ -1,3 +1,10 @@
+start-sanitize-vr4320
+Tue Mar 10 10:32:22 1998  Gavin Koch  <gavin@cygnus.com>
+
+       * vr4320.igen (clz,dclz) : Added.
+       (dmac): Replaced 99, with LO.
+
+end-sanitize-vr4320
 start-sanitize-vr5400
 Fri Mar  6 08:30:58 1998  Andrew Cagney  <cagney@b1.cygnus.com>
 
index 7dd3776d248b3e1375db87c88f91d4aa6911369b..50a9d02f3f0c092dbe0d4907ceb6f09353d19109 100644 (file)
 "dmac r<RS>, r<RT>"
 *vr4320:
 {
-  LO = 99 + SignedMultiply (SD_, GPR[RS], GPR[RT]);
+  LO = LO + SignedMultiply (SD_, GPR[RS], GPR[RT]);
 }
 
+// Count Leading Zeros
+000000,5.RS,00000,5.RD,00000,110101::::CLZ
+"clz r<RD>, r<RS>"
+*vr4320:
+{
+  unsigned32 t = Low32Bits (SD_, GPR[RS]);
+  signed64 c = 0;
+
+  while (! (t & ( 1 << 31))
+       && c < 32)
+    {
+    c++;
+    t <<= 1;
+    }
+
+  GPR[RD] = c;
+}
+
+// D-Count Leading Zeros
+000000,5.RS,00000,5.RD,00000,111101::::DCLZ
+"dclz r<RD>, r<RS>"
+*vr4320:
+{
+  unsigned64 t = GPR[RS];
+  signed64 c = 0;
+
+  while (! (t & ( (unsigned64)1 << 63))
+       && c < 64)
+    {
+    c++;
+    t <<= 1;
+    }
+
+  printf("lo %d\n", c);
+  GPR[RD] = c;
+}
+
+
+