qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 17ed7c: tests/docker: Hexagon toolchain updat


From: Peter Maydell
Subject: [Qemu-commits] [qemu/qemu] 17ed7c: tests/docker: Hexagon toolchain update
Date: Tue, 23 Jan 2024 08:37:28 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 17ed7cec55c3f1baed7d4f62c3ef71b26e1b82c1
      
https://github.com/qemu/qemu/commit/17ed7cec55c3f1baed7d4f62c3ef71b26e1b82c1
  Author: Brian Cain <bcain@quicinc.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M tests/docker/dockerfiles/debian-hexagon-cross.docker

  Log Message:
  -----------
  tests/docker: Hexagon toolchain update

This update includes support for privileged instructions.

Signed-off-by: Brian Cain <bcain@quicinc.com>
Reviewed-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>
Tested-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>
Message-Id: <20240114232354.4109231-1-bcain@quicinc.com>


  Commit: ccdae09a8054731fbf49d5f223ff1903408a5ac3
      
https://github.com/qemu/qemu/commit/ccdae09a8054731fbf49d5f223ff1903408a5ac3
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/macros.h

  Log Message:
  -----------
  Hexagon (target/hexagon) Fix shadow variable when idef-parser is off

Adding -Werror=shadow=compatible-local causes Hexagon not to build
when idef-parser is off.  The "label" variable in CHECK_NOSHUF_PRED
shadows a variable in the surrounding code.

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20231130183955.54314-1-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: 421b53d589e2a714b3f3175dddedda9755e83387
      
https://github.com/qemu/qemu/commit/421b53d589e2a714b3f3175dddedda9755e83387
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/gen_tcg.h
    M target/hexagon/gen_tcg_funcs.py
    M target/hexagon/idef-parser/parser-helpers.c
    M target/hexagon/macros.h

  Log Message:
  -----------
  Hexagon (target/hexagon) Clean up handling of modifier registers

Currently, the register number (MuN) for modifier registers is the
modifier register number rather than the index into hex_gpr.  This
patch changes MuN to the hex_gpr index, which is consistent with
the handling of control registers.

Note that HELPER(fcircadd) needs the CS register corresponding to the
modifier register specified in the instruction.  We create a TCGv
variable "CS" to hold the value to pass to the helper.

Reviewed-by: Brian Cain <bcain@quicinc.com>
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Message-Id: <20231210220712.491494-2-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: b44780740d4a1b70ff45a6e4d923e29880ce3c0e
      
https://github.com/qemu/qemu/commit/b44780740d4a1b70ff45a6e4d923e29880ce3c0e
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/gen_tcg_funcs.py
    M target/hexagon/hex_common.py

  Log Message:
  -----------
  Hexagon (target/hexagon) Make generators object oriented - gen_tcg_funcs

The generators are generally a bunch of Python if-then-else
statements based on the regtype and regid.  Encapsulate regtype/regid
into a class hierarchy.  Clients lookup the register and invoke
methods.

This has several advantages for making the code easier to read,
understand, and maintain
- The class name makes it more clear what the operand does
- All the methods for a given type of operand are together
- Don't need hex_common.bad_register
  If a regtype/regid is missing, the lookup in hex_common.get_register
  will fail
- We can remove the functions in hex_common that use regtype/regid
  (e.g., is_read)

This patch creates the class hierarchy in hex_common and converts
gen_tcg_funcs.py.  The other scripts will be converted in subsequent
patches in this series.

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20231210220712.491494-3-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: c568919f98d87de203ef6c234f3baedcccbc380d
      
https://github.com/qemu/qemu/commit/c568919f98d87de203ef6c234f3baedcccbc380d
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/gen_helper_protos.py
    M target/hexagon/hex_common.py

  Log Message:
  -----------
  Hexagon (target/hexagon) Make generators object oriented - gen_helper_protos

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20231210220712.491494-4-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: a3295f5436b8f4078a9c3e0cf61d82a8ed24d847
      
https://github.com/qemu/qemu/commit/a3295f5436b8f4078a9c3e0cf61d82a8ed24d847
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/gen_helper_funcs.py
    M target/hexagon/hex_common.py

  Log Message:
  -----------
  Hexagon (target/hexagon) Make generators object oriented - gen_helper_funcs

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20231210220712.491494-5-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: 1f03e9a94ee453c11e5c9d755e35cba21dc6c740
      
https://github.com/qemu/qemu/commit/1f03e9a94ee453c11e5c9d755e35cba21dc6c740
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/gen_idef_parser_funcs.py

  Log Message:
  -----------
  Hexagon (target/hexagon) Make generators object oriented - 
gen_idef_parser_funcs

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20231210220712.491494-6-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: c90e3103a392427f8fc7d4177c793d556ee8ed87
      
https://github.com/qemu/qemu/commit/c90e3103a392427f8fc7d4177c793d556ee8ed87
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/gen_op_regs.py

  Log Message:
  -----------
  Hexagon (target/hexagon) Make generators object oriented - gen_op_regs

Reviewed-by: Brian Cain <bcain@quicinc.com>
Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Message-Id: <20231210220712.491494-7-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: 66fab981c0407aa0374684e196cf4ac17b976721
      
https://github.com/qemu/qemu/commit/66fab981c0407aa0374684e196cf4ac17b976721
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/gen_analyze_funcs.py
    M target/hexagon/hex_common.py

  Log Message:
  -----------
  Hexagon (target/hexagon) Make generators object oriented - gen_analyze_funcs

This patch conflicts with
https://lists.gnu.org/archive/html/qemu-devel/2023-11/msg00729.html
If that series goes in first, we'll rework this patch and vice versa.

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20231210220712.491494-8-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: 800abf87b0b7f34b610aae9d64481c302eb83159
      
https://github.com/qemu/qemu/commit/800abf87b0b7f34b610aae9d64481c302eb83159
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/attribs_def.h.inc
    M target/hexagon/hex_common.py

  Log Message:
  -----------
  Hexagon (target/hexagon) Remove unused WRITES_PRED_REG attribute

This is the only remaining use of the is_written function.  We will
remove it in the subsequent commit.

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20231210220712.491494-9-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: 7ee328804c66d93f8ab0fde35384c4f01eb7844a
      
https://github.com/qemu/qemu/commit/7ee328804c66d93f8ab0fde35384c4f01eb7844a
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/hex_common.py

  Log Message:
  -----------
  Hexagon (target/hexagon) Remove dead functions from hex_common.py

These functions are no longer used after making the generators
object oriented.

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20231210220712.491494-10-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: 1547a2d3394d7ec87350ab8ca4022d5e0f20db01
      
https://github.com/qemu/qemu/commit/1547a2d3394d7ec87350ab8ca4022d5e0f20db01
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/README
    M target/hexagon/decode.c
    M target/hexagon/decode.h
    A target/hexagon/gen_decodetree.py
    A target/hexagon/gen_trans_funcs.py
    M target/hexagon/meson.build
    M target/hexagon/translate.c

  Log Message:
  -----------
  Hexagon (target/hexagon) Use QEMU decodetree (32-bit instructions)

The Decodetree Specification can be found here
https://www.qemu.org/docs/master/devel/decodetree.html

Covers all 32-bit instructions, including HVX

We generate separate decoders for each instruction class.  The reason
will be more apparent in the next patch in this series.

We add 2 new scripts
    gen_decodetree.py        Generate the input to decodetree.py
    gen_trans_funcs.py       Generate the trans_* functions used by the
                             output of decodetree.py

Since the functions generated by decodetree.py take DisasContext * as an
argument, we add the argument to a couple of functions that didn't need
it previously.  We also set the insn field in DisasContext during decode
because it is used by the trans_* functions.

There is a g_assert_not_reached() in decode_insns() in decode.c to
verify we never try to use the old decoder on 32-bit instructions

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20240115221443.365287-2-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: f6c01009b5846b1e7c56b4be3413924d87a7bbea
      
https://github.com/qemu/qemu/commit/f6c01009b5846b1e7c56b4be3413924d87a7bbea
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/README
    M target/hexagon/decode.c
    M target/hexagon/gen_decodetree.py
    M target/hexagon/gen_trans_funcs.py
    M target/hexagon/meson.build

  Log Message:
  -----------
  Hexagon (target/hexagon) Use QEMU decodetree (16-bit instructions)

Section 10.3 of the Hexagon V73 Programmer's Reference Manual

A duplex is encoded as a 32-bit instruction with bits [15:14] set to 00.
The sub-instructions that comprise a duplex are encoded as 13-bit fields
in the duplex.

Create a decoder for each subinstruction class (a, l1, l2, s1, s2).

Extend gen_trans_funcs.py to handle all instructions rather than
filter by instruction class.

There is a g_assert_not_reached() in decode_insns() in decode.c to
verify we never try to use the old decoder on 16-bit instructions.

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20240115221443.365287-3-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: cbb9d7157d3e1886bdc7da757ea7ab02a9e0e1e5
      
https://github.com/qemu/qemu/commit/cbb9d7157d3e1886bdc7da757ea7ab02a9e0e1e5
  Author: Taylor Simpson <ltaylorsimpson@gmail.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/decode.c
    R target/hexagon/dectree.py
    M target/hexagon/gen_dectree_import.c
    M target/hexagon/meson.build
    M target/hexagon/opcodes.c
    M target/hexagon/opcodes.h

  Log Message:
  -----------
  Hexagon (target/hexagon) Remove old dectree.py

Now that we are using QEMU decodetree.py, remove the old decoder

Signed-off-by: Taylor Simpson <ltaylorsimpson@gmail.com>
Reviewed-by: Brian Cain <bcain@quicinc.com>
Message-Id: <20240115221443.365287-4-ltaylorsimpson@gmail.com>
Signed-off-by: Brian Cain <bcain@quicinc.com>


  Commit: bbe4209c8b4300d722f47791f9151e1a69cb0135
      
https://github.com/qemu/qemu/commit/bbe4209c8b4300d722f47791f9151e1a69cb0135
  Author: Brian Cain <bcain@quicinc.com>
  Date:   2024-01-21 (Sun, 21 Jan 2024)

  Changed paths:
    M target/hexagon/mmvec/decode_ext_mmvec.c

  Log Message:
  -----------
  target/hexagon: reduce scope of def_regnum, remove dead assignment

This is intended to address a coverity finding: CID 1527408.

Signed-off-by: Brian Cain <bcain@quicinc.com>
Reviewed-by: Matheus Tavares Bernardino <quic_mathbern@quicinc.com>
Message-Id: <20240114234453.4114587-1-bcain@quicinc.com>


  Commit: 4a4efae44f19528589204581e9e2fab69c5d39aa
      
https://github.com/qemu/qemu/commit/4a4efae44f19528589204581e9e2fab69c5d39aa
  Author: Peter Maydell <peter.maydell@linaro.org>
  Date:   2024-01-23 (Tue, 23 Jan 2024)

  Changed paths:
    M target/hexagon/README
    M target/hexagon/attribs_def.h.inc
    M target/hexagon/decode.c
    M target/hexagon/decode.h
    R target/hexagon/dectree.py
    M target/hexagon/gen_analyze_funcs.py
    A target/hexagon/gen_decodetree.py
    M target/hexagon/gen_dectree_import.c
    M target/hexagon/gen_helper_funcs.py
    M target/hexagon/gen_helper_protos.py
    M target/hexagon/gen_idef_parser_funcs.py
    M target/hexagon/gen_op_regs.py
    M target/hexagon/gen_tcg.h
    M target/hexagon/gen_tcg_funcs.py
    A target/hexagon/gen_trans_funcs.py
    M target/hexagon/hex_common.py
    M target/hexagon/idef-parser/parser-helpers.c
    M target/hexagon/macros.h
    M target/hexagon/meson.build
    M target/hexagon/mmvec/decode_ext_mmvec.c
    M target/hexagon/opcodes.c
    M target/hexagon/opcodes.h
    M target/hexagon/translate.c
    M tests/docker/dockerfiles/debian-hexagon-cross.docker

  Log Message:
  -----------
  Merge tag 'pull-hex-20240121' of https://github.com/quic/qemu into staging

Coverity fix, cross toolchain update, switch to decodetree

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCgAdFiEEPWaq5HRZSCTIjOD4GlSvuOVkbDIFAmWuBTwACgkQGlSvuOVk
# bDKP2xAAoRj18rgFPSXu1Dmh34uhZ2uxTAdqyozLqlHJBBiaUxA7EyZJqvOc+8Ti
# owLIF5fYPL1MZ7EfwW8FZjAc29WtGzmRY/ZwEDZVgdVAyLCnZ0fF785caWdxH5L2
# bA2i9hNfCJvd3HqfeJ0JXgWD/rF5OjlSKWwYOGPkfjkDnSwAV9LlxGq+yhxjpYcc
# uSwVUbIipzUQoH5O53xXt2OUSW+WNUYzKpsnLjW/2wTBgXpBXIuxUzao/Iv37hdo
# OMcDiM7mH6ic5JoiNyL9pmquOCpwTGHWyREaiWga1IzJIbRKn/Ypr0N1KsTAc28V
# 10GcbMpwKHG/umzhi9BoiPTfD1jXIzYWasH+RyBMz3bNCCaKuJmGSnohbud8UVDH
# GJHhF72RhBt/bYnwmoYW3OXvk8X+mL7vuq4lKDAB2XNDjAS3+mcGuSu4KJDJeXi9
# l5/Kx0Aef0mmzEbXALErpYP6TTlgj2CCsym3SXi0UuAI94v1sV346jejebMRUndq
# UKKUXb+oC0BUNBUPdnaUIr5GAnQl5Xm2E3pihl28NO+U0xvHQSSxInv84Y3JGDiW
# /ui4ZYux0V+iHok9MO0ugaIF9Z1o16D43TkZdLbulm8ODuCEz8CuQjDVoayWj3CV
# wb290m96zgS03aRAM+yQa+irTrOJ5bh1XOP1dr/FGQHln0mUCCQ=
# =aIh2
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 22 Jan 2024 06:03:40 GMT
# gpg:                using RSA key 3D66AAE474594824C88CE0F81A54AFB8E5646C32
# gpg: Good signature from "Brian Cain <bcain@kernel.org>" [full]
# gpg:                 aka "Brian Cain (QuIC) <bcain@quicinc.com>" [full]
# gpg:                 aka "Brian Cain (CAF) <bcain@codeaurora.org>" [full]
# gpg:                 aka "bcain" [full]
# Primary key fingerprint: 6350 20F9 67A7 7164 79EF  49E0 175C 464E 541B 6D47
#      Subkey fingerprint: 3D66 AAE4 7459 4824 C88C  E0F8 1A54 AFB8 E564 6C32

* tag 'pull-hex-20240121' of https://github.com/quic/qemu:
  target/hexagon: reduce scope of def_regnum, remove dead assignment
  Hexagon (target/hexagon) Remove old dectree.py
  Hexagon (target/hexagon) Use QEMU decodetree (16-bit instructions)
  Hexagon (target/hexagon) Use QEMU decodetree (32-bit instructions)
  Hexagon (target/hexagon) Remove dead functions from hex_common.py
  Hexagon (target/hexagon) Remove unused WRITES_PRED_REG attribute
  Hexagon (target/hexagon) Make generators object oriented - gen_analyze_funcs
  Hexagon (target/hexagon) Make generators object oriented - gen_op_regs
  Hexagon (target/hexagon) Make generators object oriented - 
gen_idef_parser_funcs
  Hexagon (target/hexagon) Make generators object oriented - gen_helper_funcs
  Hexagon (target/hexagon) Make generators object oriented - gen_helper_protos
  Hexagon (target/hexagon) Make generators object oriented - gen_tcg_funcs
  Hexagon (target/hexagon) Clean up handling of modifier registers
  Hexagon (target/hexagon) Fix shadow variable when idef-parser is off
  tests/docker: Hexagon toolchain update

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>


Compare: https://github.com/qemu/qemu/compare/09be34717190...4a4efae44f19



reply via email to

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