aboutsummaryrefslogtreecommitdiff
path: root/sim/microblaze/interp.c
diff options
context:
space:
mode:
Diffstat (limited to 'sim/microblaze/interp.c')
-rw-r--r--sim/microblaze/interp.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/sim/microblaze/interp.c b/sim/microblaze/interp.c
index 2bd067c..1292918 100644
--- a/sim/microblaze/interp.c
+++ b/sim/microblaze/interp.c
@@ -28,6 +28,7 @@
#include "sim-main.h"
#include "sim-options.h"
+#include "sim-syscall.h"
#include "microblaze-dis.h"
@@ -284,8 +285,18 @@ sim_engine_run (SIM_DESC sd,
IMM_ENABLE = 0;
}
else
- /* no delay slot: increment cycle count */
- bonus_cycles++;
+ {
+ if (op == brki && IMM == 8)
+ {
+ RETREG = sim_syscall (cpu, CPU.regs[12], CPU.regs[5],
+ CPU.regs[6], CPU.regs[7],
+ CPU.regs[8]);
+ PC = RD + INST_SIZE;
+ }
+
+ /* no delay slot: increment cycle count */
+ bonus_cycles++;
+ }
}
}