| # Use condition code registers for the ARM architecture. |
| # Previously the integer register file was used for these registers. |
| def upgrader(cpt): |
| if cpt.get("root", "isa", fallback="") == "arm": |
| for sec in cpt.sections(): |
| import re |
| |
| re_cpu_match = re.match("^(.*sys.*\.cpu[^.]*)\.xc\.(.+)$", sec) |
| # Search for all the execution contexts |
| if not re_cpu_match: |
| continue |
| |
| items = [] |
| for (item, value) in cpt.items(sec): |
| items.append(item) |
| if "ccRegs" not in items: |
| intRegs = cpt.get(sec, "intRegs").split() |
| |
| # Move those 5 integer registers to the ccRegs register file |
| ccRegs = intRegs[38:43] |
| del intRegs[38:43] |
| |
| ccRegs.append("0") # CCREG_ZERO |
| |
| cpt.set(sec, "intRegs", " ".join(intRegs)) |
| cpt.set(sec, "ccRegs", " ".join(ccRegs)) |
| |
| |
| legacy_version = 13 |