Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/swiftwasm/wasmtime
Standalone JIT-style runtime for WebAsssembly, using Cranelift
https://github.com/swiftwasm/wasmtime
This instruction uses two type variables: input and output. Make sure that our
parser can handle...
Rename the Select instruction format to Ternary since it is also used by the fma
instruction.
Add new intcc and floatcc operand types for the immediate condition codes on
these instructions....
The icmp and fmp instructions use different kinds of condition codes because
integers and floati...
These instruction formats take immediate lane index operands. We store these as
u8 fields and re...
e5feb864c7e7924d9046b2e0420753086c96e7ec authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
These instruction formats take EBB references with lists of argument values. For
EBBs with no ar...
a82554192aabbcdad310b2e17030fa9503bd603c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Start with a shell script that runs .cton files through 'cton-util cat' and
compares the output ...
The lexer still recognizes comments and generates tokens for them. They may be
useful for test a...
Instructions that don't produce any result values are marked with first_type() =
VOID. The inst_...
This is mostly useful when updating to a new version of rustfmt with different
behavior.
a981fc5605892a119b8f0e3d8cd56a4d851679be authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Include the name of the unrecognized opcode along with the line number.
cb4e9fbae02a933bd63ea3178c9a3461eec8f42c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
The 'cton-util cat' command parses the given files and writes them out again to
stdout. This has...
Add an external dependency to the docopt package and use it for a scaffold
command line interfac...
8fac050bb5c9650f3f476f6a3c771e1a99784457 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Wrangle the borrow checker into allowing us to iterate over function result
values while mutatin...
Replace the make_multi_inst() function with a make_inst_results() which uses
the constraint syst...
fc8d2f92fd85edbd01861978fcf165bfbdd4bd00 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
During parsing, it is possible to see instruction operands that reference
values or EBBs that ha...
Use derived type variables with the 'LaneOf' function.
Add u8 immediates to be used for lane in...
b1dd4ad37394e65f4936df90094aed4c1de9047c authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
This gives us the opportunity to use the AsBool derived type variables and a
Select instruction ...
Add an Opcode::constraints() method which returns an OpcodeConstraints object.
This object provi...
Add a typevar_operand argument to the InstructionFormat constructor which
determines the operand...
This will eventualy be used for add-with-carry and add-with-overflow type
instructions. For now ...
Accessors for shared fields and multiple results can be generated automatically.
Add a 'boxed_s...
2ce5f05bed49aadb157ed804a3d82334be7ac7db authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Rename 'br' to 'jump'. We'll use jump/br to mean unconditional/conditional
control transfer resp...
Define known entities in the cretonne.entities module.
d85fda0346e008c39f91dc173bd9be0990b0bb37 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Separate instruction descriptions from instruction formats which deal with the
Rust representati...
Create map entries for ebbs and values as they are defined, but leave ebb and
value operands unr...
Also introduce the concept of a derived type variable, and provide two
methods for deriving type...
Use the new iterators to write out the contents of a function.
9838a4040e7a04e0e8d4f8d61263ed8559e23eab authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Place instructions in a doubly linked list and point to the first and last
instruction in an EBB...
These two enums must have identical variants. One is generated from the
instruction formats in m...
Avoid gathering too much code in repr.rs.
The `entities` module contains entity reference types...
9c9be1cb58f3cf4a0d40dd01bc5ca37e8d81f4ad authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
This is a no-payload enum which will have the same variants as InstructionData.
This makes it po...
Cargo doesn't scan a directory for changed dependencies recursively, so do that
as part of the b...
Define all known instruction formats in the cretonne.formats module.
ef04f4fc40d40a35cbc405bca05ece2ce9b4e655 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
We have a two-level type system: OperandKinds and ValueTypes. The value types
only apply to valu...
f1e2dffa8180c3ec2c2a51bb2207415f1174287b authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
21b0eae044d43dea83dcb71e369a56a61138b661 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Values that are defined together are represented as a singly linked list. These
lists appear in:...
When Function serves as a container for IL entities, use the Index trait to
translate a referenc...
e414ce6315a8e20bf906f9cc8b4e79e6d8c08517 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
3c0e2f6e9d8d5562f3c24289db625603eacd3b70 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
4e4c6346668b2fce1789ec2f59eecf9504f06f77 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
It soome that 'cargo doc' gets confused when there is both a library crate
and a binary called '...
libctonfile -> libreader.
This library will only provide .cton file reading/parsing services wh...
810a90e3222e33af36433a799627098e71df8198 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>Convert a function to text.
ddea422cebdeb7c8c678da8e0f901f105afde920 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>Both use the Display trait.
5c4f3d01e2bd03de9c61e80c0c469fcf0c56182f authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>Add a stack slot array to repr::Function, use repr::StackSlot to reference them.
Parse stack sl...
88931983a81f574016691171718ee42e8fadff69 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>Simplify the uses in parser.rs to avoid too many module qualifiers.
021bde11918e1a25c601ac81284b35bf1f515bba authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>41d95c0342fccbec4ed9a2761f6a62d8f6655a70 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
42364fda59804183430aca21495538b565908da7 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
cda7943b0bc22fc09f8b9457670381f735fc43c7 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
The main entry point is Parser::parse().
07afc6e8da8efdd7e4af0692a506657030a74b0b authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>Use 'if let' instead of 'match' where it makes sense.
Use EBNF notation for the grammar rules. ...
8d0311b6428b12c362cafdb6d0d4afdf06aea3b5 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Recursive descent parser, although with this simple grammar there won't be any
recursion.
Describe function argument and return value types along with flags for passing
values in an ABI-...
c712ddc7766b0ddc8d5c2de613b3ae39b0892f68 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
Don't use assertions to enforce the limits on SIMD lanes in a type, Type is too
fundamental for ...
Add a lexer module which implements the lexical analysis of .cton files.
ab74770ffeda58cc20bc9855e2b1bfd2f92626b2 authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
These are bitwise exact conversions from string to immediates, implementing the
inverse of the D...
f1d43652ad1f4d2fc641aeadb52c43af0849bb3f authored over 8 years ago by Jakob Stoklund Olesen <[email protected]>
The src/tools directory contains the cretonne-tools crate which will build
binaries for testing ...
Replace the home-grown from_str function.
49ae98a1e9f4b5f9d6cacecc092eb92262c0722a authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>66778dc23cbc9daeb2b7e7841c8de871b731b89c authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>
Use a simple quadratically probed, open addressed hash table. We could use a
parfect hash functi...
This function returning a &'static str is more primitive that the Display
implementation. It all...
A function owns instructions and extended basic blocks. References to these
entities are impleme...
Generate nice doc comments for the Opcode enum variants that 'cargo doc'
will pick up.
Include ...
d650d551a07e25faa716f15264a3f5a7b45c8b73 authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>Start out easy by emiting an opcodes.rs file containing an opcode enumeration.
15f39c776c38493280223a4ed197b77e73e2f412 authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>
Flesh out the directory structure for defining target instruction set
architectures. Use RISC-V ...
This will be used as the instruction name in Rust code. By making this a
property of the instruc...
6f083a310ad267cab38eab45116a49b81eceaeff authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>
Hook up a Cargo build script that runs a Python script in the meta directory.
d32d78d16c51fc172b19426896738b7177603247 authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>This runs the convenient sphinx-autobuild web server for docs development.
d197f8a104e34353d0f8edb08b6bc952a3bdeb42 authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>
The b1 type is an abstract boolean value. The others are concrete
representations.
This is recommended by IEEE 754-2008.
We still distinguish signaling NaNs with 'sNaN'.
79e765a1834964010bdaa13d317eab4951fb341b authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>Clarify the textual encoding of floating point numbers.
Don't allow decimal floating point sinc...
5f706b0a1fcd6f4170e0204d864dec52a66d9cf6 authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>a76a0da826407e65615128a734870df7cc37c583 authored almost 9 years ago by Jakob Olesen <[email protected]>
Use the meta language to define instructions, just insert 'autoinst' references
in langref.
Add new immediate types for floating point and vector immediates.
Use new immediates to define t...
Format larger immediates as hexadecimal with a multiple of 4 digits and '_'
group separators.
10903503c48a67f8c022eeb8191afd97b91cc077 authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>
29481a5851d234bfeb82b2cfb07588c64f38c679 authored almost 9 years ago by Jakob Olesen <[email protected]>
4ba29e594fc21ba19a828e819ca5dee1c1391b3e authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>
Start the Cretonne library as a Rust crate.
82e05bcbc90381e3128dadb8a0935eb802e02d46 authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>29cc36c8d93d548496ec84601e6fc27b355a7e9b authored almost 9 years ago by Jakob Olesen <[email protected]>
Use the autodoc Sphinx module to add a .. autoctontype:: directive which
generates documentation...
The Cretonne meta language is used to describe Cretonne instructions, both the
target independen...
f66d2a26a2b365ad6086e3c15fa5dcac24abef49 authored almost 9 years ago by Jakob Olesen <[email protected]>
d1ed09183b2d6854f83b611d865d725577605097 authored almost 9 years ago by Jakob Olesen <[email protected]>
5997554aed237fabe52e9b0b6d93d50231340eff authored almost 9 years ago by Jakob Olesen <[email protected]>
ec7d65d8f130b93853c886dd77082e1bd38fee22 authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>
519fed894b95cf90d859100daf5895cd39129403 authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>
095190b1a747b03fec93957632c6ecbf75a8ed42 authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>
Define the syntax for function signatures.
43b4f7f4e74b4c952cee122107f0a0317dcacd8f authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>Rename 'local' to 'stack_slot'.
74eb6ce9014f8508be137d5cd35c69e69eacaafc authored almost 9 years ago by Jakob Stoklund Olesen <[email protected]>