qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2 00/15] Base for adding PowerPC 64-bit instructions


From: Luis Pires
Subject: [PATCH v2 00/15] Base for adding PowerPC 64-bit instructions
Date: Tue, 27 Apr 2021 14:16:34 -0300

This series provides the basic infrastructure for adding the new 32/64-bit
instructions in Power ISA 3.1 to target/ppc.

It starts by changing decodetree.py to support 64-bit instructions,
then changes the target/ppc code to allow 32- and 64-bit instructions
to be decoded using decodetree, and finishes by adding the implementation
for an initial group of instructions to demonstrate the new approach:
- addis/addis/paddi
- pnop
- integer loads/stores (both prefixed and non-prefixed)

Link to the changes in Github:
https://github.com/PPC64/qemu/tree/lffpires-ppc-isa31-1

v2:
- Store current pc in ctx instead of insn_size
- Use separate decode files for 32- and 64-bit instructions
- Improvements to the exception/is_jmp logic
- Use translator_loop_temp_check()
- Moved logic to prevent translation from crossing page boundaries
- Additional instructions using decodetree: addis, pnop, loads/stores
- Added check for prefixed insn support in cpu flags

This code contains contributions from Richard Henderson, Matheus Ferst
and myself.

Luis Pires (2):
  decodetree: Add support for 64-bit instructions
  target/ppc: Check cpu flags for prefixed insn support

Richard Henderson (13):
  target/ppc: Add cia field to DisasContext
  target/ppc: Split out decode_legacy
  target/ppc: Move DISAS_NORETURN setting into gen_exception*
  target/ppc: Tidy exception vs exit_tb
  target/ppc: Mark helper_raise_exception* as noreturn
  target/ppc: Use translator_loop_temp_check
  target/ppc: Add infrastructure for prefixed insns
  target/ppc: Move ADDI, ADDIS to decodetree, implement PADDI
  target/ppc: Implement PNOP
  target/ppc: Move D/DS/X-form integer loads to decodetree
  target/ppc: Implement prefixed integer load instructions
  target/ppc: Move D/DS/X-form integer stores to decodetree
  target/ppc: Implement prefixed integer store instructions

 docs/devel/decodetree.rst                  |   5 +-
 scripts/decodetree.py                      |  26 +-
 target/ppc/cpu.h                           |   1 +
 target/ppc/helper.h                        |   4 +-
 target/ppc/insn32.decode                   |  85 ++++
 target/ppc/insn64.decode                   |  64 +++
 target/ppc/meson.build                     |   9 +
 target/ppc/translate.c                     | 513 +++++++--------------
 target/ppc/translate/fixedpoint-impl.c.inc | 424 +++++++++++++++++
 target/ppc/translate_init.c.inc            |  42 +-
 10 files changed, 798 insertions(+), 375 deletions(-)
 create mode 100644 target/ppc/insn32.decode
 create mode 100644 target/ppc/insn64.decode
 create mode 100644 target/ppc/translate/fixedpoint-impl.c.inc

-- 
2.25.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]