Jakob Stoklund Olesen
6e2e7bfb73
Add a RISC-V target.
Flesh out the directory structure for defining target instruction set
architectures. Use RISC-V as a startgin point because it is so simple.
9 years ago
Jakob Stoklund Olesen
7bf4570ba1
Add a RISC-V target.
Flesh out the directory structure for defining target instruction set
architectures. Use RISC-V as a startgin point because it is so simple.
9 years ago
Jakob Stoklund Olesen
5388f68437
Give instructions a CamelCase name.
This will be used as the instruction name in Rust code. By making this a
property of the instruction, it can be changed by the user if desired.
9 years ago
Jakob Stoklund Olesen
936d6e523a
Give instructions a CamelCase name.
This will be used as the instruction name in Rust code. By making this a
property of the instruction, it can be changed by the user if desired.
9 years ago
Jakob Stoklund Olesen
99b1251b35
Collect all instructions into instruction groups.
9 years ago
Jakob Stoklund Olesen
6f083a310a
Collect all instructions into instruction groups.
9 years ago
Jakob Stoklund Olesen
0b8db43bbe
Add scaffolding for a Python build script.
Hook up a Cargo build script that runs a Python script in the meta directory.
9 years ago
Jakob Stoklund Olesen
d32d78d16c
Add scaffolding for a Python build script.
Hook up a Cargo build script that runs a Python script in the meta directory.
9 years ago
Jakob Stoklund Olesen
807b718358
Add an autohtml target to docs/Makefile.
This runs the convenient sphinx-autobuild web server for docs development.
9 years ago
Jakob Stoklund Olesen
d197f8a104
Add an autohtml target to docs/Makefile.
This runs the convenient sphinx-autobuild web server for docs development.
9 years ago
Jakob Stoklund Olesen
f72f47aece
Replace bool with b1, b8, b16, ...
The b1 type is an abstract boolean value. The others are concrete
representations.
9 years ago
Jakob Stoklund Olesen
043bb1aba5
Replace bool with b1, b8, b16, ...
The b1 type is an abstract boolean value. The others are concrete
representations.
9 years ago
Jakob Stoklund Olesen
4b265c2ee3
Display quiet NaNs as 'NaN'.
This is recommended by IEEE 754-2008.
We still distinguish signaling NaNs with 'sNaN'.
9 years ago
Jakob Stoklund Olesen
79e765a183
Display quiet NaNs as 'NaN'.
This is recommended by IEEE 754-2008.
We still distinguish signaling NaNs with 'sNaN'.
9 years ago
Jakob Stoklund Olesen
524eb77185
Implement IEEE immediates for binary32 and binary64.
Clarify the textual encoding of floating point numbers.
Don't allow decimal floating point since conversion to/from binary can produce
rounding problems on some (buggy) systems.
9 years ago
Jakob Stoklund Olesen
5f706b0a1f
Implement IEEE immediates for binary32 and binary64.
Clarify the textual encoding of floating point numbers.
Don't allow decimal floating point since conversion to/from binary can produce
rounding problems on some (buggy) systems.
9 years ago
Jakob Stoklund Olesen
ad07f67331
Move constant instructions into meta.
Add new immediate types for floating point and vector immediates.
Use new immediates to define the constant value instructions in meta.
Split the fconst instruction into two: f32const and f64const. This prevents
confusion about the interpretation of 64 immediate bits when generating an f32
constant.
Add an immvector ImmediateType. This immediate type is variable length, and
provides all the bits of a SIMD vector directly.
9 years ago
Jakob Stoklund Olesen
e5305c249b
Move constant instructions into meta.
Add new immediate types for floating point and vector immediates.
Use new immediates to define the constant value instructions in meta.
Split the fconst instruction into two: f32const and f64const. This prevents
confusion about the interpretation of 64 immediate bits when generating an f32
constant.
Add an immvector ImmediateType. This immediate type is variable length, and
provides all the bits of a SIMD vector directly.
9 years ago
Jakob Stoklund Olesen
a2db4b680e
Move instruction definitions into meta.
Use the meta language to define instructions, just insert 'autoinst' references
in langref.
9 years ago
Jakob Stoklund Olesen
c3233fb332
Move instruction definitions into meta.
Use the meta language to define instructions, just insert 'autoinst' references
in langref.
9 years ago
Jakob Olesen
20183554a4
Add Instruction and Operand classes to the meta language.
9 years ago
Jakob Olesen
a76a0da826
Add Instruction and Operand classes to the meta language.
9 years ago
Jakob Stoklund Olesen
de12bc0f1a
Implement Imm64 in an 'immediates.rs' module.
Format larger immediates as hexadecimal with a multiple of 4 digits and '_'
group separators.
9 years ago
Jakob Stoklund Olesen
38d0f626a7
Implement Imm64 in an 'immediates.rs' module.
Format larger immediates as hexadecimal with a multiple of 4 digits and '_'
group separators.
9 years ago
Jakob Stoklund Olesen
05de34b1a3
Add ImmediateType for declaring immediate operands.
9 years ago
Jakob Stoklund Olesen
10903503c4
Add ImmediateType for declaring immediate operands.
9 years ago
Jakob Olesen
3d67d4d6b9
Add type variables.
9 years ago
Jakob Olesen
29481a5851
Add type variables.
9 years ago
Jakob Stoklund Olesen
d9ba9480c9
Make the types module public, add documentation comments.
9 years ago
Jakob Stoklund Olesen
4ba29e594f
Make the types module public, add documentation comments.
9 years ago
Jakob Stoklund Olesen
9d1fbfd649
Implement type representation in Rust.
Start the Cretonne library as a Rust crate.
9 years ago
Jakob Stoklund Olesen
82e05bcbc9
Implement type representation in Rust.
Start the Cretonne library as a Rust crate.
9 years ago
Jakob Olesen
a37005a1d4
Enable inheritance diagrams.
9 years ago
Jakob Olesen
29cc36c8d9
Enable inheritance diagrams.
9 years ago
Jakob Olesen
19b4facbe0
Add a TypeDocumenter for Cretonne types.
Use the autodoc Sphinx module to add a .. autoctontype:: directive which
generates documentation for one of the types in the cretonne.types module.
9 years ago
Jakob Olesen
06f9b65e12
Add a TypeDocumenter for Cretonne types.
Use the autodoc Sphinx module to add a .. autoctontype:: directive which
generates documentation for one of the types in the cretonne.types module.
9 years ago
Jakob Olesen
c459c11a5a
Begin defining the meta language.
The Cretonne meta language is used to describe Cretonne instructions, both the
target independent ones in the base instruction set and real target
instructions.
Start by providing type definitions matching langref, and begin the meta
language reference using autodoc to pull in the PYthon definitions.
9 years ago
Jakob Olesen
ec918fe332
Begin defining the meta language.
The Cretonne meta language is used to describe Cretonne instructions, both the
target independent ones in the base instruction set and real target
instructions.
Start by providing type definitions matching langref, and begin the meta
language reference using autodoc to pull in the PYthon definitions.
9 years ago
Jakob Olesen
e337d19373
Add some more type classes.
9 years ago
Jakob Olesen
f66d2a26a2
Add some more type classes.
9 years ago
Jakob Olesen
a82a4d2717
Add ReadTheDocs badge with link to documentation.
9 years ago
Jakob Olesen
d1ed09183b
Add ReadTheDocs badge with link to documentation.
9 years ago
Jakob Olesen
2929b6de84
Update README.
9 years ago
Jakob Olesen
5997554aed
Update README.
9 years ago
Jakob Stoklund Olesen
b23b049140
Clean up the list of operations somewhat.
9 years ago
Jakob Stoklund Olesen
ec7d65d8f1
Clean up the list of operations somewhat.
9 years ago
Jakob Stoklund Olesen
2aabcd5cff
Document heaps.
9 years ago
Jakob Stoklund Olesen
519fed894b
Document heaps.
9 years ago
Jakob Stoklund Olesen
4bd4efaf67
Load, store, local variables.
9 years ago
Jakob Stoklund Olesen
095190b1a7
Load, store, local variables.
9 years ago