aboutsummaryrefslogtreecommitdiff
path: root/sim/m32r
diff options
context:
space:
mode:
Diffstat (limited to 'sim/m32r')
-rw-r--r--sim/m32r/ChangeLog5
-rw-r--r--sim/m32r/traps-linux.c11
2 files changed, 8 insertions, 8 deletions
diff --git a/sim/m32r/ChangeLog b/sim/m32r/ChangeLog
index 5243cda..19ddf8f 100644
--- a/sim/m32r/ChangeLog
+++ b/sim/m32r/ChangeLog
@@ -1,5 +1,10 @@
2021-07-01 Mike Frysinger <vapier@gentoo.org>
+ * traps-linux.c (m32r_trap): Change OPERATING_ENVIRONMENT check to
+ !USER_ENVIRONMENT. Jump to default switch case.
+
+2021-07-01 Mike Frysinger <vapier@gentoo.org>
+
* syscall.h: Change __NR_ prefix on all symbols to TARGET_LINUX_SYS_.
* traps-linux.c: Likewise. Include sim/callback.h & stdlib.h.
diff --git a/sim/m32r/traps-linux.c b/sim/m32r/traps-linux.c
index d60be7c..7aec04b 100644
--- a/sim/m32r/traps-linux.c
+++ b/sim/m32r/traps-linux.c
@@ -231,14 +231,8 @@ m32r_trap (SIM_CPU *current_cpu, PCADDR pc, int num)
unsigned int func, arg1, arg2, arg3, arg4, arg5, arg6, arg7;
int result, result2, errcode;
- if (STATE_ENVIRONMENT (sd) == OPERATING_ENVIRONMENT)
- {
- /* The new pc is the trap vector entry.
- We assume there's a branch there to some handler.
- Use cr5 as EVB (EIT Vector Base) register. */
- USI new_pc = m32rbf_h_cr_get (current_cpu, 5) + 0x40 + num * 4;
- return new_pc;
- }
+ if (STATE_ENVIRONMENT (sd) != USER_ENVIRONMENT)
+ goto case_default;
func = m32rbf_h_gr_get (current_cpu, 7);
arg1 = m32rbf_h_gr_get (current_cpu, 0);
@@ -1344,6 +1338,7 @@ m32r_trap (SIM_CPU *current_cpu, PCADDR pc, int num)
/* Do nothing. */
break;
+ case_default:
default :
{
/* Use cr5 as EVB (EIT Vector Base) register. */