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