jespergravgaard
53d021bae3
Added second 8-bit sinus test (against 16-bit sinus)
2018-02-25 14:35:20 +01:00
jespergravgaard
2789361724
Fixed 8-bit sinus implementation.
2018-02-25 14:07:44 +01:00
jespergravgaard
7d26c74c21
Added initial 8-bit sinus (not quite working yet.)
2018-02-25 11:10:50 +01:00
jespergravgaard
97bc9870f9
Syntax changes
2018-02-25 00:39:19 +01:00
jespergravgaard
651de919b3
Comment fixed
2018-02-25 00:10:10 +01:00
jespergravgaard
73bdd4ff8d
Optimized sin /128 part.
2018-02-25 00:08:11 +01:00
jespergravgaard
f0917c7bed
Optimized ZP coalesce vastly.
2018-02-24 21:06:25 +01:00
jespergravgaard
1ec9060962
Added clobber test to ZP coalesce
2018-02-24 14:12:37 +01:00
jespergravgaard
a87a97c669
Moved sin to separate method.
2018-02-24 13:02:15 +01:00
jespergravgaard
948db1a389
Fixed lo/hi test
2018-02-24 08:14:01 +01:00
jespergravgaard
028fd75878
Fixed > & < for pointers.
2018-02-24 00:54:12 +01:00
jespergravgaard
b3537e3b66
Implemented full -$7fff-$7fff range word sinus generator.
2018-02-24 00:46:25 +01:00
jespergravgaard
6702baa875
Fixed lo/hi of dwords in constants.
2018-02-23 22:15:10 +01:00
jespergravgaard
37bfd18716
Working a bit on the sinus table generator.
2018-02-20 23:12:39 +01:00
jespergravgaard
696d1a1f5f
Working a bit on sinus table generator. Tested resulting sinus - it is within +/-2 of a java-calculated sinus.
2018-02-20 22:41:36 +01:00
jespergravgaard
db603554ac
Using reciprocal multiplication for divisions inside loop.
2018-02-20 10:53:31 +01:00
jespergravgaard
d3070fec14
Implemented first sinus generator using sinx=x-x^/3!+x^/5!.
2018-02-19 08:29:47 +01:00
jespergravgaard
a695a94422
Extended linear table gen with two tables.
2018-02-18 20:41:36 +01:00
jespergravgaard
b5dfef7368
Optimized line table generator. Improved const identification in phi-values.
2018-02-18 19:52:51 +01:00
jespergravgaard
0478bc7404
Limited label usage for constant integers referenced outside scope. Optimized division.
2018-02-18 19:39:08 +01:00
jespergravgaard
d3898d717e
Using labels for constant integers referenced outside scope.
2018-02-18 17:49:03 +01:00
jespergravgaard
76d3e25b84
Implemented inline dword constructor dword dw = { wl, wh };
2018-02-18 15:35:17 +01:00
jespergravgaard
0c7883532e
Split multiply tests for performance
2018-02-16 08:59:54 +01:00
jespergravgaard
8f21ffc0e4
Implemented signed word multiplication & test.
2018-02-16 01:13:57 +01:00
jespergravgaard
34d3c732da
Implemented word multiplication
2018-02-15 20:36:26 +01:00
jespergravgaard
b5a79848f3
Implemented dword ASM and printing
2018-02-15 19:50:33 +01:00
jespergravgaard
8b54f38640
Implemented bitshift signed byte multiply.
2018-02-15 12:35:40 +01:00
Jesper Gravgaard
c936da289e
Implemented normal binary multiply for unsigned integers - mul8u().
2018-02-14 11:30:31 +01:00
Jesper Gravgaard
a6f32bea13
Renamed multiply.kc to fastmultiply.kc - and methods multiply()/signed_multiply() to mulf8u(), mulf8s()
2018-02-14 10:05:18 +01:00
Jesper Gravgaard
7900c846c9
Adde useful comment
2018-02-13 23:21:24 +01:00
Jesper Gravgaard
3eb08597cf
Implemented 16bit signed division.
2018-02-13 23:10:47 +01:00
Jesper Gravgaard
1fd0cd6874
Moved remainder to global var
2018-02-13 22:07:01 +01:00
Jesper Gravgaard
8705527316
Fixed conflict
2018-02-13 21:40:52 +01:00
Jesper Gravgaard
a50d685574
Fixed problem with phi lifting not updating predecessor in phi blocks when introducing new blocks. Implemented signed division for bytes.
2018-02-13 21:27:17 +01:00
jespergravgaard
1feed93b43
Renamed long branch fix label.
2018-02-13 13:05:46 +01:00
jespergravgaard
aec15a3125
Removed a bit of unused code.
2018-02-13 12:46:35 +01:00
jespergravgaard
c8a2d03550
Fixed register coalesce issues (Double.MIN_VALUE is unexpectedly positive).
2018-02-13 04:23:44 +01:00
jespergravgaard
9f80f71c64
Isolated KickAss assembly during test. Fixed long branches. Closes #62
2018-02-13 03:34:21 +01:00
jespergravgaard
2db042801b
Isolated KickAss assembly during test. Fixed long branches. Closes #62
2018-02-13 03:34:01 +01:00
jespergravgaard
0d6ce93e93
Added KickAss assembly to Test
2018-02-12 23:41:46 +01:00
jespergravgaard
52dd6035a0
Dropped JSON serialization. Added KickAss JAR.
2018-02-12 21:39:26 +01:00
jespergravgaard
6b43d797f5
Using address-of in test-division.
2018-02-11 23:55:52 +01:00
jespergravgaard
3f62d86312
Implemented working address-of operator byte* pte = &b1;
2018-02-10 22:08:36 +01:00
jespergravgaard
085aa9f825
Added missing toString/()
2018-02-03 15:46:12 +01:00
jespergravgaard
623f83a076
Added address-of operator. Working in basic programs. Transience of variables not implemented so there is a risk the variable being referenced is optimized into a constant or removed. Closes #78
2018-02-03 13:20:34 +01:00
jespergravgaard
7343a85b91
Moved division into library
2018-02-01 22:55:26 +01:00
jespergravgaard
b502c26140
Optimizing zeropage coalesce to minimize moving values around. Closes #80
2018-02-01 22:36:54 +01:00
jespergravgaard
45302103fa
Implemented 16bit division. Added support for word arrays. (idx must be multiplied by 2 manually)
2018-02-01 20:17:08 +01:00
jespergravgaard
e0124ee654
Added 8bit unsigned division. Ensured that pointers are generated into ASM labels.
2018-01-31 21:27:23 +01:00
jespergravgaard
b466f2f5cc
Added test provoking a register clobber error.
2018-01-30 22:23:07 +01:00
jespergravgaard
63f6620246
Implemented register(A/X/Y) keyword for allocating variables to specific register. Closes #70
2018-01-30 22:18:49 +01:00
jespergravgaard
7e268c5b4f
Moving declared register through the variable chain.
2018-01-30 11:50:18 +01:00
jespergravgaard
88744c8624
Consolidating variable methods - preparing to remove the 3 sub-classes.
2018-01-30 10:23:55 +01:00
jespergravgaard
6a012a3fd0
Added register keyword
2018-01-30 10:04:35 +01:00
jespergravgaard
02d7170a4c
Made ASM parenthesis hard.
2018-01-28 23:22:22 +01:00
jespergravgaard
341d8c5556
Renamed dword fragments from vl... to vd...
2018-01-28 23:09:47 +01:00
jespergravgaard
546644b7d3
Added parenthesis to ASM expressions.
2018-01-28 23:06:19 +01:00
jespergravgaard
9b09aaab14
Made dword value higher (>$80000000)
2018-01-28 22:15:09 +01:00
jespergravgaard
3d33851983
Improved dword type inference.
2018-01-28 17:21:57 +01:00
jespergravgaard
9025b7d64a
Removed verbose log.
2018-01-28 16:39:58 +01:00
jespergravgaard
fff4299fb2
Added dword and signed dword. Closes #76
2018-01-28 16:19:15 +01:00
jespergravgaard
b3a1c330a7
Removed two synthable fragments
2018-01-28 10:25:40 +01:00
jespergravgaard
4bbddfb5e2
Added comment.
2018-01-24 23:34:35 +01:00
jespergravgaard
f599eb2735
Expanded inline casting to also handle nop casts of pointer derefs.
2018-01-24 23:29:44 +01:00
jespergravgaard
15c1108d2c
Expanded inline casting to also handle word/pointer casts. Closes #2 .
2018-01-22 00:31:28 +01:00
jespergravgaard
1646f9d3ff
Implemented inline casting - allowing for improved ASM when doing no-op casting.
2018-01-21 23:24:28 +01:00
Jesper Gravgaard
eab2e64154
Dropped suite again.
2018-01-21 16:30:37 +01:00
Jesper Gravgaard
1d54fec7be
Put tests into suite to get deterministic sequencing.
2018-01-21 11:39:06 +01:00
Jesper Gravgaard
9328608fe6
Rebuilt test files with new synth ASM's.
2018-01-21 11:14:20 +01:00
Jesper Gravgaard
2d8cf433f6
Sorting synthesis by clobber when printing. Added an handling of synths with equal cycles & clobber but different ASM.
2018-01-21 09:39:37 +01:00
jespergravgaard
267d006752
Improved bigscroll by inlining screen lines in array assignments.
2018-01-19 00:59:51 +01:00
jespergravgaard
30690b6306
Removed a bunch of synth rules. Added a few fragments.
2018-01-19 00:10:09 +01:00
jespergravgaard
cdbc2e05cf
Removed one synth rule. Fixed flaw in others.
2018-01-18 23:51:42 +01:00
Jesper Gravgaard
eadf85a048
Improved fragment generation further. Rules need clean-up soon to improve efficiency.
2018-01-18 23:21:31 +01:00
jespergravgaard
c7b6989c6c
Removed verbosity
2018-01-16 16:58:11 +01:00
jespergravgaard
08f2e3a6b8
Added rasterbar test program
2018-01-15 22:16:25 +01:00
jespergravgaard
13bd9509d1
Fixed issue with loop depth - now calculated corrent when some functions have no loops.
2018-01-15 21:02:49 +01:00
jespergravgaard
4c22877f0e
Only logging synthesis issue when set to verbose
2018-01-07 12:41:13 +01:00
jespergravgaard
a6e75ffcb0
Implemented fragment tests - first for assignment to unsigned bytes.
2018-01-07 11:42:46 +01:00
jespergravgaard
a047fedebf
Moved KC test files into separate folder
2018-01-06 16:36:54 +01:00
jespergravgaard
2603740d15
Moved KC test files into separate folder
2018-01-06 16:36:39 +01:00
jespergravgaard
40153fc6d6
Working on optimal synthesis
2018-01-06 14:01:40 +01:00
jespergravgaard
30d77c1450
Working on optimizing synthesis
2018-01-05 22:29:21 +01:00
jespergravgaard
b55485db50
Implemented sub-fragment clobber avoidance. Improved best template updating. Now the graph-based fragment synthesis system works. Still need to clean-up the synthesis rules.
2018-01-03 08:15:17 +01:00
jespergravgaard
e9965580a4
Iplemented graph based synthesis. Working on the kinks - eg. issue #75
2018-01-03 01:00:55 +01:00
jespergravgaard
b29ed11a81
Renamed fragment system classes in prepararion of graph based solution.
2018-01-02 17:09:42 +01:00
jespergravgaard
3595db56db
Renamed fragment system classes in prepararion of graph based solution.
2018-01-02 14:13:08 +01:00
jespergravgaard
2084be92e0
Implemented the rest of the comparison test. Fixed a double jump problem.
2018-01-02 10:17:59 +01:00
jespergravgaard
53d8afbb1d
Fixed an error in with comparison rewriting
2018-01-01 22:59:06 +01:00
jespergravgaard
4d46820cf4
Reformatted for code style.
2018-01-01 21:25:11 +01:00
jespergravgaard
20b9ab6881
Tried adding more memory for the Junit JVM
2018-01-01 15:59:15 +01:00
jespergravgaard
939b70aa23
Started implementing new style fragment synthesis rules. Yielding quite good initial optimizations.
2018-01-01 15:09:47 +01:00
jespergravgaard
269c1343ed
Implemented usage sorting and a file details logging option.
2017-12-31 00:15:23 +01:00
jespergravgaard
be37a45e36
Closes #9
2017-12-30 23:55:14 +01:00
jespergravgaard
14616458e5
Used usage module to identify & remove all unneeded fragments. Many unused ones moved into a new "unused" folder to be removed later.
2017-12-30 23:54:27 +01:00
jespergravgaard
aeba75906b
Removed all redundant fragment ASM files.
2017-12-30 22:17:42 +01:00
jespergravgaard
4f30cef2d3
Implemented asm template usage statistics. Now prefer synthesis over loading.
2017-12-30 21:59:23 +01:00
jespergravgaard
203af62173
Refactoring fragment synthesis to allow scoring of files & synthesis.
2017-12-30 19:22:44 +01:00
jespergravgaard
58c206cef4
Added more options to CompileLog for controlling verbosity.
2017-12-30 17:31:22 +01:00
jespergravgaard
174346d0f1
Improved Fragment Synthesis - trying all possible combinations. Closes #71
2017-12-30 17:24:30 +01:00
jespergravgaard
66fdfb08a9
Improved ZP detection
2017-12-30 14:18:57 +01:00
jespergravgaard
2367aa93cd
Added final score to the log
2017-12-30 13:45:59 +01:00
jespergravgaard
c7b137d631
Added working test for signed multiplication. Refactored AsmFragment synthesis away from relying on vwuc.
2017-12-30 11:55:28 +01:00
jespergravgaard
b95c7e20f5
Moved multiply into a library
2017-12-29 22:45:19 +01:00
jespergravgaard
df227e0b49
Implemented fast multiplication - tested that all results are correct.
2017-12-29 19:35:54 +01:00
jespergravgaard
fa00ecfbbf
Test data for alignment test
2017-12-29 18:20:44 +01:00
jespergravgaard
694fb66379
Added data alignment directive for arrays/strings.
2017-12-29 18:20:11 +01:00
jespergravgaard
39925809e3
Removed AsmFragment log again
2017-12-29 16:34:55 +01:00
jespergravgaard
b2a5e5184b
Removed AsmFragment log again
2017-12-29 16:19:23 +01:00
jespergravgaard
6b79ecc537
Implemented all fast multiply tables.
2017-12-29 16:05:27 +01:00
jespergravgaard
db6c1f54db
Improved log format slightly
2017-12-29 13:53:16 +01:00
jespergravgaard
5ec1070b41
Improved tests for CI
2017-12-29 11:40:03 +01:00
jespergravgaard
31e412bb11
Slimming log output
2017-12-29 11:21:11 +01:00
jespergravgaard
32d7db5ce7
Moved tests into Maven Test area to allow maven-based testing.
2017-12-28 15:34:32 +01:00
jespergravgaard
ff51d04356
Improved KC mul table gen.
2017-12-28 15:10:56 +01:00
jespergravgaard
d1ee716008
Improved KC mul table gen.
2017-12-28 14:46:31 +01:00
jespergravgaard
5e25684cf9
Slight improvement of code
2017-12-28 04:38:19 +01:00
jespergravgaard
6dcafb83c2
Optimized KC based multiply table generator.
2017-12-28 04:32:26 +01:00
jespergravgaard
8198b8f168
Generating fast multiply table in both ASM and KC - now word-based generation.
2017-12-28 04:13:31 +01:00
jespergravgaard
389b6042ed
Generating fast multiply table in both ASM and KC.
2017-12-28 03:32:59 +01:00
jespergravgaard
bb0aeb9e3b
Implementing fast multiplication KC program.
2017-12-28 01:50:55 +01:00
jespergravgaard
6532fdd002
Added array length mismatch error in Pass1.
2017-12-28 00:17:39 +01:00
jespergravgaard
19a040345f
Added array zero initializer and ASM .fill for arrays declared with a size but without initializer.
2017-12-27 23:53:51 +01:00
jespergravgaard
62a56f23fb
Removed unused LValueLoHiByte.
2017-12-27 22:48:26 +01:00
jespergravgaard
4bcf51732b
Added aseetion stopping compilation at pass 3 if any value list has survived.
2017-12-27 22:22:53 +01:00
jespergravgaard
347fc03f47
Made all declared arrays/strings implicitly constant.
2017-12-27 22:08:15 +01:00
jespergravgaard
4a7dd31d40
Fixed word constructor detection to detect all inline word constructors.
2017-12-27 21:47:07 +01:00
jespergravgaard
212e8572de
Improved constant string detection. Type System is still a bit of a mess.
2017-12-27 20:52:38 +01:00
jespergravgaard
8a1dbc36d7
Refactored recursive value replacement into ValueReplacer. Moved VariableReplacer to a simple ValueReplacer. Added test for true inline word constructors.
2017-12-27 13:40:55 +01:00
jespergravgaard
a3a7d02cd7
Added test to confirm that pointer destinations can now be incremented corrently. Closes #29
2017-12-26 17:38:51 +01:00
jespergravgaard
b412a4aefc
Assignments are now expressions. For-loops can now contain assignments in the increment part. LValue handling reimplemented (lvalue no longer exist in parser - only expression). RValues now also contains pointer derefs. Complex array expressions (SCREEN+$100)[i] now possible as LValues. ASM fragment generation improved to handle new more complex LValues & RValues. Closes #5 . Closes #43
2017-12-26 17:24:30 +01:00
jespergravgaard
2c44783879
Added ALU potential for _word_ operator
2017-12-26 10:31:30 +01:00
jespergravgaard
91f22c44f0
Removed all ASM steps between ASM optimizations - result smaller log file.
2017-12-26 09:15:10 +01:00
jespergravgaard
42b026a757
Allowing ZP coalescing whenever registers are the same type (before variables had to be the same type).
2017-12-26 00:24:40 +01:00
jespergravgaard
e3353acbc9
Implemented syntax for composing word from two bytes word w = { b1, b2 };
...
Optimizer still needs to attempt to (and allow) placing the two byte variables directly at the lo/hi-vars of the word wo minimize moving data around.
Closes #37
2017-12-25 23:27:54 +01:00
Jesper Gravgaard
bd3c26b5ec
Fixed constant inlining inside constant value lists.
2017-12-25 20:53:52 +01:00
Jesper Gravgaard
e314794f0b
Implemented true recursive variable replacer that can replace into pointers/value lists. Also using this when building SSA. Prepared syntax ant type inference for building a word from 2 bytes using word w = { b1, b2 };
2017-12-25 20:19:53 +01:00
Jesper Gravgaard
eb6ee9bff8
Prepared parser for inline word expressions.
2017-12-23 15:35:13 +01:00
Jesper Gravgaard
10b8431833
Simplified fragment value naming further.
2017-12-23 10:49:18 +01:00
Jesper Gravgaard
8b96c1ae40
Merge remote-tracking branch 'gitlab/master'
2017-12-23 10:31:24 +01:00
Jesper Gravgaard
9d6fd3e1c9
Simplified fragment symbol naming
2017-12-23 10:31:20 +01:00
jespergravgaard
c38e9b85e4
Implemented signed words - first test works. Closes #22
2017-12-23 02:35:50 +01:00
jespergravgaard
978c1fb997
Improved readability.
2017-12-22 14:34:10 +01:00
jespergravgaard
b3649997b6
Simplified fragement synthesis.
2017-12-13 00:48:59 +01:00
jespergravgaard
177be17dd9
Last of fragment renaming completed (zpptrby1/zpptrsby1 => pbuz1/pbsz1)
2017-12-13 00:29:48 +01:00
jespergravgaard
49b8545232
Next part of fragment renaming completed (coby1/cosby1/cowo1/coswo1 => vbuc1/vbsc1/vwuc1/vwsc1)
2017-12-12 22:39:27 +01:00
jespergravgaard
07478e86b1
Next part of fragment renaming completed (zpby1/zpsby1 => vbuz1/vbsz1)
2017-12-12 20:53:22 +01:00
jespergravgaard
8b8095ff87
First part of fragment renaming completed (aby/xby/yby/asby/xsby/ysby => vbuaa/vbuxx/vbuyy/vbsaa/vbsxx/vbsyy)
2017-12-12 00:09:14 +01:00
Jesper Gravgaard
5a819659a0
Removed signed byte register usage by allowing the fragment binding to also look at the variable type.
2017-12-10 20:00:00 +01:00
Jesper Gravgaard
e2aa0cd7e0
Removed signed byte register usage by allowing the fragment binding to also look at the variable type.
2017-12-10 19:53:14 +01:00
jespergravgaard
69dba6ea27
Added casting problem test nocast.kc
2017-12-05 23:31:43 +01:00
jespergravgaard
a79853a4ec
Improved static ASM analysis to recognize & remove several LDA/LDX/LDY of the same value.
2017-12-05 22:01:32 +01:00
jespergravgaard
c1b2b8ab7d
Added sprite MSB
2017-12-05 21:49:40 +01:00
jespergravgaard
ad9873d201
Improved slightly
2017-12-05 01:15:17 +01:00
jespergravgaard
5b070b5a27
Added progress while generating sines
2017-12-05 01:11:31 +01:00
jespergravgaard
3569405dc1
Added some consts
2017-12-04 23:54:12 +01:00
jespergravgaard
56b74e7e0f
Implemented initial sinus sprites.
2017-12-04 23:48:14 +01:00
jespergravgaard
c74b86a616
Moved tables into methods.
2017-12-03 23:24:25 +01:00
jespergravgaard
9ea1d4f2c1
Minor refactoring improving sine example.
2017-12-03 23:17:13 +01:00
jespergravgaard
c769aabc0a
Minor refactoring improving float lib.
2017-12-03 23:08:47 +01:00
jespergravgaard
80d5f2bf9d
Updated print test reference data.
2017-12-03 22:59:25 +01:00
jespergravgaard
e18a8cb7d8
Added library for using BASIC functions. Improved print library. Added test creating a sine. Added asserts for methods with to few/many parameters. Added assert for requiring procedure return value. Added som missing fragments.
2017-12-03 22:57:54 +01:00
jespergravgaard
878d3ae36b
Added tests for to few and many method parameters
2017-12-03 17:01:23 +01:00
jespergravgaard
87f58d8782
Implemented check in pass1 ensuring that all used vars have been assigned a value. Closes #8 . Closes #21 .
2017-12-03 16:49:56 +01:00
jespergravgaard
b43489f11a
Implemented ASM long label relabelling. Closes #57
2017-12-03 15:12:20 +01:00
jespergravgaard
defd957837
Intorduced better error when assigning a constant. Closes #19
2017-12-03 14:26:28 +01:00
jespergravgaard
ee5b113b3a
Declared constants only create a single version. Closes #34 .
2017-12-03 14:01:31 +01:00
jespergravgaard
0323fb0a0d
Fixed tests to take adcantadge of casting & int constant type elasticity.
2017-12-02 17:17:19 +01:00
jespergravgaard
9c39311d67
Preventing double imports. Closes #102
2017-12-02 16:56:58 +01:00
jespergravgaard
41fd3bc436
Implemented import functionality. Added import test. Closes #32 .
2017-12-02 16:35:13 +01:00
jespergravgaard
78dd8bc149
Added import keyword and failing test.
2017-12-02 00:01:53 +01:00
jespergravgaard
2f0bcfacd7
Rewrote syntax to separate declarations and statements.
2017-12-01 23:45:09 +01:00
jespergravgaard
fed99da261
Disallowing code outside methods. Closes #18 .
2017-12-01 23:25:53 +01:00
jespergravgaard
3023540e15
Refactored unused var analysis to reuse VariableReferenceInfos
2017-12-01 08:33:25 +01:00
jespergravgaard
18c36a6ed9
Implemented pass1 removal of all unused variables - but keeping all calls & side-effects. Closes #31
2017-11-30 23:19:02 +01:00
jespergravgaard
deb1304ba6
Added pass 1 base class. Added test for unused vars.
2017-11-30 21:51:13 +01:00
jespergravgaard
42840f8f77
Renamed phase 5 optimization.
2017-11-30 20:08:03 +01:00
jespergravgaard
d9490718fa
Optimizing ASM removing double jumps and unreachable code (after JMP/RTS). Closes #58 . Closes #99 .
2017-11-30 00:27:11 +01:00
jespergravgaard
6eb54c11a6
Working on improving constants.kc. Now everything works except allocation to asby (where clobber by a-register is not detected.)
2017-11-29 22:01:30 +01:00
jespergravgaard
1c59ae231e
Fixed problem with inline string by extracting them as local constants. Closes #98
2017-11-29 21:31:20 +01:00
jespergravgaard
14987484ee
Fixed live range problem when calling multiple calls one after the other. Closes #97 .
2017-11-29 12:29:57 +01:00
jespergravgaard
507b27f436
Fixed an alias problem visible in print.kc where to eager aliasing destroyed the ln function. Now aliases are not identified, when the assignment is done withing another scope.
2017-11-29 01:31:46 +01:00
jespergravgaard
1edb436dfd
Fixed problem with ++ being added twice in *(char_cursor++) = *str;
2017-11-28 01:23:59 +01:00
jespergravgaard
663b885196
Now removing any unused procedures in pass 1. Closed #96
2017-11-28 00:39:15 +01:00
jespergravgaard
b81ae706af
Fixed problem with inline data (strings/arrays) being generated at the start of methods. Closed #4
2017-11-27 23:55:39 +01:00
jespergravgaard
015de8da3d
Improved static value analysis to identify #<0, #>0 as identical to #0
2017-11-27 18:11:28 +01:00
jespergravgaard
7d08159fb2
Added test for lda #>0 / lda #<0.
2017-11-27 01:12:29 +01:00
jespergravgaard
d1d6724e0b
Working on skipping unneeded lda #>0 / lda #<0. Fixed word+byte type inference.
2017-11-27 01:04:12 +01:00
jespergravgaard
cd06dd2016
Implemented type promotion & type checking of all assignments.
2017-11-27 00:34:59 +01:00
jespergravgaard
0d622f978c
Added two string problems (local & inline) to error-test-cases.
2017-11-26 21:46:53 +01:00
jespergravgaard
ae167736d4
Fixed wordexpr problem. Improved type inference of binary/unary constants. Added sby->by fragment synthesis.
2017-11-26 21:27:00 +01:00
jespergravgaard
ebb71b4130
Working on support for inline constants with multiple potential types.
...
Improving fragment synthesis.
2017-11-26 17:38:45 +01:00
jespergravgaard
c8e3b36893
Added byte casting fragments
2017-11-25 00:10:21 +01:00
jespergravgaard
96f2610d25
Fixed infinite recursion
2017-11-24 23:49:36 +01:00
jespergravgaard
0efe62585b
Added explicit casting - started testing it on byte / signed byte.
2017-11-24 23:25:16 +01:00
jespergravgaard
d348365010
Improved fragment synthesis
2017-11-23 07:31:26 +01:00
jespergravgaard
b81e8eeaa4
Improved fragment synthesis
2017-11-22 10:37:00 +01:00
jespergravgaard
a6e1f2cade
Working on support for signed bytes. Syntax done, very simple program working - explicit casting needed, better asm fragment management needed
2017-11-21 00:30:16 +01:00
jespergravgaard
a1baf2e046
Using inverse space in scroller
2017-11-17 10:17:57 +01:00
jespergravgaard
e64b12e7be
Added 8x8 char scroller
2017-11-17 09:37:11 +01:00