33 lines
756 B
Python
33 lines
756 B
Python
"""
|
|
Aarch64 register banks.
|
|
"""
|
|
from __future__ import absolute_import
|
|
from cdsl.registers import RegBank, RegClass
|
|
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')
|
|
|
|
FlagRegs = RegBank(
|
|
'FlagRegs', ISA,
|
|
'Flag registers',
|
|
units=1,
|
|
pressure_tracking=False,
|
|
names=['nzcv'])
|
|
|
|
GPR = RegClass(IntRegs)
|
|
FPR = RegClass(FloatRegs)
|
|
FLAG = RegClass(FlagRegs)
|
|
|
|
RegClass.extract_names(globals())
|