summaryrefslogtreecommitdiffstats
path: root/target/ppc/translate_init.c
diff options
context:
space:
mode:
authorSuraj Jitindar Singh2017-05-02 08:37:16 +0200
committerDavid Gibson2017-05-11 01:45:15 +0200
commitc88305027d5a8dbeaacf04ad2ceba79a5c5fb91e (patch)
tree61d0e9fbcaa15662e1a1025c14b95b83cfe4972c /target/ppc/translate_init.c
parenttarget/ppc: Update tlbie to check privilege level based on GTSE (diff)
downloadqemu-c88305027d5a8dbeaacf04ad2ceba79a5c5fb91e.tar.gz
qemu-c88305027d5a8dbeaacf04ad2ceba79a5c5fb91e.tar.xz
qemu-c88305027d5a8dbeaacf04ad2ceba79a5c5fb91e.zip
target/ppc: Change tlbie invalid fields for POWER9 support
The tlbie[l] instructions are used to invalidate TLB entries used to cache address translations. In ISAv3.00 (POWER9) more fields were added to the tblie[l] instructions which were previously invalid. We don't care about any of these new fields since we just invalidate the whole world anyway but we need to not cause an illegal instruction exception when the instructions are called. We also don't want to allow an older processor to have these fields set since that would be invalid. Add a new GEN_HANDLER for the ISAv3 instructions with the correct invalid mask. These will only be generated to a POWER9 processor for now based on the instruction flag. Also remove the PPC_MEM_TLBIE instruction flag from the POWER9 processor definition to ensure the old tlbie isn't generated. Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'target/ppc/translate_init.c')
-rw-r--r--target/ppc/translate_init.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/target/ppc/translate_init.c b/target/ppc/translate_init.c
index 9b048cd1f3..fda30b0e1a 100644
--- a/target/ppc/translate_init.c
+++ b/target/ppc/translate_init.c
@@ -8960,7 +8960,7 @@ POWERPC_FAMILY(POWER9)(ObjectClass *oc, void *data)
PPC_FLOAT_EXT |
PPC_CACHE | PPC_CACHE_ICBI | PPC_CACHE_DCBZ |
PPC_MEM_SYNC | PPC_MEM_EIEIO |
- PPC_MEM_TLBIE | PPC_MEM_TLBSYNC |
+ PPC_MEM_TLBSYNC |
PPC_64B | PPC_64BX | PPC_ALTIVEC |
PPC_SEGMENT_64B | PPC_SLBI |
PPC_POPCNTB | PPC_POPCNTWD |