Commit Graph

9 Commits

Author SHA1 Message Date
Michael McLoughlin
cde7e9483b pass,printer: display required ISA features (#120)
Fixes #119
2020-01-19 16:45:09 -08:00
Michael McLoughlin
d43efabdbe inst,ir: cancelling inputs (#92)
Adds support for a `CancellingInputs` instruction flag, to indicate cases like `XORQ R10, R10` where the instruction actually does not depend on the value of `R10` at all.

Closes #89
2019-07-28 17:58:49 -07:00
Michael McLoughlin
57c23b967e pass: add PruneSelfMoves cleanup pass (#80)
In some cases natural use of abstraction in avo programs can lead to redundant move instructions, specifically self-moves such as MOVQ AX, AX. This does not produce incorrect code but it is incorrect and inelegant.

This diff introduces a PruneSelfMoves pass that removes such unnecessary instructions.

Closes #76
2019-04-14 14:26:28 -07:00
Michael McLoughlin
1735441939 all: apply gofumpt (#79)
Apply @mvdan's opinionated gofumpt formatter across the codebase.
2019-04-13 22:53:13 -05:00
Michael McLoughlin
3cfe40e76c build: load package in LoadAllSyntax mode (#63)
Fixes #62
2019-02-20 21:17:28 +00:00
Michael McLoughlin
9c913ee847 lint: linter for package docstrings (#59)
Fixes #38
2019-01-22 21:14:59 -08:00
Michael McLoughlin
4bc8de39bb tests/fixedbugs/issue50: fix asmdecl complaint
Updates #50
2019-01-20 23:19:06 -08:00
Michael McLoughlin
2d7a9ddb6c internal/load: rerun code generation
Updates #50
2019-01-20 22:43:14 -08:00
Michael McLoughlin
220969f8c8 internal/load: support additional MOVQ forms
The Go assembler merges MOVD/MOVQ instruction forms. The logic in the
avo instruction loader was discarding the MOVD forms. This diff should
merge them correctly.

Updates #50
2019-01-20 22:34:52 -08:00