Add a RegBank class for describing CPU register banks. Define register banks for all the ISA stubs. The ARM32 floating point bank in particular requires attention.
20 lines
488 B
Python
20 lines
488 B
Python
"""
|
|
Aarch64 register banks.
|
|
"""
|
|
from __future__ import absolute_import
|
|
from cdsl.registers import RegBank
|
|
from .defs import ISA
|
|
|
|
|
|
# The `x31` regunit serves as the stack pointer / zero register depending on
|
|
# context. We reserve it and don't model the difference.
|
|
IntRegs = RegBank(
|
|
'IntRegs', ISA,
|
|
'General purpose registers',
|
|
units=32, prefix='x')
|
|
|
|
FloatRegs = RegBank(
|
|
'FloatRegs', ISA,
|
|
'Floating point registers',
|
|
units=32, prefix='v')
|