# Add the ARM MISCREG TEEHBR
def upgrader(cpt):
    if cpt.get("root", "isa", fallback="") == "arm":
        for sec in cpt.sections():
            import re

            # Search for all ISA sections
            if re.search(".*sys.*\.cpu.*\.isa$", sec):
                mr = cpt.get(sec, "miscRegs").split()
                if len(mr) == 161:
                    print("MISCREG_TEEHBR already seems to be inserted.")
                else:
                    mr.insert(51, 0)
                    # Add dummy value for MISCREG_TEEHBR
                    cpt.set(sec, "miscRegs", " ".join(str(x) for x in mr))


legacy_version = 8
