summaryrefslogtreecommitdiffstats
path: root/target/xtensa/translate.c
diff options
context:
space:
mode:
authorMax Filippov2019-04-16 02:45:02 +0200
committerMax Filippov2019-05-15 19:31:44 +0200
commitc884400f2988b1f016e331e406ef9102c60d6722 (patch)
tree2f09f64eacb535afd7500b41e3cadbec763b26f8 /target/xtensa/translate.c
parenttarget/xtensa: implement DIWBUI.P opcode (diff)
downloadqemu-c884400f2988b1f016e331e406ef9102c60d6722.tar.gz
qemu-c884400f2988b1f016e331e406ef9102c60d6722.tar.xz
qemu-c884400f2988b1f016e331e406ef9102c60d6722.zip
target/xtensa: implement block prefetch option opcodes
Block prefetch option adds a bunch of non-privileged opcodes that may be implemented as nops since QEMU doesn't model caches. Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'target/xtensa/translate.c')
-rw-r--r--target/xtensa/translate.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c
index 24eb70d619..356eb99487 100644
--- a/target/xtensa/translate.c
+++ b/target/xtensa/translate.c
@@ -3078,6 +3078,9 @@ static const XtensaOpcodeOps core_ops[] = {
.translate = translate_dcache,
.op_flags = XTENSA_OP_PRIVILEGED,
}, {
+ .name = "dhi.b",
+ .translate = translate_nop,
+ }, {
.name = "dhu",
.translate = translate_dcache,
.op_flags = XTENSA_OP_PRIVILEGED,
@@ -3085,9 +3088,15 @@ static const XtensaOpcodeOps core_ops[] = {
.name = "dhwb",
.translate = translate_dcache,
}, {
+ .name = "dhwb.b",
+ .translate = translate_nop,
+ }, {
.name = "dhwbi",
.translate = translate_dcache,
}, {
+ .name = "dhwbi.b",
+ .translate = translate_nop,
+ }, {
.name = "dii",
.translate = translate_nop,
.op_flags = XTENSA_OP_PRIVILEGED,
@@ -3112,15 +3121,33 @@ static const XtensaOpcodeOps core_ops[] = {
.translate = translate_dcache,
.op_flags = XTENSA_OP_PRIVILEGED,
}, {
+ .name = "dpfm.b",
+ .translate = translate_nop,
+ }, {
+ .name = "dpfm.bf",
+ .translate = translate_nop,
+ }, {
.name = "dpfr",
.translate = translate_nop,
}, {
+ .name = "dpfr.b",
+ .translate = translate_nop,
+ }, {
+ .name = "dpfr.bf",
+ .translate = translate_nop,
+ }, {
.name = "dpfro",
.translate = translate_nop,
}, {
.name = "dpfw",
.translate = translate_nop,
}, {
+ .name = "dpfw.b",
+ .translate = translate_nop,
+ }, {
+ .name = "dpfw.bf",
+ .translate = translate_nop,
+ }, {
.name = "dpfwo",
.translate = translate_nop,
}, {
@@ -3628,6 +3655,21 @@ static const XtensaOpcodeOps core_ops[] = {
.par = (const uint32_t[]){true},
.op_flags = XTENSA_OP_PRIVILEGED,
}, {
+ .name = "pfend.a",
+ .translate = translate_nop,
+ }, {
+ .name = "pfend.o",
+ .translate = translate_nop,
+ }, {
+ .name = "pfnxt.f",
+ .translate = translate_nop,
+ }, {
+ .name = "pfwait.a",
+ .translate = translate_nop,
+ }, {
+ .name = "pfwait.o",
+ .translate = translate_nop,
+ }, {
.name = "pitlb",
.translate = translate_ptlb,
.par = (const uint32_t[]){false},