summaryrefslogtreecommitdiff
path: root/sim/v850
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@redhat.com>2000-05-08 23:07:39 +0000
committerFrank Ch. Eigler <fche@redhat.com>2000-05-08 23:07:39 +0000
commit7d350a58e4d85e44001c6b89b46851676ec2149a (patch)
tree2324fddf3fe61323124253426a27215bf861d5d5 /sim/v850
parent06e88976646d3153cbc10da33189ac804ba48c1b (diff)
downloadgdb-7d350a58e4d85e44001c6b89b46851676ec2149a.tar.gz
* merge from internal tree
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.
Diffstat (limited to 'sim/v850')
-rw-r--r--sim/v850/ChangeLog5
-rw-r--r--sim/v850/v850.igen19
2 files changed, 20 insertions, 4 deletions
diff --git a/sim/v850/ChangeLog b/sim/v850/ChangeLog
index 8a826f5d027..cc69829f56a 100644
--- a/sim/v850/ChangeLog
+++ b/sim/v850/ChangeLog
@@ -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.
diff --git a/sim/v850/v850.igen b/sim/v850/v850.igen
index eace5a1b132..7fe5370684d 100644
--- a/sim/v850/v850.igen
+++ b/sim/v850/v850.igen
@@ -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