summaryrefslogtreecommitdiffstats
path: root/disas/mips.c
diff options
context:
space:
mode:
authorLeon Alrae <leon.alrae@imgtec.com>2015-06-04 17:00:31 +0100
committerLeon Alrae <leon.alrae@imgtec.com>2015-06-11 10:13:29 +0100
commitce9782f40ac16660ea9437bfaa2c9c34d5ed8110 (patch)
tree359405ef71ce11ab76a77c82450f9af82f0c687e /disas/mips.c
parentadc370a48fd26b92188fa4848dfb088578b1936c (diff)
downloadhqemu-ce9782f40ac16660ea9437bfaa2c9c34d5ed8110.zip
hqemu-ce9782f40ac16660ea9437bfaa2c9c34d5ed8110.tar.gz
target-mips: add ERETNC instruction and Config5.LLB bit
ERETNC is identical to ERET except that an ERETNC will not clear the LLbit that is set by execution of an LL instruction, and thus when placed between an LL and SC sequence, will never cause the SC to fail. Presence of ERETNC is denoted by the Config5.LLB. Signed-off-by: Leon Alrae <leon.alrae@imgtec.com> Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'disas/mips.c')
-rw-r--r--disas/mips.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/disas/mips.c b/disas/mips.c
index 1afe0c5..832468c 100644
--- a/disas/mips.c
+++ b/disas/mips.c
@@ -2407,6 +2407,7 @@ const struct mips_opcode mips_builtin_opcodes[] =
{"emt", "", 0x41600be1, 0xffffffff, TRAP, 0, MT32 },
{"emt", "t", 0x41600be1, 0xffe0ffff, TRAP|WR_t, 0, MT32 },
{"eret", "", 0x42000018, 0xffffffff, 0, 0, I3|I32 },
+{"eretnc", "", 0x42000058, 0xffffffff, 0, 0, I33},
{"evpe", "", 0x41600021, 0xffffffff, TRAP, 0, MT32 },
{"evpe", "t", 0x41600021, 0xffe0ffff, TRAP|WR_t, 0, MT32 },
{"ext", "t,r,+A,+C", 0x7c000000, 0xfc00003f, WR_t|RD_s, 0, I33 },
OpenPOWER on IntegriCloud