Irmen de Jong
|
a2588a178c
|
added some simple unit tests to the ast parser
|
2021-06-13 14:59:57 +02:00 |
|
Irmen de Jong
|
f2844bdf1a
|
fix crash when using labels in pointerexpression lab+index
|
2021-06-10 00:44:12 +02:00 |
|
Irmen de Jong
|
19e99204b9
|
fix asm symbol name scoping bug and add unit tests for this
|
2021-06-04 22:42:28 +02:00 |
|
Irmen de Jong
|
9fbe1b38a5
|
fix old block syntax in ast print routine
|
2021-06-01 22:08:23 +02:00 |
|
Irmen de Jong
|
d4b69ac79c
|
improved repeat counter vars allocation (re-use var if possible)
|
2021-05-30 15:30:34 +02:00 |
|
Irmen de Jong
|
e61a2d7083
|
slightly optimized repeat loop asmgen
|
2021-05-30 13:10:05 +02:00 |
|
Irmen de Jong
|
572bb38ddb
|
update to kotlin 1.5.10
|
2021-05-29 15:25:17 +02:00 |
|
Irmen de Jong
|
0e614ad6fc
|
added @shared flag to vardecl to mark variable as shared with assembly code elsewhere, to not have it optimized away
|
2021-05-19 01:19:25 +02:00 |
|
Irmen de Jong
|
ba96a637be
|
remove strdedup compiler argument again
(string deduplication is the default again but only for known-const strings, i.e. string literals)
|
2021-05-18 23:52:43 +02:00 |
|
Irmen de Jong
|
c2cac772e3
|
validate string interning
|
2021-05-18 23:37:52 +02:00 |
|
Irmen de Jong
|
ca61248861
|
printing 2-letter strings is now only optimized into direct CHROUT if it's a const string literal
|
2021-05-16 15:00:40 +02:00 |
|
Irmen de Jong
|
ae5d7705bb
|
allow correct parsing of source files that don't end in a EOL character. Fixes #40
|
2021-05-14 17:14:44 +02:00 |
|
Irmen de Jong
|
83639c2535
|
code style
|
2021-05-13 01:00:19 +02:00 |
|
Irmen de Jong
|
25d80f4df1
|
added compiler option to choose string literal deduplication yes/no -- default changed to NO
|
2021-05-13 00:35:22 +02:00 |
|
Irmen de Jong
|
a20efa56eb
|
print unmappable character in escaped form in errormessage
|
2021-05-11 18:09:09 +02:00 |
|
Irmen de Jong
|
8736da1a21
|
strings of 1 and 2 length no longer optimized into one call to CHROUT - also upgrade to kotlin 1.5.0
|
2021-05-06 23:46:18 +02:00 |
|
Irmen de Jong
|
7bac7bdc3e
|
more precise
|
2021-05-01 13:39:02 +02:00 |
|
Irmen de Jong
|
d5214e2505
|
fix import paths
|
2021-04-30 00:16:36 +02:00 |
|
Irmen de Jong
|
d906fcea0e
|
refactor some type checks
|
2021-04-30 00:09:15 +02:00 |
|
Irmen de Jong
|
8d3d5f726a
|
removed Datatype.STRUCT
|
2021-04-29 00:13:17 +02:00 |
|
Irmen de Jong
|
a9a7068818
|
removed support for structs. It was too much hassle and complexity and subtle bugs.
|
2021-04-29 00:01:20 +02:00 |
|
Irmen de Jong
|
17068130bb
|
removed PROG8_LIBDIR env variables and replaced with -libdirs command line option
|
2021-04-28 20:04:23 +02:00 |
|
Irmen de Jong
|
a086d6e009
|
allow labels also in blocks instead of only in subroutines
|
2021-04-18 23:03:18 +02:00 |
|
Irmen de Jong
|
54d92a027a
|
fix problems with moving vardecls from inner scope to subroutine scope
|
2021-04-12 22:53:25 +02:00 |
|
Irmen de Jong
|
319ac3a641
|
preparing optimizations for if statements
|
2021-04-12 03:34:58 +02:00 |
|
Irmen de Jong
|
0a03c46351
|
preparing optimization plan for if statements
|
2021-04-12 02:37:15 +02:00 |
|
Irmen de Jong
|
b1ef09675b
|
fix compiler crash for some struct/array initialization assignment literals containing not just numbers
|
2021-04-10 00:28:32 +02:00 |
|
Irmen de Jong
|
1a64cb38d5
|
fix compiler crash with assigning certain array values as vardecl initializer
|
2021-04-08 19:21:17 +02:00 |
|
Irmen de Jong
|
e5ff61f201
|
allow inlining of subroutines with parameters, and fix inlining of subroutines with variables
|
2021-04-07 23:38:25 +02:00 |
|
Irmen de Jong
|
3e3b0bcd8b
|
callgraph improved unused node checking
|
2021-04-05 20:45:18 +02:00 |
|
Irmen de Jong
|
4c1eb1b12a
|
callgraph
|
2021-04-05 20:32:30 +02:00 |
|
Irmen de Jong
|
530d03d284
|
callgraph
|
2021-04-05 18:50:46 +02:00 |
|
Irmen de Jong
|
619fa9b65e
|
callgraph
|
2021-04-05 18:03:36 +02:00 |
|
Irmen de Jong
|
0032235933
|
tweak to fix for windows line ending (\r\n) parse errors
|
2021-04-05 01:49:52 +02:00 |
|
Irmen de Jong
|
b4700af2f5
|
fix windows line ending (\r\n) parse errors
|
2021-04-05 00:12:04 +02:00 |
|
Irmen de Jong
|
374e2b311d
|
refactoring unused code removal and noModification
|
2021-04-04 16:36:33 +02:00 |
|
Irmen de Jong
|
38ccbac97c
|
stop after a couple of parse errors (it's not useful to continue for long if there are parse errors)
|
2021-04-04 12:29:56 +02:00 |
|
Irmen de Jong
|
d582d1cc42
|
fix inlining subroutines multiple times
|
2021-04-02 21:23:40 +02:00 |
|
Irmen de Jong
|
6fdc733941
|
inlining subroutines that contain variable declarations is now possible (gives a warning though)
|
2021-04-02 18:30:32 +02:00 |
|
Irmen de Jong
|
422b390c48
|
fix ast node duplication/reference bug in certain optimizers
|
2021-04-02 16:56:52 +02:00 |
|
Irmen de Jong
|
02e12d8575
|
improvements for inlined subroutines: fix identifier scoping
|
2021-04-01 23:16:04 +02:00 |
|
Irmen de Jong
|
bf2d8c3f4b
|
update kotlin plugin to 1.4.32
|
2021-03-31 20:52:05 +02:00 |
|
Irmen de Jong
|
d840975054
|
remove unreached error checks
|
2021-03-25 21:47:05 +01:00 |
|
Irmen de Jong
|
af4de6d2fc
|
replacing complex array indexer expressions moved to BeforeAsmGeneration + use cx16 virtualregister instead of adding temp variables for this
|
2021-03-23 23:44:14 +01:00 |
|
Irmen de Jong
|
bd295ffc99
|
array indexer complexity is now dealt with in the asm-generator only
|
2021-03-22 19:40:57 +01:00 |
|
Irmen de Jong
|
cbc3e37a89
|
stuff
|
2021-03-22 02:29:59 +01:00 |
|
Irmen de Jong
|
3626828ceb
|
decided
|
2021-03-22 01:45:19 +01:00 |
|
Irmen de Jong
|
2950d26c8e
|
array and struct value assignments now via memcopy instead of assignment per element
|
2021-03-06 22:10:03 +01:00 |
|
Irmen de Jong
|
7e3e18a5c7
|
deal with 'bra' better on 65c02
|
2021-02-28 16:20:03 +01:00 |
|
Irmen de Jong
|
8b1e1e68fa
|
switch to Kotlin's new JVM IR compilation
|
2021-02-26 01:10:00 +01:00 |
|