* merge from internal tree
authorFrank Ch. Eigler <fche@redhat.com>
Mon, 8 May 2000 23:07:39 +0000 (23:07 +0000)
committerFrank Ch. Eigler <fche@redhat.com>
Mon, 8 May 2000 23:07:39 +0000 (23:07 +0000)
2000-04-14  Gary Thomas  <gthomas@redhat.com>

* v850.igen: Define 'br *' as illegal since this is the only
way to provide a breakpoint on some v850 family processors.

sim/v850/ChangeLog
sim/v850/v850.igen

index 8a826f5d027667571afe384be16a0244f1ec01c5..cc69829f56a907fe2634c0d7671bf9d1562fce81 100644 (file)
@@ -1,3 +1,8 @@
+2000-04-14  Gary Thomas  <gthomas@redhat.com>
+
+       * v850.igen: Define 'br *' as illegal since this is the only
+       way to provide a breakpoint on some v850 family processors.
+
 2000-03-24  Frank Ch. Eigler  <fche@redhat.com>
 
        * v850.igen (ilgop): New insn pattern for four-byte breakpoints.
index eace5a1b13257284dff83c70e974113f1255aebf..7fe5370684d1559e66a0debd7cd3968ed269ca9e 100644 (file)
@@ -144,10 +144,16 @@ rrrrr,110110,RRRRR + iiiiiiiiiiiiiiii:VI:::andi
 ddddd,1011,ddd,cccc:III:::Bcond
 "b%s<cccc> <disp9>"
 {
-  int cond = condition_met (cccc);
-  if (cond)
-    nia = cia + disp9;
-  TRACE_BRANCH1 (cond);
+  int cond;
+  if ((ddddd == 0x00) && (ddd == 0x00) && (cccc == 0x05)) {
+    // Special case - treat "br *" like illegal instruction
+    sim_engine_halt (SD, CPU, NULL, cia, sim_stopped, SIM_SIGTRAP);
+  } else {
+    cond = condition_met (cccc);
+    if (cond)
+      nia = cia + disp9;
+    TRACE_BRANCH1 (cond);
+  }
 }
 
 
@@ -1158,6 +1164,11 @@ rrrrr,110101,RRRRR + iiiiiiiiiiiiiiii:VI:::xori
   sim_engine_halt (SD, CPU, NULL, cia, sim_stopped, SIM_SIGTRAP);
 }
 
+// True illegal instruction
+00000,111111,00000 + 00000,11111,100000:X:::ilgop
+{
+  sim_engine_halt (SD, CPU, NULL, cia, sim_stopped, SIM_SIGTRAP);
+}
 
 
 // DIVHN