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
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
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
cf1739b920
internal/gen: doc exported symbols ( #9 )
2019-01-05 14:12:50 -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
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
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
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
898d66c585
test asmtest with instruction list
2018-11-24 14:20:04 -08:00
Michael McLoughlin
70dcf2b611
generate the instruction table
2018-11-24 13:47:30 -08:00
Michael McLoughlin
f1e1da6387
refactors to code generation
2018-11-24 13:00:27 -08:00
Michael McLoughlin
86373c79ee
load: handle MOVABS special case
2018-11-23 16:14:05 -06:00
Michael McLoughlin
2f7c14f061
loadertest: more vm* operands
2018-11-23 15:31:12 -06:00
Michael McLoughlin
ae6909493c
loadertest: support vm32{x,y}
2018-11-23 15:26:19 -06:00
Michael McLoughlin
6370e39b88
oops: do not skip CALL instruction
2018-11-22 16:22:36 -06:00
Michael McLoughlin
4404836ff4
loadertest: rel8/32 operands
2018-11-22 16:21:05 -06:00
Michael McLoughlin
27235485a6
m256 arguments, MMX exception
2018-11-22 15:24:28 -06:00
Michael McLoughlin
1f20eae901
loadertest: more operand types
2018-11-22 14:58:31 -06:00
Michael McLoughlin
e97da03f19
loadertest: add memory operands
2018-11-22 14:12:20 -06:00
Michael McLoughlin
c67dcb7fa9
add more immediates to loader test
2018-11-22 11:17:46 -06:00
Michael McLoughlin
b5c22e9464
handle order differences
2018-11-21 23:06:29 -06:00
Michael McLoughlin
c30d7fb743
handle xmm instructions
2018-11-21 22:28:55 -06:00
Michael McLoughlin
59e6af7d36
wip
2018-11-21 13:02:18 -06:00