Branch: refs/heads/staging
Home: https://github.com/qemu/qemu
Commit: c072bfd536c406b1bd4f121f5696535f5101dd0a
https://github.com/qemu/qemu/commit/c072bfd536c406b1bd4f121f5696535f5101dd0a
Author: Taylor Simpson <[email protected]>
Date: 2025-12-31 (Wed, 31 Dec 2025)
Changed paths:
M target/hexagon/README
R target/hexagon/gen_tcg_func_table.py
M target/hexagon/genptr.c
M target/hexagon/meson.build
Log Message:
-----------
Hexagon (target/hexagon) Remove gen_tcg_func_table.py
This can easily be done in C with opcodes_def_generated.h.inc
Note that gen_tcg_func_table.py has some logic to skip instructions.
However, there aren't any instructions currently in the code that would
be skipped by this logic. So, it is safe to base the table on the
complete opcodes table.
Signed-off-by: Taylor Simpson <[email protected]>
Reviewed-by: Brian Cain <[email protected]>
Tested-by: Brian Cain <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Brian Cain <[email protected]>
Commit: c2f724cfb7f7f36ce4c5f001a965a3260b4db9ed
https://github.com/qemu/qemu/commit/c2f724cfb7f7f36ce4c5f001a965a3260b4db9ed
Author: Taylor Simpson <[email protected]>
Date: 2025-12-31 (Wed, 31 Dec 2025)
Changed paths:
M target/hexagon/arch.c
M target/hexagon/arch.h
M target/hexagon/gen_helper_funcs.py
M target/hexagon/gen_tcg.h
M target/hexagon/gen_tcg_funcs.py
M target/hexagon/helper.h
M target/hexagon/op_helper.c
Log Message:
-----------
Hexagon (target/hexagon) Add pkt_need_commit argument to arch_fpop_end
The arch_fpop_end function converts the softfloat fp_status flags to
bits set in Hexagon USR. It is hard-coded that the packet must need
a commit. We add an argument to the function and update all the helper
call sites.
In a subsequent commit, we will change the code that forces a commit
when the packet contains an floating point instruction.
Reviewed-by: Brian Cain <[email protected]>
Signed-off-by: Taylor Simpson <[email protected]>
Signed-off-by: Brian Cain <[email protected]>
Commit: 3e98496691edc73a2d79e43c6ac348bb8e72298f
https://github.com/qemu/qemu/commit/3e98496691edc73a2d79e43c6ac348bb8e72298f
Author: Taylor Simpson <[email protected]>
Date: 2025-12-31 (Wed, 31 Dec 2025)
Changed paths:
M target/hexagon/translate.c
M target/hexagon/translate.h
Log Message:
-----------
Hexagon (target/hexagon) Implicit writes to USR don't force packet commit
Implicit writes to USR are only to specific fields of USR to indicate
side effects (e.g., saturation overflow, floating point status).
In these cases, we don't force a packet commit. This will allow more
packets to be short-circuited (avoid writing the results to temporaries).
When there is a packet commit with an implicit write to USR, we initialize
new_value_usr during gen_start_packet and write to USR in gen_reg_writes.
Reviewed-by: Brian Cain <[email protected]>
Signed-off-by: Taylor Simpson <[email protected]>
Signed-off-by: Brian Cain <[email protected]>
Commit: fb7aceaf1399fb15ef67246e23a5e023abaa0fd5
https://github.com/qemu/qemu/commit/fb7aceaf1399fb15ef67246e23a5e023abaa0fd5
Author: Taylor Simpson <[email protected]>
Date: 2025-12-31 (Wed, 31 Dec 2025)
Changed paths:
M tests/tcg/hexagon/usr.c
Log Message:
-----------
Hexagon (tests/tcg/hexagon) Add test for USR changes in packet
Signed-off-by: Taylor Simpson <[email protected]>
Reviewed-by: Brian Cain <[email protected]>
Signed-off-by: Brian Cain <[email protected]>
Commit: e70fcf1c3e8e674f400d86c4321726181d476f3a
https://github.com/qemu/qemu/commit/e70fcf1c3e8e674f400d86c4321726181d476f3a
Author: Taylor Simpson <[email protected]>
Date: 2025-12-31 (Wed, 31 Dec 2025)
Changed paths:
M target/hexagon/gen_analyze_funcs.py
M target/hexagon/translate.c
Log Message:
-----------
Hexagon (target/hexagon) analyze all reads before writes
I noticed that analyze_packet is marking the implicit pred reads after
marking all the writes. However, the semantics of the instrucion and
packet are to do all the reads, then do the operation, then do all the
writes.
Here is the old code
static void analyze_packet(DisasContext *ctx)
{
Packet *pkt = ctx->pkt;
ctx->read_after_write = false;
ctx->has_hvx_overlap = false;
for (int i = 0; i < pkt->num_insns; i++) {
Insn *insn = &pkt->insn[i];
ctx->insn = insn;
if (opcode_analyze[insn->opcode]) {
opcode_analyze[insn->opcode](ctx);
}
mark_implicit_reg_writes(ctx);
mark_implicit_pred_writes(ctx);
mark_implicit_pred_reads(ctx);
}
ctx->need_commit = need_commit(ctx);
}
Recall that opcode_analyze[insn->opcode](ctx) will mark all the
explicit reads then all the explicit writes.
To properly handle the semantics, we'll create two new functions
mark_implicit_reads
mark_implicit_writes
Then we change gen_analyze_funcs.py to add a call to the former
after all the explicit reads and a call to the latter after all
the explicit_writes.
The reason this is an RFC patch is I can't find any instructions
where this distinction makes a difference in ctx->need_commit which
determines if the packet commit can be short-circuited. However, this
could change in the future if the architecture introduces an
instruction with an implicit read of a register that is also written
(either implicit or explicit). Then, anlayze_packet would detect
a read-after-write, and the packet would not short-circuit. The
execution would be correct, but the performance would not be optimal.
Signed-off-by: Taylor Simpson <[email protected]>
Reviewed-by: Brian Cain <[email protected]>
Tested-by: Brian Cain <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Brian Cain <[email protected]>
Commit: c3d9f1b84b7c5363d7a76752616685c9992bc5eb
https://github.com/qemu/qemu/commit/c3d9f1b84b7c5363d7a76752616685c9992bc5eb
Author: Taylor Simpson <[email protected]>
Date: 2025-12-31 (Wed, 31 Dec 2025)
Changed paths:
M target/hexagon/README
M target/hexagon/gen_tcg.h
M target/hexagon/gen_tcg_funcs.py
M target/hexagon/genptr.c
M target/hexagon/genptr.h
M target/hexagon/hex_common.py
M target/hexagon/idef-parser/parser-helpers.c
Log Message:
-----------
Hexagon (target/hexagon) Remove gen_log_reg_write
The gen_log_reg_write function is a memnant of the original Hexagon
target design. With the addition of gen_analyze_funcs.py and the
ability to short-circuit a packet commit, this function can be
removed.
Note that the implementation of gen_log_reg_write contains a check
of the register mutability mask. This is only needed for control
registers, so we move it to gen_write_ctrl_reg.
We do need the gen_log_reg_write_pair function, but the name is
now misleading, so we change the name go gen_write_reg_pair.
Signed-off-by: Taylor Simpson <[email protected]>
Reviewed-by: Brian Cain <[email protected]>
Signed-off-by: Brian Cain <[email protected]>
Commit: b68bcbf6ea44ccb3729f34b39feaeffa31996c50
https://github.com/qemu/qemu/commit/b68bcbf6ea44ccb3729f34b39feaeffa31996c50
Author: Taylor Simpson <[email protected]>
Date: 2025-12-31 (Wed, 31 Dec 2025)
Changed paths:
M target/hexagon/gen_tcg.h
M target/hexagon/genptr.c
M target/hexagon/genptr.h
M target/hexagon/hex_common.py
M target/hexagon/idef-parser/parser-helpers.c
Log Message:
-----------
Hexagon (target/hexagon) s/gen_log_pred_write/gen_pred_write
The function doesn't "log" anything, it just generates the write
Signed-off-by: Taylor Simpson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Brian Cain <[email protected]>
Signed-off-by: Brian Cain <[email protected]>
Commit: 19366c95f040d356c37d714c4a73fd44fca00b85
https://github.com/qemu/qemu/commit/19366c95f040d356c37d714c4a73fd44fca00b85
Author: Taylor Simpson <[email protected]>
Date: 2025-12-31 (Wed, 31 Dec 2025)
Changed paths:
M target/hexagon/genptr.c
M target/hexagon/hex_common.py
Log Message:
-----------
Hexagon (target/hexagon) s/gen_log_vreg_write/gen_vreg_write
Note there are two functions impacted
gen_log_vreg_write -> gen_vreg_write
gen_log_vreg_write_pair -> gen_vreg_write_pair
These functions don't "log" anything, they just generate the write
Signed-off-by: Taylor Simpson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Brian Cain <[email protected]>
Signed-off-by: Brian Cain <[email protected]>
Commit: 15722c774ab2fa6904464cd531bc1120d9553896
https://github.com/qemu/qemu/commit/15722c774ab2fa6904464cd531bc1120d9553896
Author: Taylor Simpson <[email protected]>
Date: 2025-12-31 (Wed, 31 Dec 2025)
Changed paths:
M target/hexagon/gen_tcg_funcs.py
M target/hexagon/hex_common.py
Log Message:
-----------
Hexagon (target/hexagon) s/log_write/gen_write
These functions don't "log" anything, they just generate the write
Signed-off-by: Taylor Simpson <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Reviewed-by: Brian Cain <[email protected]>
Signed-off-by: Brian Cain <[email protected]>
Commit: 159107e390609f71b78268a4888563dcdce6ac65
https://github.com/qemu/qemu/commit/159107e390609f71b78268a4888563dcdce6ac65
Author: Richard Henderson <[email protected]>
Date: 2026-01-05 (Mon, 05 Jan 2026)
Changed paths:
M target/hexagon/README
M target/hexagon/arch.c
M target/hexagon/arch.h
M target/hexagon/gen_analyze_funcs.py
M target/hexagon/gen_helper_funcs.py
M target/hexagon/gen_tcg.h
R target/hexagon/gen_tcg_func_table.py
M target/hexagon/gen_tcg_funcs.py
M target/hexagon/genptr.c
M target/hexagon/genptr.h
M target/hexagon/helper.h
M target/hexagon/hex_common.py
M target/hexagon/idef-parser/parser-helpers.c
M target/hexagon/meson.build
M target/hexagon/op_helper.c
M target/hexagon/translate.c
M target/hexagon/translate.h
M tests/tcg/hexagon/usr.c
Log Message:
-----------
Merge tag 'pull-hex-20260102' of https://github.com/quic/qemu into staging
Bypass packet commit for implicit usr write; cleanup
# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCgAdFiEEPWaq5HRZSCTIjOD4GlSvuOVkbDIFAmlYJAgACgkQGlSvuOVk
# bDIQOg//TmXIRWGHuwL8jwtDDktyj0w5FVh3yA+i7Yx7fuoui/h1cwKc0LkSmx71
# m4JLvgDCqYsxh0DKmR3qadUnt4dNKUkMIdvpyqN/uBVzxyepfgTAOBXn6LAISHtr
# P5ObIbB72E0G/L3qwvEJuawcY/eCgpEU5laiBmfGyka8h8bvc0zD9M3VLzSOm28e
# XUAhR1WOd7IY0AAwYrHzCH0x+OjqY8xi8q5t5UDr1TA2ZL8mqwJuuUfO4QdTNPio
# QTump+kqN3PcmWHnKzqs/IJVQOi9vi7JN/8S6JsiLwpL3/PhKk7y8b9a5NWO6mHs
# 4W9SRa0Wy+lxkhNXSjUkVD7NqMre8fAYvl0jYWpj09Z7sm71Y3A+aIWllm70/vzK
# NnZutZp+DXGbqZalwRK3ON7csCfBehPLfr4ru2Kwo1GNZbQx5KR+TMc/CuVihCYl
# owFR0aG94xyfhpBrUXLcyqmjRb2MmMt0LrFbjOXOhy+fmFhw/NrxMsmTDXBEuAB1
# HpqjizcLNobRwIxI+vvp8cTdP0uL3oKrn0CcppI689n+Qvp4TnC6WTzAqA7UJaCJ
# WPWCSGmPBNDo1IsnoYBuPEH1po6tuesmJdsNWQPdfO14JA0NAAWsH7W+Ow14jQaf
# WG1WMvMph/m2wc7JbeZe5cujUxQ2Jj+CvjnjAaMRR8X6ndzk33k=
# =GJil
# -----END PGP SIGNATURE-----
# gpg: Signature made Sat 03 Jan 2026 07:01:12 AM AEDT
# gpg: using RSA key 3D66AAE474594824C88CE0F81A54AFB8E5646C32
# gpg: Good signature from "Brian Cain (QUIC) <[email protected]>"
[unknown]
# gpg: aka "Brian Cain <[email protected]>" [unknown]
# gpg: aka "Brian Cain (QuIC) <[email protected]>" [unknown]
# gpg: aka "Brian Cain (CAF) <[email protected]>" [unknown]
# gpg: aka "bcain" [unknown]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# 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-20260102' of https://github.com/quic/qemu:
Hexagon (target/hexagon) s/log_write/gen_write
Hexagon (target/hexagon) s/gen_log_vreg_write/gen_vreg_write
Hexagon (target/hexagon) s/gen_log_pred_write/gen_pred_write
Hexagon (target/hexagon) Remove gen_log_reg_write
Hexagon (target/hexagon) analyze all reads before writes
Hexagon (tests/tcg/hexagon) Add test for USR changes in packet
Hexagon (target/hexagon) Implicit writes to USR don't force packet commit
Hexagon (target/hexagon) Add pkt_need_commit argument to arch_fpop_end
Hexagon (target/hexagon) Remove gen_tcg_func_table.py
Signed-off-by: Richard Henderson <[email protected]>
Compare: https://github.com/qemu/qemu/compare/667e1fff8783...159107e39060
To unsubscribe from these emails, change your notification settings at
https://github.com/qemu/qemu/settings/notifications