* Adapt to changed R5900 SQC2 opcode.
authorFrank Ch. Eigler <fche@redhat.com>
Thu, 18 Jun 1998 15:11:28 +0000 (15:11 +0000)
committerFrank Ch. Eigler <fche@redhat.com>
Thu, 18 Jun 1998 15:11:28 +0000 (15:11 +0000)
Thu Jun 18 17:48:01 1998  Frank Ch. Eigler  <fche@cygnus.com>
* mips.igen (SDC2): Removed R5900 alternative.
* r5900.igen (SQC2): Updated bit pattern to
match changed R5900 specs.

sim/mips/mips.igen

index 4efde4a..3e48d7a 100644 (file)
 // start-sanitize-vr5400
 *vr5400:
 // end-sanitize-vr5400
-// start-sanitize-r5900
-*r5900:
-// end-sanitize-r5900
 // start-sanitize-tx19
 *tx19:
 // end-sanitize-tx19
 // start-sanitize-sky
 {
 #ifdef TARGET_SKY
-  address_word offset = EXTEND16 (OFFSET) << 2;
-  extern int sky_cpcond0;
-  if (sky_cpcond0 == 0)
-    DELAY_SLOT (NIA + offset);
+  extern int sky_cpcond0A;
+  if (sky_cpcond0A == 0)
+    {
+      address_word dest = NIA + (EXTEND16 (OFFSET) << 2);
+      TRACE_BRANCH_RESULT (dest);
+      DELAY_SLOT (dest);
+    }
+  else
+    {
+      TRACE_BRANCH_RESULT (NIA);
+    }
 #endif    
 }
 // end-sanitize-sky
 // start-sanitize-sky
 {
 #ifdef TARGET_SKY
-  address_word offset = EXTEND16 (OFFSET) << 2;
-  extern int sky_cpcond0;
-  if (sky_cpcond0 == 0)
-    DELAY_SLOT (NIA + offset);
+  extern int sky_cpcond0A;
+  if (sky_cpcond0A == 0)
+    {
+      address_word dest = NIA + (EXTEND16 (OFFSET) << 2);
+      TRACE_BRANCH_RESULT (dest);
+      DELAY_SLOT (dest);
+    }
+  else
+    {
+      TRACE_BRANCH_RESULT (0);
+      NULLIFY_NEXT_INSTRUCTION ();
+    }
 #endif
 }
 // end-sanitize-sky
 // start-sanitize-sky
 {
 #ifdef TARGET_SKY
-  address_word offset = EXTEND16 (OFFSET) << 2;
-  extern int sky_cpcond0;
-  if (sky_cpcond0 != 0)
-    DELAY_SLOT (NIA + offset);
+  extern int sky_cpcond0A;
+  if (sky_cpcond0A != 0)
+    {
+      address_word dest = NIA + (EXTEND16 (OFFSET) << 2);
+      TRACE_BRANCH_RESULT (dest);
+      DELAY_SLOT (dest);
+    }
+  else
+    {
+      TRACE_BRANCH_RESULT (NIA);
+    }
 #endif
 }
 // end-sanitize-sky
 // start-sanitize-sky
 {
 #ifdef TARGET_SKY
-  address_word offset = EXTEND16 (OFFSET) << 2;
-  extern int sky_cpcond0;
-  if (sky_cpcond0 != 0)
-    DELAY_SLOT (NIA + offset);
+  extern int sky_cpcond0A;
+  if (sky_cpcond0A != 0)
+    {
+      address_word dest = NIA + (EXTEND16 (OFFSET) << 2);
+      TRACE_BRANCH_RESULT (dest);
+      DELAY_SLOT (dest);
+    }
+  else
+    {
+      TRACE_BRANCH_RESULT (0);
+      NULLIFY_NEXT_INSTRUCTION ();
+    }
 #endif
 }
 // end-sanitize-sky