aboutsummaryrefslogtreecommitdiff
path: root/sim/mips/gencode.c
diff options
context:
space:
mode:
Diffstat (limited to 'sim/mips/gencode.c')
-rw-r--r--sim/mips/gencode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sim/mips/gencode.c b/sim/mips/gencode.c
index d2ca749..ae4f42a 100644
--- a/sim/mips/gencode.c
+++ b/sim/mips/gencode.c
@@ -2532,7 +2532,8 @@ build_instruction (doisa, features, mips16, insn)
printf(" op1 = WORD64LO(op1);\n");
printf(" /* NOTE: The jump occurs AFTER the next instruction has been executed */\n");
printf(" DSPC = op1;\n");
- if (insn->flags & LINK)
+ if ((insn->flags & LINK)
+ && ! (insn->flags & REG))
printf(" JALDELAYSLOT();\n");
else
printf(" DELAYSLOT();\n");