bjorn3
0a1bb3ba6c
Add TLS support for ELF and MachO ( #1174 )
...
* Add TLS support
* Add binemit and legalize tests
* Spill all caller-saved registers when necessary
2020-02-25 17:50:04 -08:00
Peter Delevoryas
18b40d1101
Add ineg legalization for scalar integer types ( #1385 )
2020-02-14 13:16:02 -08:00
Ryan Hunt
bbc0a328c7
Codegen: Allow encoding of (r32|r64).(load|store)
...
Accessing Wasm reference globals that are reference types will
want to use the plain load/store instructions. This commit adds
encodings for these instructions to match loading a i32/i64.
Producers of IR are required to insert the appropriate barriers
around the loads/stores.
2020-01-23 13:37:11 -06:00
Benjamin Bouvier
0243b642e3
[meta] Remove name lookups in formats;
...
This does a lot at once, since there was no clear way to split the three
commits:
- Instruction need to be passed an explicit InstructionFormat,
- InstructionFormat deduplication is checked once all entities have been
defined;
2019-10-22 14:05:12 +02:00
Sean Stangl
3d5346a90b
Name opcodes statically in isa/x86. Closes #1051 ( #1079 )
2019-09-25 19:59:49 -06:00
Ujjwal Sharma
3418fb6e18
[codegen] reintroduce support for carry and borrow instructions in RI… ( #1005 )
...
Reintroduce support for iadd carry variants and isub borrow variants for
RISC ISAs which had been removed in
https://github.com/CraneStation/cranelift/pull/961 and
https://github.com/CraneStation/cranelift/pull/962 because of the lack
of a proper flags register in RISC architectures.
2019-09-13 17:27:49 +02:00
Benjamin Bouvier
d1d2e790b9
[meta] Morph a few pub into pub(crate), and remove dead code;
2019-09-06 15:47:20 +02:00
Benjamin Bouvier
29e3ec51c1
[meta] Introduce the Immediates structure instead of using dynamic lookup;
2019-09-06 15:47:20 +02:00
Andrew Brown
084e279def
Add x86 implementation of splat instruction
2019-07-16 17:07:44 -07:00
Benjamin Bouvier
fd03677292
[meta] Recipes and encodings descriptions for x86;
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
f1d1d1e960
[meta] Uniquely number every instruction in the Rust crate;
2019-07-03 18:39:28 +02:00
Benjamin Bouvier
cbbb7a220e
[meta] Move x86 registers generation to their own file;
2019-05-22 10:55:02 +02:00
Benjamin Bouvier
92109f664c
[meta] Move x86 settings generation to their own file;
2019-05-22 10:55:02 +02:00
Benjamin Bouvier
f335c5c56c
[meta] Small fixes in the settings generation;
2019-05-03 12:01:12 +02:00
Benjamin Bouvier
390cfb37da
[meta] Use named predicates for x86 settings in the Rust crate too;
...
And generate them using the same deterministic order that the Python
code uses.
2019-05-03 12:01:12 +02:00
Benjamin Bouvier
1f21349c4b
[meta] Add CPU modes to the meta crate;
2019-04-25 11:44:56 +02:00
Benjamin Bouvier
3c31eac48c
[meta] Port Instruction/InstructionGroup to the Rust meta crate;
2019-03-28 14:13:29 +01:00
Benjamin Bouvier
049f067168
[meta] Build registers with their own builder and immutably construct the TargetIsa;
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