Unify and QOMify (target|monitor)_disas
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v4 Latest7 patches 4 repliesIn review
- v37 patches 5 repliesSuperseded
- v27 patches 13 repliesSuperseded
Changes in v4 from the cover letter
Minor commit message tweaks.
Fix CPP contructor argument order.
Patches in v4 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/7 | disas: Add print_insn to disassemble infodisas.c include/ | +39 | 0 replies | |
| 2/7 | disas: QOMify target specific setupdisas.c include/ | +22 | 0 replies | |
| 3/7 | disas: arm-a64: Make printfer and stream variabledisas/ | +17 | 0 replies | |
| 4/7 | disas: arm: QOMify target specific disas setupdisas.c target-arm/ | +35 | 0 replies | |
| 5/7 | disas: microblaze: QOMify target specific disas setupdisas.c target-microblaze/ | +8 | 0 replies | |
| 6/7 | disas: cris: Fix 0 buffer length casedisas/ | +3 | 0 replies | |
| 7/7 | disas: cris: QOMify target specific disas setupdisas.c target-cris/ | +16 | 0 replies |
Reviews trailers per patch
All 7 patches have a Reviewed-by or Acked-by.
| Patch | Richard Henderson | Claudio Fontana | Peter Maydell | Edgar E. Iglesias |
|---|---|---|---|---|
| 1/7 | R-b | |||
| 2/7 | R-b | |||
| 3/7 | R-b | R-b T-b | ||
| 4/7 | R-b | |||
| 5/7 | R-b | |||
| 6/7 | R-b | |||
| 7/7 | R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 4 reviewers.
Cover letter [Qemu-devel] [PATCH qom v4 0/7] Unify and QOMify (target|monitor)_disas
These two functions are mostly trying to do the same thing, which is disassemble a target instruction (sequence) for printfing. The architecture specific setup is largely duped between the two functions.
The approach is to add a single QOM hook on the CPU level to setup the disassembler (P1&2). The two stage flags system is removed. That is, the old scheme, is for the translate/montitor code to pass in flags that disas.c then interprets. Instead the entire job of setting up arch specifics is outsourced to target-specific code (via the new QOM hook) removing the need for the flags system. Both monitor_disas and target_disas then calls this singly defined hook if it is available.
Three architectures (microblaze, cris and ARM) are patched to use the new QOMification and at the same time, make the monitor_disas consistent with target_disas. The #if defined TARGET_FOO for each is removed from disas.c (bringing us closer to the exciting goal of no #ifdef TARGET_FOO in system mode code).
Microblaze is trivial, the target_disas setup is directly applicable to monitor_disas to bring in microblaze monitor disas support (P5).
Cris had a small hiccup, a patch is needed to handle monitor_disas's 0 buffer length (P6). Then cris is patched to enable monitor disas in same way as microblaze (P7).
ARM is the harder. The vixl A64 disas was hardcoded to fprintf with a statically inited output stream (matching target_disas). The vixl printfery is patched to be runtime variable (P3). P4 brings ARM monitor disassembly online (via using the target_disas implementation as the QOMified implementation).
Changed since v3:
Minor commit message tweaks.
Fix CPP contructor argument order.
Changed since v2 (RTH/PMM review):
Rebased on monitor+disas ENV_GET_CPU removal
Fixed minor comments (see indiv patches).
Changed since v1 (RTH review):
Use QOMified approach.
Remove flags system.
Limit scope to only the 3 converted arches
Addressed comments on CPP constructor changes
Peter Crosthwaite (7):
disas: Add print_insn to disassemble info
disas: QOMify target specific setup
disas: arm-a64: Make printfer and stream variable
disas: arm: QOMify target specific disas setup
disas: microblaze: QOMify target specific disas setup
disas: cris: Fix 0 buffer length case
disas: cris: QOMify target specific disas setup
disas.c | 119 ++++++++++++++++++------------------------------ disas/arm-a64.cc | 22 +++++++-- disas/cris.c | 6 +-- include/disas/bfd.h | 6 +++ include/qom/cpu.h | 4 ++ target-arm/cpu.c | 35 ++++++++++++++ target-cris/cpu.c | 16 +++++++ target-microblaze/cpu.c | 8 ++++ 8 files changed, 133 insertions(+), 83 deletions(-)
Signature · 1 line
1.9.1