Message ID | 20190514204447.17486-8-jcmvbkbc@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/xtensa: implement options for modern cores | expand |
On 5/14/19 10:44 PM, Max Filippov wrote: > Block prefetch option adds a bunch of non-privileged opcodes that may be > implemented as nops since QEMU doesn't model caches. > > Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> > --- > target/xtensa/translate.c | 42 ++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > > diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c > index 24eb70d619d5..356eb9948701 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}, > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
diff --git a/target/xtensa/translate.c b/target/xtensa/translate.c index 24eb70d619d5..356eb9948701 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},
Block prefetch option adds a bunch of non-privileged opcodes that may be implemented as nops since QEMU doesn't model caches. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com> --- target/xtensa/translate.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+)