Commit Graph

73 Commits

Author SHA1 Message Date
Klaus Post
3c861c7c0b internal/prnt: trim trailing comment whitespace (#114)
Before printing a comment, remove trailing whitespace. Generation would output `// ` for empty comments. So we trim the whitespace off the end before printing.
2020-01-13 10:09:25 -08:00
Michael McLoughlin
205fc6a3d7 tests: integration tests for third-party packages (#112)
Closes #103
2020-01-06 22:56:38 -05:00
Michael McLoughlin
bb615f61ce all: formatting (#93)
Enforce stricter formatting and import grouping with gofumports.
2019-07-30 18:40:47 -07: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
1735441939 all: apply gofumpt (#79)
Apply @mvdan's opinionated gofumpt formatter across the codebase.
2019-04-13 22:53:13 -05:00
Michael McLoughlin
02ecaad4e4 internal/load: use alias slice for determinism
Previously aliases were stored in a map which was causing
non-deterministic code generation (see recent build failures). This diff
changes to a slice to avoid this problem.

Updates #50
2019-01-20 23:06:42 -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
Michael McLoughlin
a23fe8ee57 internal/cmd/asmdecl: standalone asmdecl checker
Updates #24
2019-01-13 11:40:47 -08:00
Michael McLoughlin
f77a2e3b9e printer: use tabwriter to align instructions (#8) 2019-01-10 21:21:41 -08:00
Michael McLoughlin
56c962b9aa lint: switch to linter blacklist 2019-01-09 22:31:14 -08:00
Michael McLoughlin
775226218c internal/gen: docstrings for instruction builders
Piggybacks off the docstrings for constructors in x64 package.

Closes #36
2019-01-06 21:12:15 -08:00
Michael McLoughlin
0f63e0906d ast: move "ast" types from root to ir sub-package
Closes #32
2019-01-06 14:21:10 -08:00
Michael McLoughlin
b6576feee6 internal/test: test Logger helper
Provides *log.Logger and io.Writer that will log to a test object.

See golang/go#22513
Helped with #34
2019-01-06 13:30:34 -08:00
Michael McLoughlin
5c67547d67 doc: add package-level doc comments (#9) 2019-01-05 17:23:56 -08:00
Michael McLoughlin
7eb55c9ac5 build: doc external symbols (#9) 2019-01-05 16:49:59 -08:00
Michael McLoughlin
f4c5957820 internal/opcodes{csv/xml}: doc exported symbols (#9) 2019-01-05 14:41:37 -08:00
Michael McLoughlin
cf1739b920 internal/gen: doc exported symbols (#9) 2019-01-05 14:12:50 -08:00
Michael McLoughlin
c3a3000908 internal/load: doc exported symbols (#9) 2019-01-05 13:45:09 -08:00
Michael McLoughlin
9f1cb70aac internal/prnt: doc exported symbols (#9) 2019-01-05 11:53:35 -08:00
Michael McLoughlin
b0b4b88db4 avogen: package-level comment (#9) 2019-01-05 11:46:51 -08:00
Michael McLoughlin
f9a67bb2c0 internal/inst: doc exported symbols (#9) 2019-01-05 11:43:59 -08:00
Michael McLoughlin
301d0c137a internal/stack: helper package for querying stack frames
Intended for #5. Also replaces a helper function in the `printer`
package.
2019-01-04 00:46:27 -08:00
Michael McLoughlin
6d6ff3cfc1 legal: include LICENSEs for data files
We depend upon data files from golang arch sub-repo and the Opcodes XML
database (behind PeachPy). This change includes their LICENSE files.

Updates #22
2018-12-31 16:17:44 -08:00
Michael McLoughlin
9fbb71b6db lint: enable golint
Enables golint and fixes function naming errors (operand checks
incorrectly cased).

Fixes #10
2018-12-31 11:20:59 -08:00
Michael McLoughlin
662ae52758 examples: adapt to new const types 2018-12-26 17:08:58 -08:00
Michael McLoughlin
ca5c7e7454 printer: add generated code warnings 2018-12-18 22:57:26 -08:00
Michael McLoughlin
19d1761694 fix couple of tests 2018-12-11 22:35:01 -08:00
Michael McLoughlin
c882e52510 printing: commit some refactors (probably broken) 2018-12-11 00:18:22 -08:00
Michael McLoughlin
271670c14c avogen: make mov generator deterministic 2018-12-08 22:14:30 -08:00
Michael McLoughlin
69ee0e39cb parameter loading 2018-12-08 20:14:51 -08:00
Michael McLoughlin
00c50be004 enable some more linters 2018-12-05 00:49:12 -08:00
Michael McLoughlin
b52c67f3fb pass: naive implementation of liveness 2018-12-02 23:59:29 -08:00
Michael McLoughlin
96a5c5fe1e ctors: include implicit inputs/outputs 2018-12-02 21:12:56 -08:00
Michael McLoughlin
82b31fa0da wip: adding instruction inputs and outputs 2018-12-02 17:57:12 -08:00
Michael McLoughlin
43575d8b61 start at some basic passes 2018-12-02 13:51:03 -08:00
Michael McLoughlin
9b9f5b7e0c first pass at a "builder" interface 2018-11-30 20:43:31 -08:00
Michael McLoughlin
b65b6c02b8 return a basic instruction object 2018-11-27 22:38:53 -08:00
Michael McLoughlin
23289963d9 ctorstest: some more variants 2018-11-27 22:11:45 -08:00
Michael McLoughlin
4395adacc8 x86: rel types and generated tests 2018-11-27 22:08:11 -08:00
Michael McLoughlin
bed7e7e2c2 stub operand checks 2018-11-26 10:13:04 -08:00
Michael McLoughlin
af02be06ba add skeleton for instruction constructors 2018-11-25 21:50:46 -08:00
Michael McLoughlin
4dcfed6e16 add instruction arities function 2018-11-25 18:25:51 -08:00
Michael McLoughlin
09848512cc add -bootstrap option to avogen 2018-11-25 17:11:24 -08:00
Michael McLoughlin
0694ebab9b ensure all stdlib opcodes are present 2018-11-25 16:22:02 -08:00
Michael McLoughlin
6d3e3be578 generate test to ensure code generation worked 2018-11-24 17:53:17 -08:00
Michael McLoughlin
0edbdb064f supporting more instructions seen in stdlib 2018-11-24 17:32:18 -08:00
Michael McLoughlin
a70227cbe3 test for stdlib opcodes 2018-11-24 14:55:51 -08:00
Michael McLoughlin
898d66c585 test asmtest with instruction list 2018-11-24 14:20:04 -08:00
Michael McLoughlin
bec73ca7a1 basic instruction properties 2018-11-24 14:08:55 -08:00