Commit Graph

524 Commits

Author SHA1 Message Date
Benjamin Bouvier
84fede890c [meta] Optimize the sequence table to use whole table suffix prefixing; 2019-04-05 11:59:09 -07:00
Benjamin Bouvier
2dd1552369 [meta] Make Typevar::type_set private, and add a second getter to read it directly;
There might be a silent bug in the Python module which directly reads
from this type_set field; in particular, it does so when reading all
controlling type variables, which all seem to be free variables (i.e. no
parent typevar). So imitate this behavior here, until we're sure there
are no other meta generators that rely on this.
2019-04-02 17:30:50 +02:00
Benjamin Bouvier
5edee84f67 [meta] Port TypeVar's test_functions to Rust;
Fixes two issues:

- name of derived type variables wasn't correct. (This is used during
code generation.)
- the TypeVar::derived() function wasn't creating the correct type set
(and would instead propagate the parent's one).
2019-04-02 17:30:50 +02:00
Benjamin Bouvier
dd63ebfb68 [meta] Port typeset_singleton tests to the Rust crate; 2019-04-02 17:30:50 +02:00
Benjamin Bouvier
ac37cb9bf5 [meta] Add test for {half/double}_{vector/width} and as_bool; 2019-04-02 17:30:50 +02:00
Benjamin Bouvier
6053201128 [meta] Move the TypeSet building out of the TypeVar builder so as to test it; 2019-04-02 17:30:50 +02:00
Benjamin Bouvier
3e7543df79 [meta] Introduce the num_set! macro to create NumSet as vec! does; 2019-04-02 17:30:50 +02:00
Benjamin Bouvier
86430abc4c [meta] Port all the Cranelift instructions to the meta crate; 2019-03-28 14:13:29 +01:00
Benjamin Bouvier
3c31eac48c [meta] Port Instruction/InstructionGroup to the Rust meta crate; 2019-03-28 14:13:29 +01:00
Benjamin Bouvier
d59bef1902 [meta] Port Formats and Operands to the Rust crate; 2019-03-27 14:43:27 +01:00
Benjamin Bouvier
146e0bd2f5 [meta] Port Typevar to the Rust crate; 2019-03-27 14:43:27 +01:00
Benjamin Bouvier
f3f449b45b [meta] Tweak generation of settings/registers; 2019-03-27 14:43:27 +01:00
Benjamin Bouvier
393b88af6e [meta] Implement UniqueTable in the Rust crate;
... and also rename the previously-named UniqueTable to UniqueSeqTable,
which is the name used in the Python code.
2019-03-27 14:43:27 +01:00
Benjamin Bouvier
72b0d26ee9 [meta] Add features to srcgen;
- Adds a compiler warning when the fmtln! macro isn't correctly used.
- Allow to add an empty line.
- Make the output of generated matches more beautiful, by having one
struct per line on the clause.
- Add a method to add match with doesn't read any data from fields.
- Make sure that the placeholder clause of a match is put at the end.
2019-03-27 14:43:27 +01:00
Dan Gohman
82c6867155 Work around Cargo #4866. (#699)
* Work around Cargo build #4866.

This fixes #697.

* Rename "cargo4866workaround" to "core" per review feedback.
2019-03-26 11:28:39 -07:00
Dan Gohman
ec0b10cd34 Bump version to 0.30.0 2019-03-26 09:36:22 -07:00
Dan Gohman
34aba7fe66 Bump version to 0.29.0 2019-03-05 06:36:34 -08:00
Benjamin Bouvier
603d80615f [meta] Introduce the fmtln! macro to ease writing formatted strings; 2019-02-20 11:31:38 +01:00
Benjamin Bouvier
c8e09cb37f [meta] Use AsRef<str> to allow passing String or &str to Formatter functions; 2019-02-20 11:31:38 +01:00
Benjamin Bouvier
a45b814de8 Fixes #13: Enable conditional compilation of ISAs through features; 2019-02-12 08:19:57 -08:00
Benjamin Bouvier
049f067168 [meta] Build registers with their own builder and immutably construct the TargetIsa; 2019-02-12 08:19:57 -08:00
Benjamin Bouvier
f78a61b998 [meta] Rename base/ to shared/ in the Rust meta crate; 2019-02-12 08:19:57 -08:00
Benjamin Bouvier
25fdda6134 [meta] Move source generation responsibility into the meta crate itself; 2019-02-12 08:19:57 -08:00
lazypassion
747ad3c4c5 moved crates in lib/ to src/, renamed crates, modified some files' text (#660)
moved crates in lib/ to src/, renamed crates, modified some files' text (#660)
2019-01-28 15:56:54 -08:00