diff options
Diffstat (limited to 'sim/microblaze/interp.c')
-rw-r--r-- | sim/microblaze/interp.c | 15 |
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++; + } } } |