[PATCH v3 00/16] target/mips: Convert nanoMIPS LSA opcode to decodetree

Philippe Mathieu-Daudé posted 16 patches 11 months, 3 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20241126140003.74871-1-philmd@linaro.org
Maintainers: John Snow <jsnow@redhat.com>, Cleber Rosa <crosa@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Aurelien Jarno <aurelien@aurel32.net>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Aleksandar Rikalo <arikalo@gmail.com>
target/mips/tcg/translate.h               | 10 +++
target/mips/tcg/micromips16.decode        | 20 ++++++
target/mips/tcg/micromips32.decode        | 19 +++++
target/mips/tcg/mips16e_16.decode         | 17 +++++
target/mips/tcg/mips16e_32.decode         | 18 +++++
target/mips/tcg/msa.decode                |  3 +-
target/mips/tcg/nanomips16.decode         | 16 +++++
target/mips/tcg/nanomips32.decode         | 14 ++++
target/mips/tcg/nanomips48.decode         | 16 +++++
target/mips/tcg/octeon.decode             |  8 +++
target/mips/tcg/rel6.decode               |  4 +-
target/mips/tcg/comput_translate.c        | 21 ++++++
target/mips/tcg/micromips_translate.c     | 43 ++++++++++++
target/mips/tcg/mips16e_translate.c       | 28 ++++++++
target/mips/tcg/nanomips_translate.c      | 43 ++++++++++++
target/mips/tcg/octeon_translate.c        | 12 ++++
target/mips/tcg/rel6_translate.c          |  5 ++
target/mips/tcg/translate.c               | 84 +++++++++--------------
target/mips/tcg/translate_addr_const.c    |  4 +-
target/mips/tcg/micromips_translate.c.inc | 29 ++++----
target/mips/tcg/mips16e_translate.c.inc   | 24 +++----
target/mips/tcg/nanomips_translate.c.inc  | 54 +++++++--------
scripts/decodetree.py                     |  4 ++
target/mips/tcg/meson.build               | 11 +++
24 files changed, 392 insertions(+), 115 deletions(-)
create mode 100644 target/mips/tcg/micromips16.decode
create mode 100644 target/mips/tcg/micromips32.decode
create mode 100644 target/mips/tcg/mips16e_16.decode
create mode 100644 target/mips/tcg/mips16e_32.decode
create mode 100644 target/mips/tcg/nanomips16.decode
create mode 100644 target/mips/tcg/nanomips32.decode
create mode 100644 target/mips/tcg/nanomips48.decode
create mode 100644 target/mips/tcg/comput_translate.c
create mode 100644 target/mips/tcg/micromips_translate.c
create mode 100644 target/mips/tcg/mips16e_translate.c
create mode 100644 target/mips/tcg/nanomips_translate.c
[PATCH v3 00/16] target/mips: Convert nanoMIPS LSA opcode to decodetree
Posted by Philippe Mathieu-Daudé 11 months, 3 weeks ago
Since v2:
- Fix translator_ld() calls
- Add support for 48-bit nanoMIPS opcodes
- Convert Load Immediate opcode
---

Prepare buildsys to decode micro/nanoMIPS opcodes using
the decodetree script.
Simplify gen_lsa/dsa() and convert micro/nanoMIPS LSA
opcode to decodetree.

Philippe Mathieu-Daudé (16):
  target/mips: Extract gen_base_index_addr() helper
  target/mips: Extract generic gen_lx() helper
  target/mips: Convert Octeon LX instructions to decodetree
  target/mips: Call translator_ld() in translate_insn() callees
  target/mips: Have gen_[d]lsa() callers add 1 to shift amount argument
  target/mips: Decode LSA shift amount using decodetree function
  target/mips: Introduce decode tree bindings for MIPS16e ASE
  target/mips: Introduce decode tree bindings for microMIPS ISA
  scripts/decodetree: Add support for 48-bit instructions
  target/mips: Introduce decode tree bindings for nanoMIPS ISA
  target/mips: Convert microMIPS LSA opcode to decodetree
  target/mips: Convert nanoMIPS LSA opcode to decodetree
  target/mips: Add gen_li() helper
  target/mips: Convert microMIPS LI opcode to decodetree
  target/mips: Convert MIPS16e LI opcodes to decodetree
  target/mips: Convert nanoMIPS LI opcodes to decodetree

 target/mips/tcg/translate.h               | 10 +++
 target/mips/tcg/micromips16.decode        | 20 ++++++
 target/mips/tcg/micromips32.decode        | 19 +++++
 target/mips/tcg/mips16e_16.decode         | 17 +++++
 target/mips/tcg/mips16e_32.decode         | 18 +++++
 target/mips/tcg/msa.decode                |  3 +-
 target/mips/tcg/nanomips16.decode         | 16 +++++
 target/mips/tcg/nanomips32.decode         | 14 ++++
 target/mips/tcg/nanomips48.decode         | 16 +++++
 target/mips/tcg/octeon.decode             |  8 +++
 target/mips/tcg/rel6.decode               |  4 +-
 target/mips/tcg/comput_translate.c        | 21 ++++++
 target/mips/tcg/micromips_translate.c     | 43 ++++++++++++
 target/mips/tcg/mips16e_translate.c       | 28 ++++++++
 target/mips/tcg/nanomips_translate.c      | 43 ++++++++++++
 target/mips/tcg/octeon_translate.c        | 12 ++++
 target/mips/tcg/rel6_translate.c          |  5 ++
 target/mips/tcg/translate.c               | 84 +++++++++--------------
 target/mips/tcg/translate_addr_const.c    |  4 +-
 target/mips/tcg/micromips_translate.c.inc | 29 ++++----
 target/mips/tcg/mips16e_translate.c.inc   | 24 +++----
 target/mips/tcg/nanomips_translate.c.inc  | 54 +++++++--------
 scripts/decodetree.py                     |  4 ++
 target/mips/tcg/meson.build               | 11 +++
 24 files changed, 392 insertions(+), 115 deletions(-)
 create mode 100644 target/mips/tcg/micromips16.decode
 create mode 100644 target/mips/tcg/micromips32.decode
 create mode 100644 target/mips/tcg/mips16e_16.decode
 create mode 100644 target/mips/tcg/mips16e_32.decode
 create mode 100644 target/mips/tcg/nanomips16.decode
 create mode 100644 target/mips/tcg/nanomips32.decode
 create mode 100644 target/mips/tcg/nanomips48.decode
 create mode 100644 target/mips/tcg/comput_translate.c
 create mode 100644 target/mips/tcg/micromips_translate.c
 create mode 100644 target/mips/tcg/mips16e_translate.c
 create mode 100644 target/mips/tcg/nanomips_translate.c

-- 
2.45.2


Re: [PATCH v3 00/16] target/mips: Convert nanoMIPS LSA opcode to decodetree
Posted by Philippe Mathieu-Daudé 4 months ago
On 26/11/24 14:59, Philippe Mathieu-Daudé wrote:
> Since v2:
> - Fix translator_ld() calls
> - Add support for 48-bit nanoMIPS opcodes
> - Convert Load Immediate opcode
> ---
> 
> Prepare buildsys to decode micro/nanoMIPS opcodes using
> the decodetree script.
> Simplify gen_lsa/dsa() and convert micro/nanoMIPS LSA
> opcode to decodetree.
> 
> Philippe Mathieu-Daudé (16):
>    target/mips: Extract gen_base_index_addr() helper
>    target/mips: Extract generic gen_lx() helper
>    target/mips: Convert Octeon LX instructions to decodetree

>    target/mips: Have gen_[d]lsa() callers add 1 to shift amount argument

Patches 1-3 & 5 queued.