Jakob Stoklund Olesen
4192ba0532
Define register classes for 4 ISAs.
2016-11-11 15:08:12 -08:00
Jakob Stoklund Olesen
b0b6a8f693
Define register banks.
...
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.
2016-11-11 14:17:10 -08:00
Jakob Stoklund Olesen
77c672a279
Add stubs for Intel and ARM architectures.
...
The Intel ISA handles both 32-bit and 64-bit code.
ARM is split into separate arm32 and arm64 ISAs since the architectures
have little in common in instruction encodings and register files.
2016-11-11 11:32:05 -08:00
Jakob Stoklund Olesen
856b8c99aa
Use uppercase for the global riscv.ISA constant.
2016-11-11 11:17:40 -08:00
Jakob Stoklund Olesen
bd76623266
Move ISA definitions into cdsl.isa.
...
The cretonne package is now split into two: cdsl and base.
2016-11-08 13:21:05 -08:00
Jakob Stoklund Olesen
5fa322f797
Split out instruction definitions.
...
- cdsl.instructions defines the Instruction class.
- base.instructions defines the base instruction set.
2016-11-08 12:33:50 -08:00
Jakob Stoklund Olesen
6eaa8eb382
Move formats, entities, and immediates to the base package.
...
- base.formats defines instruction formats.
- base.entities defines kinds of entity references.
- base.immediates defines kinds of imediate operands.
2016-11-08 11:06:37 -08:00
Jakob Stoklund Olesen
2fe61e83f6
Split out predicates and settings.
...
- cdsl.predicates defines classes for describing predicates.
- cdsl.settings defines classes for describing settings.
- base.settings defines shared settings.
2016-11-08 10:37:17 -08:00
Jakob Stoklund Olesen
6748817985
Add PEP 484 type annotations to a bunch of Python code.
...
Along with the mypy tool, this helps find bugs in the Python code
handling the instruction definition data structures.
2016-10-26 15:15:51 -07:00
Jakob Stoklund Olesen
e7f30a40b4
Move the 'meta' dir to 'lib/cretonne/meta'.
...
The 'lib/cretonne' directory will be the new root of a stand-alone
cretonne crate containg both Python and Rust sources.
This is in preparation for publishing crates on crates.io.
2016-10-17 14:19:23 -07:00