aboutsummaryrefslogtreecommitdiff
path: root/sim/mips/mips.igen
diff options
context:
space:
mode:
authorThiemo Seufer <ths@networkno.de>2007-02-19 17:53:29 +0000
committerThiemo Seufer <ths@networkno.de>2007-02-19 17:53:29 +0000
commitb1004875386035a68013bfc8f806e2aa434c4b06 (patch)
tree5c8866d6e2c8bcc5cc2b87ad79d95ef696845942 /sim/mips/mips.igen
parentf8df4c7704d349e0622d471b2e0d2bfb86cd5b2f (diff)
downloadfsf-binutils-gdb-b1004875386035a68013bfc8f806e2aa434c4b06.zip
fsf-binutils-gdb-b1004875386035a68013bfc8f806e2aa434c4b06.tar.gz
fsf-binutils-gdb-b1004875386035a68013bfc8f806e2aa434c4b06.tar.bz2
* mips.igen (jalr.hb, jr.hb): Add decoder for mip32r2/mips64r2
jumps with hazard barrier.
Diffstat (limited to 'sim/mips/mips.igen')
-rw-r--r--sim/mips/mips.igen19
1 files changed, 18 insertions, 1 deletions
diff --git a/sim/mips/mips.igen b/sim/mips/mips.igen
index 6109589..93f4f2d 100644
--- a/sim/mips/mips.igen
+++ b/sim/mips/mips.igen
@@ -1945,8 +1945,18 @@
DELAY_SLOT (temp);
}
+000000,5.RS,00000,5.RD,10000,001001:SPECIAL:32::JALR_HB
+"jalr.hb r<RS>":RD == 31
+"jalr.hb r<RD>, r<RS>"
+*mips32r2:
+*mips64r2:
+{
+ address_word temp = GPR[RS];
+ GPR[RD] = CIA + 8;
+ DELAY_SLOT (temp);
+}
-000000,5.RS,000000000000000,001000:SPECIAL:32::JR
+000000,5.RS,0000000000,00000,001000:SPECIAL:32::JR
"jr r<RS>"
*mipsI:
*mipsII:
@@ -1964,6 +1974,13 @@
DELAY_SLOT (GPR[RS]);
}
+000000,5.RS,0000000000,10000,001000:SPECIAL:32::JR_HB
+"jr.hb r<RS>"
+*mips32r2:
+*mips64r2:
+{
+ DELAY_SLOT (GPR[RS]);
+}
:function:::unsigned_word:do_load:unsigned access, address_word base, address_word offset
{