Jakob Stoklund Olesen
e8723be33f
Add trap codes to the Cretonne IL.
...
The trap and trapz/trapnz instructions now take a trap code immediate
operand which indicates the reason for trapping.
2017-09-20 15:50:02 -07:00
Jakob Stoklund Olesen
0f21fd342a
Remove the HeapLoad/HeapStore instruction formats.
...
These formats are not used any longer after the heap_load and heap_store
instructions were replaced by heap_addr.
Also drop the Uoffset32 immediate operand type which isn't used either.
2017-09-20 15:43:25 -07:00
Jakob Stoklund Olesen
c7b9bc1abf
Prefer to use qualified type names in generated code.
...
Emit type names like ir::Foo instead of just Foo to avoid very long
manual use declarations in files including generated code.
2017-08-18 14:14:23 -07:00
Jakob Stoklund Olesen
6bcb24b3a6
Add a uimm32 operand kind.
...
We already have a uoffset32 operand kind, but that prints as an offset
with a permanent sign.
2017-08-18 13:07:44 -07:00
Dan Gohman
130b7fa2fa
Add documentation for immediates with type bool.
...
This makes the documentation for the new bconst instruction more complete.
2017-07-13 16:23:41 -07:00
Dan Gohman
5a4aa11274
Add a bconst instruction. ( #116 )
...
* Add a bconst instruction.
2017-07-13 10:12:25 -07:00
Jakob Stoklund Olesen
950838c489
Add a regmove instruction.
...
This will be used to locally change the register locations of values in
order to satisfy instruction constraints.
2017-05-02 11:32:12 -07:00
Jakob Stoklund Olesen
b4ac520332
Extending loads and truncating stores
2017-04-11 10:30:03 -07:00
Jakob Stoklund Olesen
aad6ebebb5
Add load and store instructions.
...
Define a MemFlags class, currently holding a notrap and aligned flag.
2017-04-11 09:54:55 -07:00
Jakob Stoklund Olesen
e78e4ea4ec
Add a Uoffset32 immediate operand kind.
...
WebAssembly memory instructions encode a 32-bit unsigned offset that is
used to compute an effective address.
2017-04-10 15:04:33 -07:00
Jakob Stoklund Olesen
222ae8af22
Define stack_load, stack_store, and stack_addr instructions.
2017-04-10 13:56:57 -07:00
Jakob Stoklund Olesen
eccc2d0dae
Add an Offset32 immediate operand kind.
...
This will be used to represent an immediate 32-bit signed address offset
for load/store instructions.
2017-04-10 11:53:46 -07:00
Jakob Stoklund Olesen
aa06e40456
Allow dot syntax notation for enumerated immediate operands.
...
The meta language patterns sometimes need to refer to specific values of
enumerated immediate operands. The dot syntax provides a namespaced,
typed way of doing that: icmp(intcc.ult, a, x).
Add an ast.Enumerator class for representing this kind of AST leaf node.
Add value definitions for the intcc and floatcc immediate operand kinds.
2017-03-30 11:37:05 -07:00
Jakob Stoklund Olesen
9fbfd0d2a6
Remove the vconst instruction and the UnaryImmVector format.
...
No instruction sets actually have single instructions for materializing
vector constants. You always need to use a constant pool.
Cretonne doesn't have constant pools yet, but it will in the future, and
that is how vector constants should be represented.
2017-03-10 11:57:49 -08:00
Jakob Stoklund Olesen
eb688dc72d
Move formats, entities, and immediates to the base package.
...
- base.formats defines instruction formats.
- base.entities defines kinds of entity references.
- base.immediates defines kinds of imediate operands.
2016-11-08 11:06:37 -08:00