lib/codegen-meta moved into lib/codegen. (#423)
* lib/codegen-meta moved into lib/codegen. * Renamed codegen-meta and existing meta.
This commit is contained in:
14
lib/codegen/meta-python/isa/arm64/__init__.py
Normal file
14
lib/codegen/meta-python/isa/arm64/__init__.py
Normal file
@@ -0,0 +1,14 @@
|
||||
"""
|
||||
ARM 64-bit Architecture
|
||||
-----------------------
|
||||
|
||||
ARMv8 CPUs running the Aarch64 architecture.
|
||||
"""
|
||||
|
||||
from __future__ import absolute_import
|
||||
from . import defs
|
||||
from . import settings, registers # noqa
|
||||
from cdsl.isa import TargetISA # noqa
|
||||
|
||||
# Re-export the primary target ISA definition.
|
||||
ISA = defs.ISA.finish() # type: TargetISA
|
||||
15
lib/codegen/meta-python/isa/arm64/defs.py
Normal file
15
lib/codegen/meta-python/isa/arm64/defs.py
Normal file
@@ -0,0 +1,15 @@
|
||||
"""
|
||||
ARM64 definitions.
|
||||
|
||||
Commonly used definitions.
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
from cdsl.isa import TargetISA, CPUMode
|
||||
import base.instructions
|
||||
from base.legalize import narrow
|
||||
|
||||
ISA = TargetISA('arm64', [base.instructions.GROUP]) # type: TargetISA
|
||||
A64 = CPUMode('A64', ISA)
|
||||
|
||||
# TODO: Refine these
|
||||
A64.legalize_type(narrow)
|
||||
32
lib/codegen/meta-python/isa/arm64/registers.py
Normal file
32
lib/codegen/meta-python/isa/arm64/registers.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""
|
||||
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())
|
||||
11
lib/codegen/meta-python/isa/arm64/settings.py
Normal file
11
lib/codegen/meta-python/isa/arm64/settings.py
Normal file
@@ -0,0 +1,11 @@
|
||||
"""
|
||||
ARM64 settings.
|
||||
"""
|
||||
from __future__ import absolute_import
|
||||
from cdsl.settings import SettingGroup
|
||||
import base.settings as shared
|
||||
from .defs import ISA
|
||||
|
||||
ISA.settings = SettingGroup('arm64', parent=shared.group)
|
||||
|
||||
ISA.settings.close(globals())
|
||||
Reference in New Issue
Block a user