Dan Gohman
b17d1617ca
Update to hashmap_core 0.1.8.
2018-07-02 15:09:30 -07:00
Dan Gohman
276ba8b97d
Support systems which don't have a "python" command. ( #386 )
...
Add support for finding an appropriate python command on systems which
don't have "python". Try "python3" and "python2.7".
Fixed #381 .
2018-07-02 13:02:00 -07:00
Dan Gohman
8f3c49bc6c
Update more references to "global variables".
...
This continues the transition to "global values", which aren't
implicitly dereferenced.
2018-06-28 12:52:51 -07:00
Dan Gohman
99b9b96eee
Pop and fill don't trigger StackOverflow. ( #365 )
2018-06-28 12:47:13 -07:00
Caroline Cullen
7bed3426a7
Adds decoration to the verifier errors. ( #375 )
...
* Adds decoration to the verifier errors.
example:
function %bad(i32) fast {
ebb0(v0: i32):
brnz.i32 v0, ebb1
return
^~~~~~
verifier inst1: Internal return not allowed with return_at_end=1
ebb1:
trapz.i32 v0, user6
return
}
Fixes #68
2018-06-28 10:17:27 -07:00
Dan Gohman
c5aad1eb5f
Add support for macho relocations. ( #378 )
...
This requires splitting X86PCRel4 into two separate relocations, to
distinguish the case where the instruction is a call, as Mach-O uses a
different relocation in that case.
This also makes it explicit that only x86-64 relocations are supported
currently.
2018-06-28 10:15:10 -07:00
Dan Gohman
cc94adca3b
Update to the rustfmt in rust 1.27, which is now stable. ( #377 )
2018-06-26 13:06:16 -07:00
Dan Gohman
7d2b44289c
Implement stack_addr, stack_load, stack_store for x86-64. ( #370 )
2018-06-26 06:15:21 -07:00
Dan Gohman
979162522e
Keep a comment in sync with the code.
2018-06-21 16:24:33 -07:00
Dan Gohman
593e2bae6c
Add timers for branch relaxation and instruction shrinking.
2018-06-21 16:18:34 -07:00
Dan Gohman
d209137149
Rename TargetIsa's emit_function to emit_function_to_memory.
...
This reflects the fact that it takes a concrete `MemoryCodeSink` rather than
a `CodeSink` trait object.
2018-06-21 15:50:29 -07:00
Dan Gohman
47a96641f9
Rename the memflags operand name from Flags to MemFlags.
...
This reduces confusion with other kinds of flags.
2018-06-19 14:12:52 -07:00
Dan Gohman
0349270b58
Bump version to 0.12.0
2018-06-16 07:50:27 -07:00
Lachlan Sneff
b3c3ca331b
Removed implicit indirection when computing heap base. ( #363 )
...
Fix expected legalized heap_addr
2018-06-16 07:31:52 -07:00
Lachlan Sneff
f97ad59991
Fix breaking change
2018-06-15 18:33:30 -07:00
Lachlan Sneff
38ab82bcc0
Made changes for review
2018-06-15 18:33:30 -07:00
Lachlan Sneff
3686fc2fc7
Fix typos caused by find-and-replace
2018-06-15 18:33:30 -07:00
Lachlan Sneff
5c320a0d30
Change GlobalVar to GlobalValue
2018-06-15 18:33:30 -07:00
Dan Gohman
49cc693d64
Update to hashmap_core 0.1.7.
2018-06-15 10:35:13 -07:00
Dan Gohman
dfc7065252
Bump version to 0.11.0
2018-06-15 08:46:25 -07:00
Dan Gohman
1cab2f2d73
Remove an unneeded comment.
2018-06-13 07:41:39 -07:00
Dan Gohman
9542cab5ed
Bump version to 0.10.0
2018-06-12 12:29:59 -07:00
Sergey Pepyakin
399860e2aa
Encode bnot on x86.
2018-06-12 11:54:23 -07:00
Dan Gohman
a7813c4448
Update to target-lexicon 0.0.2.
...
This fixes compilation on rust 1.22.1.
2018-06-12 06:36:07 -07:00
Dan Gohman
1b55a2d005
Rename more Error and Result types.
2018-06-12 05:02:25 -07:00
Dan Gohman
6971ae1c26
Export CodegenError and CodegenResult at the top level.
...
Make cretonne-codegen's `result` module private, and instead just export
`CodegenError` and `CodegenResult` at the top level of the
cretonne-codegen crate. This makes them more consistent with Result and
Error types in other cretonne crates.
2018-06-12 05:02:25 -07:00
Dan Gohman
8a26a50475
Rename CtonError and CtonResult to CodegenError and CodegenResult.
2018-06-12 05:02:25 -07:00
Dan Gohman
02e34d1bf7
Make CtonError parameterized on the result type.
...
This makes it more consistent with other custom `Result` types.
2018-06-12 05:02:25 -07:00
Dan Gohman
13f22065a2
Rename verifier's Result and Error.
...
This provides consistency with similar types in other parts of
Cretonne, and avoids shadowing `Result` from the standard prelude.
2018-06-12 05:02:25 -07:00
Dan Gohman
ffe57d9051
Fix a typo in a comment.
2018-06-12 05:02:25 -07:00
Dan Gohman
de2a2fe418
Minor code cleanup.
2018-06-12 05:02:25 -07:00
Dan Gohman
967da59181
Fix shellcheck warnings in shell scripts.
2018-06-12 05:02:25 -07:00
Dan Gohman
0daa560368
Accept redundant alias definitions.
...
In the text format, allow aliases to be defined multiple times, as long
as they're always aliasing the same value.
write.rs is already emitting redundant aliases, because it emits them at
their uses, so this change allows the parser to be able to parse such
code.
2018-06-12 05:02:25 -07:00
Dan Gohman
00d7d3a774
Implement IntoIterator for PrimaryMap.
...
This makes iterating through a `PrimaryMap` more consistent with
iterating through a `Vec`.
2018-06-12 05:02:17 -07:00
Dan Gohman
fdf89edbfe
Fail loudly if a build.rs dependency path can't be printed.
2018-06-09 13:22:44 -07:00
Sergey Pepyakin
e4fe1db3b8
Assert that stack_limit is none.
2018-06-09 13:18:12 -07:00
Sergey Pepyakin
ddc8c91419
Displaying stack_limit
2018-06-09 13:18:12 -07:00
Sergey Pepyakin
73b6468d25
Parsing stack_limit
2018-06-09 13:18:12 -07:00
Sergey Pepyakin
effe770c5f
Add stack_limit global_var in Function
2018-06-09 13:18:12 -07:00
Sergey Pepyakin
e9111d1de2
Ditch stack_check instruction
2018-06-09 13:18:12 -07:00
Dan Gohman
944251260b
Bump version to 0.9.0
2018-06-07 11:46:36 -07:00
Dan Gohman
f5c1273fcf
Use cfg_attr to tidy up an extern crate declaration.
2018-06-07 11:34:55 -07:00
Dan Gohman
b2b20a95a1
Fix missing no_std support in cretonne-module.
...
And, tidy up the extern crate declarations in the std replacement modules.
2018-06-07 11:34:55 -07:00
Dan Gohman
750483b9ac
Update to hashmap_core 0.1.6.
2018-06-07 10:45:30 -07:00
Dan Gohman
6ec3a3f7a1
Pass the "std" feature through to target-lexicon.
2018-06-07 09:56:45 -07:00
Dan Gohman
970045c309
Set clobbers_flags to False for urm_noflags_abcd.
...
`urm_noflags` is a variant of `urm` which doesn't clobber the flags, and
`urm_noflags_abcd` is a further variant for ABCD registers, so it also
doesn't clobber the flags.
2018-06-05 11:30:35 -07:00
Dan Gohman
6c003d68cd
Factor out pointer_bits() and pointer_bytes() helper functions.
2018-05-31 11:21:26 -07:00
Dan Gohman
f48c1d4f89
Update to target-lexicon 0.0.1 and faerie 0.4.1.
...
This fixes handling of custom targets.
2018-05-30 17:25:48 -07:00
Dan Gohman
4e67e08efd
Use the target-lexicon crate.
...
This switches from a custom list of architectures to use the
target-lexicon crate.
- "set is_64bit=1; isa x86" is replaced with "target x86_64", and
similar for other architectures, and the `is_64bit` flag is removed
entirely.
- The `is_compressed` flag is removed too; it's no longer being used to
control REX prefixes on x86-64, ARM and Thumb are separate
architectures in target-lexicon, and we can figure out how to
select RISC-V compressed encodings when we're ready.
2018-05-30 06:13:35 -07:00
Dan Gohman
a1fe0f82e1
Update to the latest stable rustfmt, 0.4.2-stable (febbb36 2018-04-12).
2018-05-29 10:37:38 -07:00