Andrew Brown
|
084e279def
|
Add x86 implementation of splat instruction
|
2019-07-16 17:07:44 -07:00 |
|
Andrew Brown
|
3b36a1d1d8
|
Add x86 implementation of insertlane instruction
|
2019-07-16 17:07:44 -07:00 |
|
Andrew Brown
|
683e7c75a3
|
Add x86-specific shuffle instructions
This includes both PSHUFD and PSHUFB; these are necessary to legalize future SIMD instructions.
|
2019-07-16 17:07:44 -07:00 |
|
Andrew Brown
|
61772e9775
|
Add raw_bitcast instruction
Casts bits as a different type of the same width with no change to the data (unlike bitcast)
|
2019-07-16 17:07:44 -07:00 |
|
Andrew Brown
|
5f0e5567c1
|
Add scalar_to_vector instruction
Moves scalar values in a GPR register to an FPR register
|
2019-07-16 17:07:44 -07:00 |
|
Andrew Brown
|
356e6dafe2
|
Allow CDSL instructions to bind to vector types
|
2019-07-16 17:07:44 -07:00 |
|
Andrew Brown
|
c39a9b4e3f
|
Assign vector arguments to FPR registers
|
2019-07-16 17:07:44 -07:00 |
|
Andrew Brown
|
659725b465
|
Add x86-specific SIMD settings, e.g. SSE2
Also, ties SIMD ISA predicates to the shared enable_simd setting
|
2019-07-16 17:07:44 -07:00 |
|
Andrew Brown
|
f2c48009e8
|
Disable SIMD features by default
|
2019-07-16 17:07:44 -07:00 |
|
Andrew Brown
|
8378297f33
|
Prepare legalizer codegen for SIMD features
Contains fixes from @bnjbvr to codegen as a part of https://github.com/bnjbvr/cranelift/pull/2; necessary for SIMD features to work
|
2019-07-16 17:07:44 -07:00 |
|
Dan Gohman
|
67dd0b5015
|
Bump version to 0.35.0
|
2019-07-12 15:48:19 -07:00 |
|
Artur Jamro
|
9e884b4433
|
Add support for some serde serialization (#847)
* Add support for some serde serialization
|
2019-07-12 15:30:50 -07:00 |
|
Nicolas B. Pierron
|
8edc40cb49
|
BB-like manual legalization for x86 ISA
|
2019-07-12 14:20:26 +02:00 |
|
Mark McCaskey
|
f856b124fd
|
Use Default trait for Position and DisplayFunctionAnnotations (#843)
|
2019-07-12 11:21:00 +02:00 |
|
Benjamin Bouvier
|
bfc1468688
|
[docs] Don't accidentally generate doc tests;
|
2019-07-11 11:48:45 +02:00 |
|
Benjamin Bouvier
|
062ed8f6ea
|
[docs] Remove rst annotations in instructions doc comments;
|
2019-07-11 11:48:45 +02:00 |
|
Benjamin Bouvier
|
d5b80b2803
|
[meta] Generate full documentation for instructions in InstBuilder;
|
2019-07-11 11:48:45 +02:00 |
|
Benjamin Bouvier
|
84a6795873
|
[meta] Riscv: add back stacknull encodings for copy_nop;
|
2019-07-10 17:51:09 +02:00 |
|
Dan Gohman
|
59f6c81e4f
|
Bump version to 0.34.0
|
2019-07-09 12:31:58 -07:00 |
|
Benjamin Bouvier
|
41a3d88b37
|
Fixes #837: Use an u64 comparison instead of a usize comparison in meta;
|
2019-07-09 18:15:30 +02:00 |
|
Sean Stangl
|
237d48477a
|
Fix an outdated comment referring to FunctionLayout instead of Layout
|
2019-07-09 18:05:36 +02:00 |
|
Nicolas B. Pierron
|
3ac7466cab
|
Legalize br_table to a BB-like format.
|
2019-07-09 16:48:54 +02:00 |
|
Nicolas B. Pierron
|
1963c223b1
|
Legalize trapz/trapnz to a BB-like format.
|
2019-07-09 16:02:49 +02:00 |
|
Benjamin Bouvier
|
f11fc34066
|
Build fix: add crates::predicates to the Riscv enc_tables file;
|
2019-07-09 11:31:21 +02:00 |
|
Benjamin Bouvier
|
56f6908020
|
[meta] Legalization: Don't generate a variable for replaced instructions;
(since they're unused)
|
2019-07-09 10:56:50 +02:00 |
|
Benjamin Bouvier
|
cd4c28ad97
|
[meta] Legalization: Unprefix some module paths to make code neater;
|
2019-07-09 10:56:50 +02:00 |
|
Benjamin Bouvier
|
15d8b95e72
|
[meta] Legalization: remove spurious Option wrapping for type variables;
|
2019-07-09 10:56:50 +02:00 |
|
Benjamin Bouvier
|
f1222dce10
|
[meta] Legalization: emit typeof type variables for results in all the cases;
|
2019-07-09 10:56:50 +02:00 |
|
Benjamin Bouvier
|
3545363006
|
Add ir::Types::lane_of as an alias of lane_type to be used in typevar constraints;
|
2019-07-09 10:56:50 +02:00 |
|
Benjamin Bouvier
|
4fef03f5f8
|
[meta] Legalization: remove spurious assert;
This assert was added when porting legalization from Python to Rust and
doesn't hold when we have derived type variables.
|
2019-07-09 10:56:50 +02:00 |
|
Benjamin Bouvier
|
563525b090
|
[meta] Remove mentions to Python in comments of the non-meta crate;
|
2019-07-05 17:50:17 +02:00 |
|
Benjamin Bouvier
|
f29a26de14
|
[meta] Remove the Python DSL
KILL THE SNAKE WITH FIRE.
|
2019-07-05 17:50:17 +02:00 |
|
Benjamin Bouvier
|
88307f693a
|
[meta] Generate the encodings files;
|
2019-07-05 17:50:17 +02:00 |
|
Benjamin Bouvier
|
f574ab8703
|
[meta] Generate the binemits files;
Co-authored-by: Benjamin Bouvier <public@benj.me>
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
|
2019-07-05 17:50:17 +02:00 |
|
Benjamin Bouvier
|
fd03677292
|
[meta] Recipes and encodings descriptions for x86;
|
2019-07-05 11:38:51 +02:00 |
|
Benjamin Bouvier
|
ca277422bb
|
[meta] Recipes and encodings descriptions for RiscV;
|
2019-07-05 11:38:51 +02:00 |
|
Benjamin Bouvier
|
21aaf0c89f
|
[meta] Add cdsl facilities for encodings and recipes;
Co-authored-by: Benjamin Bouvier <public@benj.me>
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
|
2019-07-05 11:38:51 +02:00 |
|
Benjamin Bouvier
|
4a6b88193e
|
[meta] Map global TransformGroup to local TransformGroup indices;
|
2019-07-04 16:38:28 +02:00 |
|
Benjamin Bouvier
|
1e42aac41a
|
[meta] Add new instruction predicates and the InstructionPredicateMap;
The latter helps deduplicating predicates during encodings and recipes
construction.
|
2019-07-04 16:38:28 +02:00 |
|
Dan Gohman
|
a3e459269e
|
Bump version to 0.33.0
|
2019-07-03 10:40:58 -07:00 |
|
Benjamin Bouvier
|
e34a4759cd
|
[meta] Fix typo in x86 setting name use_lzcnt;
|
2019-07-03 18:39:28 +02:00 |
|
Benjamin Bouvier
|
ec5678ab7a
|
[meta] Add the ability to bind any type to an instruction;
|
2019-07-03 18:39:28 +02:00 |
|
Benjamin Bouvier
|
9dcc185264
|
[meta] Add a MapWithDefault trait;
This traits augments HashMap so they have a `get_or_default` method that
can be used to avoid boilerplate around usage of `entry.or_default`.
|
2019-07-03 18:39:28 +02:00 |
|
Benjamin Bouvier
|
18fb87cd9c
|
[meta] Refactor instruction predicates to distinguish format and type checks;
Also add the instruction format name in format predicates, since they're
going to be used when generating encodings.
|
2019-07-03 18:39:28 +02:00 |
|
Benjamin Bouvier
|
f1d1d1e960
|
[meta] Uniquely number every instruction in the Rust crate;
|
2019-07-03 18:39:28 +02:00 |
|
Nicolas B. Pierron
|
460fdaa34d
|
Add verification pass to migrate from EBB to BB.
|
2019-07-03 13:57:14 +02:00 |
|
Dan Gohman
|
b35227b417
|
Bump version to 0.32.0
|
2019-07-02 12:27:39 -07:00 |
|
Dan Gohman
|
4b924d34b6
|
Bump version to 0.31.0
|
2019-06-28 11:37:39 -07:00 |
|
Benjamin Bouvier
|
83336290c2
|
Mark the jump_table_entry Instruction as loading;
|
2019-06-27 17:38:20 +02:00 |
|
Benjamin Bouvier
|
079ccf1f6e
|
Remove unused results warnings;
|
2019-06-24 11:42:26 +02:00 |
|