qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC PATCH 00/13] target/arm: Derive cpu id regs from features
@ 2018-09-15 16:17 Richard Henderson
  2018-09-15 16:17 ` [Qemu-devel] [PATCH 01/13] target/arm: Add ARM_FEATURE_SWP Richard Henderson
                   ` (12 more replies)
  0 siblings, 13 replies; 17+ messages in thread
From: Richard Henderson @ 2018-09-15 16:17 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell

This is something we talked about in the context of enabling sve in
system mode.  We don't want to replicate info between these two locations.

I'm not 100% happy with this, thus the RFC.  In particular, there are
several places in id_isar0, id_isar2, and id_isar4 that expose micro-
architectural details of the cpus.  We cannot infer these values.
We'll not be able to replicate the exact id values without additional
changes.

But I'll also note that with ARM_FEATURE_SWP, we're now at 60 feature
bits, which means that we only have 4 remaining before we have to come
up with another solution there.

I do wonder if we should instead introduce some little inline functions
to test each of the current feature bits, and once that's done convert
those to test cpu->id_* bits.

Most, but not all, of the feature bits would go away.  We'd have the
exact id values one would expect for a given cpu without having to
replicate the info.

Thoughts, one way or the other?


r~


Richard Henderson (13):
  target/arm: Add ARM_FEATURE_SWP
  target/arm: Derive id_isar0 from features
  target/arm: Derive id_isar1 from features
  target/arm: Derive id_isar2 from features
  target/arm: Derive id_isar3 from features
  target/arm: Derive id_isar4 from features
  target/arm: Derive id_isar5 and id_isar6 from features
  target/arm: Derive id_pfr0 from features
  target/arm: Derive id_pfr1 from features
  target/arm: Derive id_aa64isar0 from features
  target/arm: Derive id_aa64isar1 from features
  target/arm: Derive id_aa64pfr0 from features
  target/arm: Remove assertions from resolve_id_regs

 target/arm/cpu.h       |   1 +
 linux-user/elfload.c   |   3 +-
 target/arm/cpu.c       | 381 +++++++++++++++++++++++++++++++++++++++++
 target/arm/translate.c |   4 +
 4 files changed, 388 insertions(+), 1 deletion(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2018-09-16 16:54 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-15 16:17 [Qemu-devel] [RFC PATCH 00/13] target/arm: Derive cpu id regs from features Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 01/13] target/arm: Add ARM_FEATURE_SWP Richard Henderson
2018-09-16  1:32   ` Peter Maydell
2018-09-16 15:53     ` Richard Henderson
2018-09-16 16:54       ` Peter Maydell
2018-09-15 16:17 ` [Qemu-devel] [PATCH 02/13] target/arm: Derive id_isar0 from features Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 03/13] target/arm: Derive id_isar1 " Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 04/13] target/arm: Derive id_isar2 " Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 05/13] target/arm: Derive id_isar3 " Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 06/13] target/arm: Derive id_isar4 " Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 07/13] target/arm: Derive id_isar5 and id_isar6 " Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 08/13] target/arm: Derive id_pfr0 " Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 09/13] target/arm: Derive id_pfr1 " Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 10/13] target/arm: Derive id_aa64isar0 " Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 11/13] target/arm: Derive id_aa64isar1 " Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 12/13] target/arm: Derive id_aa64pfr0 " Richard Henderson
2018-09-15 16:17 ` [Qemu-devel] [PATCH 13/13] target/arm: Remove assertions from resolve_id_regs Richard Henderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).