Files
gem5/util/cpt_upgraders/smt-interrupts.py
Bobby R. Bruce 298119e402 misc,python: Run pre-commit run --all-files
Applies the `pyupgrade` hook to all files in the repo.

Change-Id: I9879c634a65c5fcaa9567c63bc5977ff97d5d3bf
2023-10-10 21:47:07 -07:00

20 lines
737 B
Python

# Upgrade single-threaded checkpoints to be properly supported with SMT.
# SMT adds per-thread interrupts. Thus we must move the interrupt status
# from the CPU and into the execution context.
def upgrader(cpt):
for sec in cpt.sections():
import re
re_cpu_match = re.match(r"^(.*sys.*\.cpu[^._]*)$", sec)
if re_cpu_match != None:
interrupts = cpt.get(sec, "interrupts")
intStatus = cpt.get(sec, "intStatus")
cpu_name = re_cpu_match.group(1)
cpt.set(cpu_name + ".xc.0", "interrupts", interrupts)
cpt.set(cpu_name + ".xc.0", "intStatus", intStatus)
cpt.remove_option(sec, "interrupts")
cpt.remove_option(sec, "intStatus")