Jesper Gravgaard
|
67157f0a70
|
Implemented interval analysis for detecting conditions that are always true/false. Closes #291
|
2019-08-29 20:05:08 +02:00 |
|
jespergravgaard
|
887b9b08d7
|
Added missing fragment for leac0045
|
2019-08-29 16:00:27 +02:00 |
|
jespergravgaard
|
a4450db06a
|
Merge remote-tracking branch 'origin/master'
|
2019-08-29 15:40:51 +02:00 |
|
jespergravgaard
|
cc7e7829cb
|
Fixed tests.
|
2019-08-29 15:40:41 +02:00 |
|
Jesper Gravgaard
|
c35d35c238
|
Updated test data
|
2019-08-29 09:29:33 +02:00 |
|
jespergravgaard
|
8ee1cf8b7e
|
Prepared for constant condition interval analysis
|
2019-08-29 08:54:38 +02:00 |
|
jespergravgaard
|
a064e766bc
|
Added missing fragments for Clay Cowgill
|
2019-08-28 09:56:00 +02:00 |
|
jespergravgaard
|
abdf3c3adb
|
Added missing fragments for Clay Cowgill
|
2019-08-27 22:45:18 +02:00 |
|
jespergravgaard
|
70aaeafecc
|
Added test for til parameter type problem. #299
|
2019-08-27 19:15:32 +02:00 |
|
jespergravgaard
|
f9a7904acb
|
Added missing signed 16bit copy fragment.
|
2019-08-27 18:39:24 +02:00 |
|
Jesper Gravgaard
|
b6d917a264
|
Added missing fragment. Added test for literal string pointer cast to word. #298
|
2019-08-27 14:54:49 +02:00 |
|
Jesper Gravgaard
|
a1fc0ace62
|
Added test showing inline ASM preserving called functions. #294
|
2019-08-27 14:31:30 +02:00 |
|
Jesper Gravgaard
|
fc3b7bd5c0
|
Added test illustrating problem with bitwise not and literal number type inference. #199
|
2019-08-27 13:26:55 +02:00 |
|
Jesper Gravgaard
|
5b71c50a90
|
Added tests for kickasm uses variable version problem. #296
|
2019-08-27 12:49:17 +02:00 |
|
Jesper Gravgaard
|
8ba337088d
|
Added tests for #199 #295.
Updated version number to 0.7.9
|
2019-08-27 12:01:20 +02:00 |
|
jespergravgaard
|
00c9b47481
|
Added support for specifying that inline kickasm uses a procedure - preventing it from being culled. Closes #294
|
2019-08-26 19:31:55 +02:00 |
|
jespergravgaard
|
452b9d2ae6
|
Fixed tests & fragment.
|
2019-08-26 00:55:22 +02:00 |
|
jespergravgaard
|
0dc8d5e735
|
Added fragments from Richard-William Loerakker
|
2019-08-26 00:23:05 +02:00 |
|
jespergravgaard
|
8e02a13dd3
|
Added a missing fragment.
|
2019-08-25 23:27:10 +02:00 |
|
jespergravgaard
|
b97d8300b3
|
Added another example of loophead optimization giving wrong return value. #290
|
2019-08-25 22:57:23 +02:00 |
|
jespergravgaard
|
2739456cc3
|
Added test for optimizing comparisons to types outside range of type. Added a missing fragment (that won't be used when the optimization is implemented). #291
|
2019-08-25 22:44:06 +02:00 |
|
jespergravgaard
|
3aad07f4e1
|
Disabled constant loop head optimization by default (until the two known issues have been fixed.)
|
2019-08-25 22:21:58 +02:00 |
|
jespergravgaard
|
19e53bf6fd
|
Implemented handling of expr-statements that do not produce a statement - this forces an assignment to a tmp-var (which means that it will be type-checked and more). Closes #276
|
2019-08-25 21:37:10 +02:00 |
|
jespergravgaard
|
c75e788fd1
|
Fixed problems casting strings to void*. Closes #281
|
2019-08-25 15:54:09 +02:00 |
|
jespergravgaard
|
bfe90bdf04
|
Better error when encountering continue in switch that is not inside loop. Closes #282
|
2019-08-25 15:01:04 +02:00 |
|
jespergravgaard
|
0fb90dc8b7
|
Fixed problem casting a constant pointer to char. Closes #288
|
2019-08-25 14:51:07 +02:00 |
|
jespergravgaard
|
56b0026452
|
Fixed error message when encountering non-integer number. Closes #286
|
2019-08-25 14:38:44 +02:00 |
|
jespergravgaard
|
0456279c94
|
Moved AsmFormat
|
2019-08-25 14:31:11 +02:00 |
|
jespergravgaard
|
5229b24ae7
|
better javadoc and names.
|
2019-08-25 14:19:37 +02:00 |
|
jespergravgaard
|
41fddfd25c
|
Improved handling of ASM multi-labels.
|
2019-08-25 14:10:36 +02:00 |
|
jespergravgaard
|
d3fa1f3743
|
Cleaned up lexer/parser. Added test of using ASM mnemonic as C symbol name.
|
2019-08-25 13:53:54 +02:00 |
|
jespergravgaard
|
26e96d085a
|
Centralized and optimized ASM name fixing.
|
2019-08-25 13:35:30 +02:00 |
|
jespergravgaard
|
87268abc2a
|
Added modes to lexer.
|
2019-08-25 13:07:21 +02:00 |
|
jespergravgaard
|
cb7469baf3
|
Improved lexer/parser
|
2019-08-25 11:38:42 +02:00 |
|
jespergravgaard
|
c237c323f1
|
Improved lexer/parser
|
2019-08-25 11:26:30 +02:00 |
|
jespergravgaard
|
d9321907ea
|
Separated lexer and parser in ANTLR parser.
|
2019-08-25 11:00:49 +02:00 |
|
jespergravgaard
|
91a7f0bb0d
|
Implemented CParser, which handles imports at the token level.
|
2019-08-25 00:20:50 +02:00 |
|
jespergravgaard
|
f4032e6c84
|
Addes parser/lexer state ensuring that typedefs are recognized as types. Closes #269
|
2019-08-24 14:30:21 +02:00 |
|
jespergravgaard
|
bb53f0b51d
|
Addes parser/lexer state ensuring that ASMREL labels does not get confused with negated struct references. Closes #266
|
2019-08-24 14:11:45 +02:00 |
|
jespergravgaard
|
5642c8d228
|
Added pointer ANDing test case.
|
2019-08-24 12:18:56 +02:00 |
|
jespergravgaard
|
5d6fbcb42c
|
Improved static var usage.
|
2019-08-23 00:19:10 +02:00 |
|
jespergravgaard
|
03f4530da7
|
Implemented typedef logic using (static)members/actions .
|
2019-08-23 00:15:17 +02:00 |
|
jespergravgaard
|
0938fa2448
|
Added 2 fragments for Clay Cowgill
|
2019-08-22 23:14:27 +02:00 |
|
jespergravgaard
|
4c6014e448
|
Added 2 fragments for Clay Cowgill
|
2019-08-22 23:12:33 +02:00 |
|
jespergravgaard
|
a3b3eadeef
|
Moved test.
|
2019-08-22 13:18:01 +02:00 |
|
jespergravgaard
|
8885aa0fbd
|
Succesfully made proof-of-concept for distinguishing type identifiers (typedefs) from other identifiers. #269
|
2019-08-22 13:05:29 +02:00 |
|
jespergravgaard
|
2de0744639
|
Fixed switch test
|
2019-08-22 12:20:37 +02:00 |
|
jespergravgaard
|
a78ecc0e42
|
Added test for 32bit long pointer for 45GS02.
|
2019-08-22 12:15:33 +02:00 |
|
jespergravgaard
|
cda6beb5e0
|
Added missing fragments for Clay Cowgill
|
2019-08-22 11:36:43 +02:00 |
|
jespergravgaard
|
5923245630
|
Added missing fragments for Paul Nelsen
|
2019-08-22 11:13:52 +02:00 |
|
jespergravgaard
|
1d5cb644ad
|
Added missing fragment for Clay Cowgill
|
2019-08-22 10:47:40 +02:00 |
|
jespergravgaard
|
5bc38ae3c0
|
Added test for issue
|
2019-08-22 10:36:05 +02:00 |
|
jespergravgaard
|
50b4d2f24c
|
Added missing fragment for smit1759/OS-smit1759
|
2019-08-22 10:25:44 +02:00 |
|
jespergravgaard
|
c70ac2f440
|
Fixed tests.
|
2019-08-22 01:51:32 +02:00 |
|
jespergravgaard
|
642f196786
|
Fixed switch without default. Closes #285
|
2019-08-22 01:01:01 +02:00 |
|
jespergravgaard
|
4ec3c6b369
|
Added test cases for problems #283
|
2019-08-22 00:47:44 +02:00 |
|
jespergravgaard
|
ea7df4761f
|
Added test cases for problems #199 #281 #282
|
2019-08-21 20:04:11 +02:00 |
|
jespergravgaard
|
8bbddf5651
|
Fixed problem with switch not working unless it is inside a loop. Closes #280
|
2019-08-21 17:33:11 +02:00 |
|
jespergravgaard
|
dd5c06b9f9
|
Added missing fragments. Closes #277
|
2019-08-21 17:18:16 +02:00 |
|
jespergravgaard
|
124f2b4d85
|
Added missing fragment. Closes #278
|
2019-08-21 16:51:18 +02:00 |
|
jespergravgaard
|
45c3ebf566
|
Made test pass.
|
2019-08-21 16:34:02 +02:00 |
|
jespergravgaard
|
8743921cd9
|
Added Typedef parser and test-case that illustrates the typedef ambiguity problem. #269
|
2019-08-21 10:13:15 +02:00 |
|
jespergravgaard
|
67a9880b94
|
Added example of Using function as error does not give an error - instead silently throws away the statement. #276
|
2019-08-21 07:06:11 +02:00 |
|
jespergravgaard
|
d42c7250af
|
Fixed tests.
|
2019-08-20 00:26:04 +02:00 |
|
jespergravgaard
|
f4777a5876
|
Added interrupt type hardware_stack which uses the stack for saving the registers. Closes #256
|
2019-08-20 00:08:49 +02:00 |
|
jespergravgaard
|
733751dbe3
|
Added parenthesis to fragments when derefs are nested. Closes #270
|
2019-08-19 23:54:01 +02:00 |
|
jespergravgaard
|
e3427796d3
|
Added examples of 2 problems
|
2019-08-19 08:42:48 +02:00 |
|
jespergravgaard
|
0185370732
|
Fixed problem where code after return resulted in NPE. Closes #273
|
2019-08-18 23:44:01 +02:00 |
|
jespergravgaard
|
19c0637f1e
|
Fixed relative labels in KickAss 5.9 #272
ASM now uses literal encoded chars for better readability #245
|
2019-08-18 23:18:53 +02:00 |
|
jespergravgaard
|
21e4638857
|
Upgraded to KickAsm 5.9. Closes #272
|
2019-08-18 22:12:02 +02:00 |
|
jespergravgaard
|
65dffdbdea
|
Added upport for continue inside switch statement. Closes #170
|
2019-08-18 21:55:21 +02:00 |
|
jespergravgaard
|
55b7dfdf91
|
Added a few fragments - and some tests illustrating certain problems.
|
2019-08-18 20:59:57 +02:00 |
|
jespergravgaard
|
3c12acbb43
|
Added support for \\ escape code. #241
|
2019-08-18 17:00:26 +02:00 |
|
jespergravgaard
|
577e0f6011
|
Implemented support for string and character escape codes \n \r \\ \" \'. Closes #241
|
2019-08-18 16:43:15 +02:00 |
|
jespergravgaard
|
f08812ab91
|
fixed test
|
2019-08-18 14:20:05 +02:00 |
|
jespergravgaard
|
ea70f7a6f4
|
Added some signed word fragments
|
2019-08-18 13:51:49 +02:00 |
|
jespergravgaard
|
f51cef9c34
|
Added more missing fragments.
|
2019-08-17 14:13:15 +02:00 |
|
jespergravgaard
|
fe745ec4ca
|
Added another fragment
|
2019-08-17 14:07:25 +02:00 |
|
jespergravgaard
|
13f2f14b9d
|
Added missing fragments for Paul Gardner-Stephens Unit 3.5
|
2019-08-17 13:51:07 +02:00 |
|
jespergravgaard
|
891a4c21c2
|
Improved Atari Tempest Example Code.
|
2019-08-16 22:28:37 +02:00 |
|
jespergravgaard
|
eaabba4ea2
|
Fixed toUpperCase() to use a specific locale. Closes #262
|
2019-08-16 21:00:29 +02:00 |
|
jespergravgaard
|
09d68e6931
|
Added missing fragments for rolling unsigned bytes.
|
2019-08-15 08:38:49 +02:00 |
|
jespergravgaard
|
ea9054a562
|
Added missing fragments for rolling unsigned words. Added test demonstrating Unroller problem.
|
2019-08-15 08:34:50 +02:00 |
|
jespergravgaard
|
8d7b0385cb
|
Fixed type inference error message. Closes #260
|
2019-08-13 08:08:43 +02:00 |
|
jespergravgaard
|
c9a3f33773
|
Implemented switch()-statement - first simple test working. #170
|
2019-08-12 21:46:01 +02:00 |
|
jespergravgaard
|
46b88d8cf0
|
Added start of code for switch
|
2019-08-12 00:18:48 +02:00 |
|
jespergravgaard
|
88cc028285
|
Added example of cast error giving an exception. #260
|
2019-08-11 23:59:29 +02:00 |
|
jespergravgaard
|
c10d646a5d
|
Added syntax for switch-statement. #170
|
2019-08-11 23:32:24 +02:00 |
|
jespergravgaard
|
1dd2f1ebe6
|
Improved basic-floats.kc
|
2019-08-11 01:16:56 +02:00 |
|
jespergravgaard
|
a4472e0778
|
Added .ld-files to assembly
|
2019-08-10 23:58:49 +02:00 |
|
jespergravgaard
|
a4fc6db4c2
|
Added missing fragments. Closes #251
|
2019-08-10 20:49:00 +02:00 |
|
jespergravgaard
|
ffa75b1732
|
Expanded "used" logic of inine ASM to include procedure refs.
|
2019-08-10 18:27:05 +02:00 |
|
jespergravgaard
|
074826fb1f
|
Playing a little with XMega helloworld.
|
2019-08-10 16:48:47 +02:00 |
|
jespergravgaard
|
7484e27a32
|
Working helloworld for XMega65 Xemu.
|
2019-08-10 15:41:32 +02:00 |
|
jespergravgaard
|
c82234db19
|
Fixed problem with for() continue.
|
2019-08-10 15:07:51 +02:00 |
|
jespergravgaard
|
da56d74339
|
Merged IcePic/master fragments. Thanks to Janne Johansson. #248
|
2019-08-10 14:41:46 +02:00 |
|
jespergravgaard
|
741f424116
|
Merged IcePic/master fragments. Thanks to Janne Johansson. #248
|
2019-08-10 14:41:30 +02:00 |
|
jespergravgaard
|
65bf7be4d7
|
Added support for export directive on data variables ensuring they are always included in the output ASM even if not used. Closes #252
|
2019-08-10 09:02:35 +02:00 |
|
jespergravgaard
|
7b155ee4b0
|
Added support for register keyword without parameter for compatibility. Closes #229
|
2019-08-10 08:39:42 +02:00 |
|
jespergravgaard
|
5755616588
|
Changed syntax slightly
|
2019-08-10 08:21:58 +02:00 |
|
jespergravgaard
|
e53159699b
|
Implemented Xmega65 SYSCALLS.
|
2019-08-10 00:22:57 +02:00 |
|
jespergravgaard
|
4430974f25
|
Implemented Xmega65 SYSCALLS.
|
2019-08-10 00:17:55 +02:00 |
|
jespergravgaard
|
d70fbe4c34
|
Implemented Xmega65 SYSCALLS.
|
2019-08-10 00:16:33 +02:00 |
|
jespergravgaard
|
dbb6ce5933
|
Added support for #pragma code_seg() and #pragma data_seg(). #113
|
2019-08-09 22:38:33 +02:00 |
|
Jesper Gravgaard
|
6b0ef4408c
|
Added test data.
|
2019-08-09 17:50:02 +02:00 |
|
Jesper Gravgaard
|
558f166dd4
|
Implemented #pragma link() and -T for specifying custom linking script. #113
|
2019-08-09 17:07:11 +02:00 |
|
Jesper Gravgaard
|
313d45fd03
|
Improved target platform handling.
|
2019-08-09 16:11:28 +02:00 |
|
jespergravgaard
|
8f0b9c886f
|
Implemented initial KickAsm segment support. #113
|
2019-08-09 11:31:08 +02:00 |
|
jespergravgaard
|
9a54c0f814
|
Attempt at making a release root dir. #235
|
2019-08-09 00:03:59 +02:00 |
|
jespergravgaard
|
d3081d3fe1
|
Renamed AsmSegment to AsmChunk in preparation for introduction of KickAsm segments. #113
|
2019-08-08 23:46:43 +02:00 |
|
jespergravgaard
|
fe93a48360
|
Renamed AsmSegment to AsmChunk in preparation for introduction of KickAsm segments. #113
|
2019-08-08 23:37:43 +02:00 |
|
jespergravgaard
|
31a3bd9078
|
Added #pragma keyword. Closes #250
|
2019-08-08 21:49:18 +02:00 |
|
Jesper Gravgaard
|
ab28c25528
|
Added #pragma syntax
|
2019-08-08 13:16:17 +02:00 |
|
Jesper Gravgaard
|
c7386277e2
|
Separated local and global directives in syntax.
|
2019-08-08 13:10:23 +02:00 |
|
jespergravgaard
|
db3e77d8fd
|
Added NMI sample example.
|
2019-08-07 21:35:40 +02:00 |
|
jespergravgaard
|
7a49ded40c
|
Now all instructions addressing zero-page have an explicit .z added to the ASM to ensure the ASM generated does zeropage-addressing. Closes #249
|
2019-08-07 21:00:21 +02:00 |
|
jespergravgaard
|
c78bebf2a8
|
Updated stdlib & tests with 0-terminated strings.
|
2019-08-07 19:48:56 +02:00 |
|
jespergravgaard
|
6c59110896
|
Fixed encoded string zero termination. Closes #192
|
2019-08-07 19:36:19 +02:00 |
|
Jesper Gravgaard
|
62b03bcefb
|
Fixed encoding for literal chars through work-around. Closes #245
|
2019-08-07 14:58:57 +02:00 |
|
Jesper Gravgaard
|
7ba7af9d55
|
fixed boolean off-by-one.
|
2019-08-07 13:51:39 +02:00 |
|
Jesper Gravgaard
|
ce5e3cf19a
|
Added constant loop head optimization, that detects when the condition is constant in the first loop iteration. Closes #246
|
2019-08-07 13:22:05 +02:00 |
|
jespergravgaard
|
b2804ef335
|
Added a smaller sieve.
|
2019-08-07 11:35:15 +02:00 |
|
jespergravgaard
|
dacd25ac5f
|
Added constant loop-head detection to a switchable optimization option -Oloophead. #246
Implemented for()-loop condition checking before body. Closes #183
|
2019-08-07 11:27:56 +02:00 |
|
jespergravgaard
|
c88932d423
|
Added constant loop-head detection to a switchable optimization option -Oloophead. #246
Implemented for()-loop condition checking before body. Closes #183
|
2019-08-07 11:09:29 +02:00 |
|
jespergravgaard
|
be4983cb13
|
Implemented for()-loop condition checking before body. #183
Moved constant loop-head detection to switchable optimization option.
|
2019-08-07 10:56:41 +02:00 |
|
jespergravgaard
|
0a58b03094
|
Constant loop head identification working. #246 is essentially complete. A few program grow to much from the optimization - this needs attention at some point.
|
2019-08-07 01:32:46 +02:00 |
|
Janne Johansson
|
1df35712fc
|
cant get tests to pass with this fragment in
|
2019-08-06 21:57:16 +02:00 |
|
Janne Johansson
|
af194de38e
|
Missing EOL
|
2019-08-06 20:47:12 +02:00 |
|
Janne Johansson
|
e34ace5f48
|
accidental compare got left by mistake
|
2019-08-06 20:46:28 +02:00 |
|
Janne Johansson
|
6de8113e7d
|
make bcs the alternative to bcc instead of jmp
|
2019-08-06 20:26:06 +02:00 |
|
Janne Johansson
|
6502c0dbc3
|
a few more fragments
|
2019-08-06 13:44:06 +02:00 |
|
jespergravgaard
|
50b59555fc
|
Added bool-ifs-min test demonstrating problem with constant loop head optimization
|
2019-08-06 09:08:10 +02:00 |
|
jespergravgaard
|
e167f8dce8
|
Fixed almost all problems in constant loop head identification. A few program becomes infinite loops - needs fixing! A few also become way to long when rewritten - probably detect & rollback.
|
2019-08-06 01:10:57 +02:00 |
|
Jesper Gravgaard
|
c63b031dbe
|
Implemented new Unroller that can copy a set of blocks in the control flow graph and handles block transitions according to a specified strategy. Moved loop-unroll implementation to the new Unroller.
|
2019-08-05 17:32:37 +02:00 |
|
jespergravgaard
|
af5bb803c1
|
Working on optimizing constant loop heads (Pass2LoopHeadConstantIdentification). #246
|
2019-08-04 08:49:34 +02:00 |
|
jespergravgaard
|
3d0f0b648d
|
Working on optimizing constant loop heads (Pass2LoopHeadConstantIdentification). #246
|
2019-08-04 01:50:00 +02:00 |
|
jespergravgaard
|
4807bbded7
|
Code generation now handles encoding in literal chars. Done 2/3 of #245
|
2019-08-04 00:13:33 +02:00 |
|
jespergravgaard
|
9e56b49a7e
|
Added encoding information to literal chars. Working on 2/3 of #245
|
2019-08-03 14:08:48 +02:00 |
|
jespergravgaard
|
7f3cfd50af
|
Working on fixing problem with encoding of literal chars. 1/3 done. #245
|
2019-08-03 13:32:34 +02:00 |
|
jespergravgaard
|
198280e1c8
|
Snapshotting program dynamic state now working through Serialization. Working on #246
|
2019-08-03 13:22:27 +02:00 |
|
jespergravgaard
|
aceea6d8ec
|
Refactored more program data to be calculated on demand.
|
2019-08-02 01:25:32 +02:00 |
|
jespergravgaard
|
0a39633ed8
|
Refactored phi transitions and symbol infos to be calculated on demand.
|
2019-08-02 00:43:47 +02:00 |
|
jespergravgaard
|
1e03067814
|
Refactored control flow graph dominators to be calculated on demand.
|
2019-08-02 00:32:53 +02:00 |
|
jespergravgaard
|
693a0bdbed
|
Refactored variable reference infos to be calculated on demand.
|
2019-08-02 00:11:54 +02:00 |
|
jespergravgaard
|
1f39ab8c37
|
Refactored call-graph to be calculated on demand.
|
2019-08-01 23:52:05 +02:00 |
|
jespergravgaard
|
bc1dd78bd8
|
Implemented program snapshot and better PASS separation. Preparing for optimizations that require experimentation (snapshot/restore state).
|
2019-08-01 23:00:58 +02:00 |
|
jespergravgaard
|
764e0c1069
|
Added some basic loop tests.
|
2019-08-01 21:15:33 +02:00 |
|
jespergravgaard
|
a006e67f82
|
Upgraded to KickAss 5.8. Closes #243
|
2019-08-01 12:58:40 +02:00 |
|
jespergravgaard
|
129cad782b
|
Fixed test
|
2019-08-01 11:03:19 +02:00 |
|
jespergravgaard
|
bb27de00ce
|
added comment
|
2019-07-31 16:08:16 +02:00 |
|