ZornsLemma
848b97f099
Merge pull request #5 from dschmenk/master
...
Merge latest upstream changes
2017-08-28 12:20:05 +01:00
David Schmenk
873b2b58f9
Update README.md
2017-08-27 20:59:01 -07:00
David Schmenk
255061f75a
Add def prototypes for cmdsys library functions
2017-08-27 20:38:26 -07:00
David Schmenk
326482a2a0
Add parameter/return values for predefs
2017-08-27 13:29:50 -07:00
ZornsLemma
e3198fc3d9
Merge pull request #4 from dschmenk/master
...
Merge latest upstream changes
2017-08-14 20:50:55 +01:00
David Schmenk
b5cac6dc3d
Quick hack to flag var: and var=> without follow-on value as error
2017-08-12 16:28:29 -07:00
David Schmenk
4591334896
Add optional self-modifying opcode implementation.
2017-08-12 15:50:36 -07:00
David Schmenk
50f066e527
Fix DEFCNT for lambda functions
2017-08-07 07:34:56 -07:00
David Schmenk
b6076bed3f
Fix ENTER frame size parameter
2017-08-04 10:05:58 -07:00
David Schmenk
f03c373ab3
Merge branch 'master' of https://github.com/dschmenk/PLASMA
2017-08-03 20:14:02 -07:00
David Schmenk
8ef5ef44b1
No need for rtf instructions
2017-08-03 20:13:38 -07:00
David Schmenk
4adce26e12
Update Rogue Instructions.md
2017-08-03 20:12:29 -07:00
David Schmenk
70d4fbd49a
Update Rogue Instructions.md
2017-08-03 20:11:35 -07:00
David Schmenk
679d9a29dc
Rogue instruction in MD format
2017-08-03 20:09:18 -07:00
David Schmenk
77c2b768da
Add funtion parameter/return values
2017-08-03 19:55:46 -07:00
David Schmenk
d3c785e1eb
Revert and fix fixup addresses
2017-08-03 14:20:20 -07:00
David Schmenk
286f627c72
Update tokens.h
2017-08-03 12:14:13 -07:00
David Schmenk
4117e490c8
Update README.md
2017-08-03 12:00:41 -07:00
David Schmenk
c30b5b0ee9
Update README.md
2017-08-03 11:50:08 -07:00
David Schmenk
f939aef691
more better lambda example
2017-08-03 11:48:01 -07:00
David Schmenk
76038502c8
Clean up lambda example
2017-08-03 07:33:08 -07:00
David Schmenk
e23d45f34d
More lambda examples
2017-08-03 07:29:45 -07:00
dschmenk
4906a5a4c5
Remove GNU C warning
2017-08-03 06:29:46 -07:00
David Schmenk
26d69f2ce9
Update README.md
2017-08-02 21:52:06 -07:00
David Schmenk
5ab1edce52
Update README.md
2017-08-02 21:44:50 -07:00
David Schmenk
27a81add30
Update README.md
2017-08-02 21:43:25 -07:00
David Schmenk
f3e98ec134
Add lambda functions
2017-08-02 21:41:37 -07:00
David Schmenk
9eb0e7286a
Undo lambda funcs when RVALUE only statements
2017-08-02 20:42:18 -07:00
David Schmenk
4910f18661
Add lambda tests
2017-08-02 20:23:26 -07:00
David Schmenk
64fe1b2e70
Lambda functions working except double parsed in function list ???
2017-08-02 16:05:14 -07:00
David Schmenk
e65adf2050
Lambda WIP
2017-07-30 13:22:24 -07:00
Dave Schmenk
1eed149c1b
Add CFFB to AUX opcodes
2017-07-28 21:47:54 -07:00
David Schmenk
9fc0bd39db
Add CFFB opcode
2017-07-28 17:31:13 -07:00
David Schmenk
2e0508ccbf
Update links
2017-07-28 17:26:27 -07:00
David Schmenk
179a672895
Add optimization flag for ROGUE
2017-07-28 17:02:40 -07:00
David Schmenk
92cf12e209
Merge pull request #19 from ZornsLemma/optimise3
...
New optimizations - Thanks Steve!
2017-07-28 16:36:36 -07:00
Steven Flintham
f801d47b1b
Check type in emit_dab and emit_daw
...
Without this the new optimisations can cause invalid code to be emitted.
2017-07-28 23:20:52 +01:00
Steven Flintham
75d5266fba
Expose longer sequences to the optimiser
...
emit_seq() no longer emits directly but adds the sequence to a pending
sequence, which we emit only when necessary (e.g. when we're about to
emit a branch target, or when the parser is about to emit an opcode
directly).
This exposes more opportunities to the optimiser - in particular, the
earlier commit which taught the optimiser how to change things like
"SLW [n]:LLW [n]" to "DLW [n]" now gets a chance to kick in where one
statement updates a variable and the following statement uses the
updated value.
2017-07-28 23:09:26 +01:00
Steven Flintham
b6efb90995
Allow optimiser to introduce DUP opcodes
2017-07-28 23:06:02 +01:00
Steven Flintham
e9c4e062c3
Add more peephole optimisations
2017-07-28 23:03:44 +01:00
Steven Flintham
7ad91aa9e3
Wrap macro constants in parentheses
...
Later commits assume they can use macro constants without needing to
provide their own parentheses.
2017-07-28 22:59:04 +01:00
Steven Flintham
8a672501b7
Refactor elimination of *current* op in optimiser
...
The code to handle this was duplicated in two places; this pulls it out
to a common chunk of code triggered by negative values of freeops.
This isn't a big win here, but it sets us up to re-use this code in
later commits.
2017-07-28 22:57:46 +01:00
ZornsLemma
5a2af29fd6
Merge pull request #3 from dschmenk/master
...
Merge latest upstream changes
2017-07-28 22:03:29 +01:00
dschmenk
c4912583de
Add CFFB to portable VM with test case
2017-07-27 19:15:57 -07:00
David Schmenk
0ffaef968d
Merge pull request #17 from ZornsLemma/cffb
...
New PLASMA opcode - CFFB
2017-07-27 07:14:42 -07:00
Steven Flintham
d5f5326962
Use opcode $5E for CFFB
2017-07-26 20:22:27 +01:00
Steven Flintham
8610d2f56e
Add CFFB opcode
2017-07-18 20:37:43 +01:00
Peter Ferrie
60117f47bd
write-combine without intermediate var
2017-07-12 15:26:19 -07:00
ZornsLemma
1b2a1b5b7a
Merge pull request #2 from dschmenk/master
...
Merge latest upstream master
2017-07-11 18:59:41 +01:00
David Schmenk
72f0558974
Update VM byte codes to match new compiler
2017-07-10 17:46:17 -07:00