target/mips: Decode MIPS32 EVA load & store instructions
authorJames Hogan <james.hogan@imgtec.com>
Tue, 18 Jul 2017 11:55:51 +0000 (12:55 +0100)
committerYongbok Kim <yongbok.kim@imgtec.com>
Thu, 20 Jul 2017 21:42:26 +0000 (22:42 +0100)
commit7696414729b2d0f870c80ad1dd637d854bc78847
tree0c5a32d2778c43f5346d1159806c4f95d222c561
parentdd4096cd2ccc19384770f336c930259da7a54980
target/mips: Decode MIPS32 EVA load & store instructions

Implement decoding of MIPS32 EVA loads and stores. These access the user
address space from kernel mode when implemented, so for each instruction
we need to check that EVA is available from Config5.EVA & check for
sufficient COP0 privilege (with the new check_eva()), and then override
the mem_idx used for the operation.

Unfortunately some Loongson 2E instructions use overlapping encodings,
so we must be careful not to prevent those from being decoded when EVA
is absent.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Cc: Yongbok Kim <yongbok.kim@imgtec.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Yongbok Kim <yongbok.kim@imgtec.com>
Signed-off-by: Yongbok Kim <yongbok.kim@imgtec.com>
target/mips/translate.c