[PATCH 0/4] hexagon: Remove wait{,_next_pc}

Brian Cain posted 4 patches 1 week, 4 days ago
Maintainers: Brian Cain <brian.cain@oss.qualcomm.com>, Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
target/hexagon/cpu.h                      |  2 --
target/hexagon/gen_tcg_sys.h              |  2 +-
target/hexagon/helper.h                   |  2 +-
target/hexagon/hex_mmu.h                  |  9 +++----
target/hexagon/sys_macros.h               |  4 ++--
target/hexagon/translate.h                |  2 --
target/hexagon/cpu.c                      |  2 --
target/hexagon/cpu_helper.c               |  8 -------
target/hexagon/genptr.c                   | 14 +++--------
target/hexagon/hex_interrupts.c           |  4 +---
target/hexagon/hex_mmu.c                  | 15 ++++++------
target/hexagon/hexswi.c                   |  2 +-
target/hexagon/machine.c                  |  2 --
target/hexagon/op_helper.c                | 24 +++++++++----------
target/hexagon/translate.c                | 29 ++++++++++++-----------
target/hexagon/hex_common.py              |  6 ++++-
tests/functional/hexagon/test_systests.py |  3 +++
17 files changed, 57 insertions(+), 73 deletions(-)
[PATCH 0/4] hexagon: Remove wait{,_next_pc}
Posted by Brian Cain 1 week, 4 days ago
Handling the PC update behavior for wait, locking instructions, COF
etc. was managed with extra state.  But if we pass the current-packet PC
to {k0,tlb}lock, they can update PC when pending.  And preloading the PC
with the next packet address before executing instructions that could end
a TB lets wait() use the PC directly.

This series makes no functional change.  The `bestwait` test case, which
exercises the wait instruction and the hardware scheduler feature has been
added, but this test passes on the baseline.

Worth a second opinion: this series modifies the CPU VMStateDescription
but does not update the version_id.  I plan to continue making changes along
these lines, leading up to the 11.2 release.  I hope that it's appropriate/valid
to only update the version_id to capture changes between releases, not merely
changes between pull requests.

Brian Cain (4):
  target/hexagon: pass the packet PC to the k0lock/tlblock helpers
  target/hexagon: stage the PC in the PC register, drop next_PC
  target/hexagon: drop wait_next_pc
  tests/functional/hexagon: add bestwait systest

 target/hexagon/cpu.h                      |  2 --
 target/hexagon/gen_tcg_sys.h              |  2 +-
 target/hexagon/helper.h                   |  2 +-
 target/hexagon/hex_mmu.h                  |  9 +++----
 target/hexagon/sys_macros.h               |  4 ++--
 target/hexagon/translate.h                |  2 --
 target/hexagon/cpu.c                      |  2 --
 target/hexagon/cpu_helper.c               |  8 -------
 target/hexagon/genptr.c                   | 14 +++--------
 target/hexagon/hex_interrupts.c           |  4 +---
 target/hexagon/hex_mmu.c                  | 15 ++++++------
 target/hexagon/hexswi.c                   |  2 +-
 target/hexagon/machine.c                  |  2 --
 target/hexagon/op_helper.c                | 24 +++++++++----------
 target/hexagon/translate.c                | 29 ++++++++++++-----------
 target/hexagon/hex_common.py              |  6 ++++-
 tests/functional/hexagon/test_systests.py |  3 +++
 17 files changed, 57 insertions(+), 73 deletions(-)

-- 
2.34.1