Commit Graph

8219 Commits

Author SHA1 Message Date
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.
2016-04-05 13:36:04 -07:00
Jakob Stoklund Olesen
807b718358 Add an autohtml target to docs/Makefile.
This runs the convenient sphinx-autobuild web server for docs development.
2016-04-05 11:11:53 -07:00
Jakob Stoklund Olesen
d197f8a104 Add an autohtml target to docs/Makefile.
This runs the convenient sphinx-autobuild web server for docs development.
2016-04-05 11:11:53 -07:00
Jakob Stoklund Olesen
f72f47aece Replace bool with b1, b8, b16, ...
The b1 type is an abstract boolean value. The others are concrete
representations.
2016-04-05 10:45:00 -07:00
Jakob Stoklund Olesen
043bb1aba5 Replace bool with b1, b8, b16, ...
The b1 type is an abstract boolean value. The others are concrete
representations.
2016-04-05 10:45:00 -07:00
Jakob Stoklund Olesen
4b265c2ee3 Display quiet NaNs as 'NaN'.
This is recommended by IEEE 754-2008.

We still distinguish signaling NaNs with 'sNaN'.
2016-04-05 10:27:18 -07:00
Jakob Stoklund Olesen
79e765a183 Display quiet NaNs as 'NaN'.
This is recommended by IEEE 754-2008.

We still distinguish signaling NaNs with 'sNaN'.
2016-04-05 10:27:18 -07:00
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.
2016-04-01 14:40:15 -07:00
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.
2016-04-01 14:40:15 -07:00
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.
2016-04-01 10:08:57 -07:00
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.
2016-04-01 10:08:57 -07:00
Jakob Stoklund Olesen
a2db4b680e Move instruction definitions into meta.
Use the meta language to define instructions, just insert 'autoinst' references
in langref.
2016-04-01 10:08:57 -07:00
Jakob Stoklund Olesen
c3233fb332 Move instruction definitions into meta.
Use the meta language to define instructions, just insert 'autoinst' references
in langref.
2016-04-01 10:08:57 -07:00
Jakob Olesen
20183554a4 Add Instruction and Operand classes to the meta language. 2016-04-01 10:08:57 -07:00
Jakob Olesen
a76a0da826 Add Instruction and Operand classes to the meta language. 2016-04-01 10:08:57 -07:00
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.
2016-04-01 10:08:01 -07:00
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.
2016-04-01 10:08:01 -07:00
Jakob Stoklund Olesen
05de34b1a3 Add ImmediateType for declaring immediate operands. 2016-03-30 14:17:42 -07:00
Jakob Stoklund Olesen
10903503c4 Add ImmediateType for declaring immediate operands. 2016-03-30 14:17:42 -07:00
Jakob Olesen
3d67d4d6b9 Add type variables. 2016-03-16 10:41:24 -07:00
Jakob Olesen
29481a5851 Add type variables. 2016-03-16 10:41:24 -07:00
Jakob Stoklund Olesen
d9ba9480c9 Make the types module public, add documentation comments. 2016-03-11 16:06:14 -08:00
Jakob Stoklund Olesen
4ba29e594f Make the types module public, add documentation comments. 2016-03-11 16:06:14 -08:00
Jakob Stoklund Olesen
9d1fbfd649 Implement type representation in Rust.
Start the Cretonne library as a Rust crate.
2016-03-11 15:54:28 -08:00
Jakob Stoklund Olesen
82e05bcbc9 Implement type representation in Rust.
Start the Cretonne library as a Rust crate.
2016-03-11 15:54:28 -08:00
Jakob Olesen
a37005a1d4 Enable inheritance diagrams. 2016-02-09 08:11:20 -08:00
Jakob Olesen
29cc36c8d9 Enable inheritance diagrams. 2016-02-09 08:11:20 -08:00
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.
2016-02-09 06:55:53 -08:00
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.
2016-02-09 06:55:53 -08:00
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.
2016-02-04 19:51:38 -08:00
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.
2016-02-04 19:51:38 -08:00
Jakob Olesen
e337d19373 Add some more type classes. 2016-02-04 12:19:08 -08:00
Jakob Olesen
f66d2a26a2 Add some more type classes. 2016-02-04 12:19:08 -08:00
Jakob Olesen
a82a4d2717 Add ReadTheDocs badge with link to documentation. 2016-02-04 11:47:25 -08:00
Jakob Olesen
d1ed09183b Add ReadTheDocs badge with link to documentation. 2016-02-04 11:47:25 -08:00
Jakob Olesen
2929b6de84 Update README. 2016-01-23 18:03:23 -08:00
Jakob Olesen
5997554aed Update README. 2016-01-23 18:03:23 -08:00
Jakob Stoklund Olesen
b23b049140 Clean up the list of operations somewhat. 2016-01-22 17:30:30 -08:00
Jakob Stoklund Olesen
ec7d65d8f1 Clean up the list of operations somewhat. 2016-01-22 17:30:30 -08:00
Jakob Stoklund Olesen
2aabcd5cff Document heaps. 2016-01-22 16:48:11 -08:00
Jakob Stoklund Olesen
519fed894b Document heaps. 2016-01-22 16:48:11 -08:00
Jakob Stoklund Olesen
4bd4efaf67 Load, store, local variables. 2016-01-22 15:47:15 -08:00
Jakob Stoklund Olesen
095190b1a7 Load, store, local variables. 2016-01-22 15:47:15 -08:00
Jakob Stoklund Olesen
cdc0047ee1 Expand on control flow and direct function calls.
Define the syntax for function signatures.
2016-01-22 13:47:53 -08:00
Jakob Stoklund Olesen
43b4f7f4e7 Expand on control flow and direct function calls.
Define the syntax for function signatures.
2016-01-22 13:47:53 -08:00
Jakob Stoklund Olesen
05ecfc4149 Clarify local SSA form.
Rename 'local' to 'stack_slot'.
2016-01-22 12:13:38 -08:00
Jakob Stoklund Olesen
74eb6ce901 Clarify local SSA form.
Rename 'local' to 'stack_slot'.
2016-01-22 12:13:38 -08:00
Jakob Olesen
e238df3e7c Add hexadecimal numbers to the lexer.
Also decimal and hexadecimal exponential notation for float constants.
2016-01-22 10:31:24 -08:00
Jakob Olesen
189fc7dfb7 Add hexadecimal numbers to the lexer.
Also decimal and hexadecimal exponential notation for float constants.
2016-01-22 10:31:24 -08:00
Jakob Stoklund Olesen
ca02df9ce2 Document control flow instructions. 2016-01-21 17:15:20 -08:00