| # 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') == '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 |