Irmen de Jong
|
1e053783f3
|
fix invalid size copied when assigning non-byte arrays
|
2022-01-23 02:42:36 +01:00 |
|
Irmen de Jong
|
7afc96112b
|
now correctly requires using & (address-of) when assigning the address of a label or subroutine, used to generate invalid code when it was omitted
|
2022-01-23 02:23:30 +01:00 |
|
Irmen de Jong
|
7bb41a30ed
|
fixed compiler crash when assigning number larger than 65535
|
2022-01-23 01:44:16 +01:00 |
|
Irmen de Jong
|
3d1b0eb843
|
fixed compiler crash when using cx16.r0H as function call argument
|
2022-01-23 01:28:16 +01:00 |
|
Irmen de Jong
|
5b9af0b5ae
|
tweaks
|
2022-01-21 23:38:54 +01:00 |
|
Irmen de Jong
|
9219ec539d
|
allow "goto pointervar" for indirect jumps
|
2022-01-21 22:55:59 +01:00 |
|
Irmen de Jong
|
c8bd57cd4d
|
fixed signature of mouse_get(): it returns the buttonstatus in A. Added convenience cx16.mouse_pos() routine.
|
2022-01-21 22:06:17 +01:00 |
|
Irmen de Jong
|
53bf8c09fd
|
fix screencode encoding selection
|
2022-01-19 21:37:27 +01:00 |
|
Irmen de Jong
|
651c383668
|
refactor encoder to be the same for all 3 machine targets now
|
2022-01-19 21:21:33 +01:00 |
|
Irmen de Jong
|
9ed7587e3e
|
document new string encoding syntax
|
2022-01-19 21:21:33 +01:00 |
|
Irmen de Jong
|
674295e800
|
improve error reporting from string encoders
|
2022-01-19 21:21:33 +01:00 |
|
Irmen de Jong
|
6b02f2eea0
|
implement iso encoding and new string encoding syntax, fixes #38
|
2022-01-19 21:21:32 +01:00 |
|
Irmen de Jong
|
5237e55326
|
added txt.iso() to enable iso-charset on cx16
|
2022-01-18 21:35:29 +01:00 |
|
Irmen de Jong
|
3b59592110
|
generalize string encoding flag into enum
|
2022-01-18 21:21:49 +01:00 |
|
Irmen de Jong
|
72640ae058
|
no longer add nops around breakpoint for vice
|
2022-01-17 22:12:58 +01:00 |
|
Irmen de Jong
|
d916027e75
|
labels no longer start with '_' fixes #62
|
2022-01-17 22:03:53 +01:00 |
|
Irmen de Jong
|
8966d2aa06
|
comments and prepare new version 7.7
|
2022-01-16 23:03:00 +01:00 |
|
Irmen de Jong
|
de7ea04f54
|
when zp option = dontuse, print error for any variable with @requirezp
|
2022-01-16 18:13:24 +01:00 |
|
Irmen de Jong
|
bf71fabe0e
|
fix codegen mistake for zp allocated loop vars
|
2022-01-16 18:09:09 +01:00 |
|
Irmen de Jong
|
b3368acb33
|
todos to fix broken examples
|
2022-01-16 17:57:47 +01:00 |
|
Irmen de Jong
|
87220c6697
|
docs for @requirezp
|
2022-01-16 17:20:36 +01:00 |
|
Irmen de Jong
|
a3b5c2ad71
|
fix zp address output and adjust vars datastructure
|
2022-01-16 17:20:36 +01:00 |
|
Irmen de Jong
|
fb4c1473c5
|
array and string initialization in zeropage
|
2022-01-16 17:20:36 +01:00 |
|
Irmen de Jong
|
2bb2502d20
|
added @requirezp to syntax files
|
2022-01-16 17:20:36 +01:00 |
|
Irmen de Jong
|
fe51698579
|
tweak how zp varnames are stored
|
2022-01-16 17:20:36 +01:00 |
|
Irmen de Jong
|
0f0f40bff3
|
improved ForloopAsmGen loopvar zp allocation
|
2022-01-16 17:20:36 +01:00 |
|
Irmen de Jong
|
a798fe72d3
|
cx16 reserved zp vars (virtual registers)
|
2022-01-16 17:20:36 +01:00 |
|
Irmen de Jong
|
fba98d03a5
|
improve %zpreserved error messages
|
2022-01-16 17:20:36 +01:00 |
|
Irmen de Jong
|
7dd2517f67
|
fix Zp allocation issues
|
2022-01-16 17:20:36 +01:00 |
|
Irmen de Jong
|
641477d6f6
|
add @requirezp and allow str/array to be on zp (with warning)
|
2022-01-16 17:20:32 +01:00 |
|
Irmen de Jong
|
8e56656c8d
|
fix broken code generated for certain ==/!= expressions
|
2022-01-16 17:10:49 +01:00 |
|
Irmen de Jong
|
564a6a1f62
|
fix invalid removal of Jump
that would generate wrong code if occurs at the end of a subroutine
|
2022-01-16 14:05:42 +01:00 |
|
Irmen de Jong
|
69f0c80cd7
|
added pokemon() function
|
2022-01-15 19:04:04 +01:00 |
|
Irmen de Jong
|
6fcb51cea2
|
add warning when encoded string contains 0-byte
|
2022-01-15 17:11:40 +01:00 |
|
Irmen de Jong
|
c58b8a4973
|
fix ast to source: @shared wasn't printed
fix grammar: @shared and @zp can occur in any order now in vardecl
|
2022-01-13 02:29:55 +01:00 |
|
Irmen de Jong
|
c8f4ab4f06
|
doc
|
2022-01-12 22:21:01 +01:00 |
|
Irmen de Jong
|
e425c4cca8
|
optimizing pipe codegen
|
2022-01-11 23:17:35 +01:00 |
|
Irmen de Jong
|
056ec986c2
|
use var initializer assignments in a clearer way
|
2022-01-11 00:34:44 +01:00 |
|
Irmen de Jong
|
de3b2fb95b
|
slightly optimized certain list iterations into sequences
|
2022-01-10 23:15:24 +01:00 |
|
Irmen de Jong
|
789e39c719
|
slightly optimized assembly file handling
|
2022-01-10 22:48:20 +01:00 |
|
Irmen de Jong
|
b29c3152db
|
Assignment: make its origin explicit
|
2022-01-10 02:25:02 +01:00 |
|
Irmen de Jong
|
3831679772
|
VarDecl: make its origin explicit
|
2022-01-10 01:53:03 +01:00 |
|
Irmen de Jong
|
596f9566d8
|
todo
|
2022-01-10 01:00:50 +01:00 |
|
Irmen de Jong
|
124befe9d6
|
slightly optimized code for assigning boolean expressions such as `b = xx>99`
|
2022-01-09 18:49:44 +01:00 |
|
Irmen de Jong
|
895534f32b
|
don't remove dead variable assignments if they are a function call
|
2022-01-09 18:41:01 +01:00 |
|
Irmen de Jong
|
50c16fe6de
|
code size optimization: don't copy floats with inlined copy code but use copy_float routine
|
2022-01-09 16:18:13 +01:00 |
|
Irmen de Jong
|
b092d1a5d3
|
fixed code gen issue for uword >= comparison
|
2022-01-09 13:23:29 +01:00 |
|
Irmen de Jong
|
a9b45630d7
|
optimized code for variable comparisons to zero
|
2022-01-09 13:10:01 +01:00 |
|
Irmen de Jong
|
c1a39c269e
|
optimized code for stack eval comparisons with zero
|
2022-01-09 03:19:49 +01:00 |
|
Irmen de Jong
|
6fa3f0b6cd
|
small refactor
|
2022-01-08 18:02:38 +01:00 |
|
Irmen de Jong
|
9e5e3d1559
|
pipe expression not evaluated via stack
|
2022-01-08 17:51:23 +01:00 |
|
Irmen de Jong
|
7135205299
|
fix codegen bug for pipe expressions to actually return correct value and not corrupt X register
|
2022-01-08 17:41:46 +01:00 |
|
Irmen de Jong
|
d99d977d2b
|
fix more typecasting issues
|
2022-01-08 17:04:25 +01:00 |
|
Irmen de Jong
|
7dd7e562bc
|
pipes also as expressions, cleanup codegen, fix various typecasting issues
|
2022-01-08 13:45:19 +01:00 |
|
Irmen de Jong
|
75d857027e
|
cleanup of Pipe codegen
|
2022-01-08 01:33:40 +01:00 |
|
Irmen de Jong
|
17694c1d01
|
better error handling of invalid number casts
|
2022-01-07 22:12:13 +01:00 |
|
Irmen de Jong
|
749ad700d8
|
naming consistency for some expression classes
|
2022-01-07 21:02:55 +01:00 |
|
Irmen de Jong
|
8f3df3039a
|
added pipe operator `|>`
|
2022-01-06 22:54:18 +01:00 |
|
Irmen de Jong
|
02c315c194
|
add missing unit tests and type checking for 'in' expression
|
2022-01-06 00:01:49 +01:00 |
|
Irmen de Jong
|
b697375573
|
add note about unspecified order of evaluation of expressions and subroutine call arguments
|
2022-01-05 23:21:45 +01:00 |
|
Irmen de Jong
|
c57ef7725e
|
preparing v7.6
|
2022-01-04 20:40:35 +01:00 |
|
Irmen de Jong
|
3ae07503f2
|
doc css styling: font size slightly bigger for code as well
|
2022-01-03 23:28:11 +01:00 |
|
Irmen de Jong
|
9a0341adde
|
doc css styling: font size slightly bigger
|
2022-01-03 23:16:07 +01:00 |
|
Irmen de Jong
|
96225efd96
|
library doc tweaks
|
2022-01-03 23:15:34 +01:00 |
|
Irmen de Jong
|
c3bd904f41
|
todo
|
2022-01-02 23:46:36 +01:00 |
|
Irmen de Jong
|
74257163b1
|
fix that memory("name", ...) also allocates a STR variable for the name
|
2022-01-02 17:07:04 +01:00 |
|
Irmen de Jong
|
7bc75fd220
|
fix that memory("a b c", ...) produces invalid symbol
|
2022-01-02 16:11:53 +01:00 |
|
Irmen de Jong
|
a23281afab
|
added experimental -noreinit option
|
2022-01-01 16:35:36 +01:00 |
|
Irmen de Jong
|
9e90dbdde6
|
slight optimization of repeat loop (> 256 iters) code generation on 65c02 cpu
|
2022-01-01 14:42:37 +01:00 |
|
Irmen de Jong
|
1e8d8e40a2
|
slight optimization of repeat loop (0-256 iters) code generation on 65c02 cpu
|
2021-12-31 14:06:35 +01:00 |
|
Irmen de Jong
|
583e208c1e
|
remark
|
2021-12-31 11:34:53 +01:00 |
|
Irmen de Jong
|
9b91c427a1
|
add porting guide
sizeof(pointer) is hardcoded as 2 now
|
2021-12-31 00:16:23 +01:00 |
|
Irmen de Jong
|
196c5e9c24
|
v39->r39
|
2021-12-30 19:05:56 +01:00 |
|
Irmen de Jong
|
d8f7feb672
|
cleanup code style
|
2021-12-30 18:47:38 +01:00 |
|
Irmen de Jong
|
7c889f17b9
|
c128 fixes
|
2021-12-30 18:33:26 +01:00 |
|
Irmen de Jong
|
c15a75556d
|
Merge branch 'master' into c128target
# Conflicts:
# compiler/src/prog8/CompilerMain.kt
# examples/test.p8
|
2021-12-30 18:22:05 +01:00 |
|
Irmen de Jong
|
5275c2e35f
|
todo porting guide
|
2021-12-30 18:20:09 +01:00 |
|
Irmen de Jong
|
5267e06969
|
added -asmlist cli option to produce assembler listing output
|
2021-12-30 14:42:09 +01:00 |
|
Irmen de Jong
|
b62183adcb
|
slightly optimized binexpr evaluation for ==/!= in some cases
|
2021-12-30 02:00:36 +01:00 |
|
Irmen de Jong
|
5d2dec1803
|
added missing codegen for augmented ==/!=
|
2021-12-30 01:34:10 +01:00 |
|
Irmen de Jong
|
4a98dab948
|
fix compiler warnings
|
2021-12-30 00:58:33 +01:00 |
|
Irmen de Jong
|
9f8c70b326
|
fix warning about testing multiple values
|
2021-12-30 00:49:36 +01:00 |
|
Irmen de Jong
|
a65404e63a
|
doc
|
2021-12-29 18:24:05 +01:00 |
|
Irmen de Jong
|
05a1ddad05
|
Merge branch 'master' into c128target
# Conflicts:
# examples/test.p8
|
2021-12-29 18:14:24 +01:00 |
|
Irmen de Jong
|
4be3d63c0e
|
slight optimization of if-in
|
2021-12-29 18:13:43 +01:00 |
|
Irmen de Jong
|
de6ce4a46e
|
add "X in [1,2,3]" expression (efficient containment check)
|
2021-12-29 17:26:00 +01:00 |
|
Irmen de Jong
|
7a9e5afb93
|
fix: for loop over array literal no longer crashes the compiler
|
2021-12-28 17:51:38 +01:00 |
|
Irmen de Jong
|
b2876b0a03
|
add a suggestion to use when statement if it seems appropriate
|
2021-12-28 16:38:12 +01:00 |
|
Irmen de Jong
|
b66f66fe6a
|
fix renames
|
2021-12-28 14:32:27 +01:00 |
|
Irmen de Jong
|
30f04962d4
|
Merge branch 'master' into c128target
# Conflicts:
# codeGeneration/src/prog8/codegen/target/C128Target.kt
# codeGeneration/src/prog8/codegen/target/c128/C128MachineDefinition.kt
# codeGeneration/src/prog8/codegen/target/c128/C128Zeropage.kt
# compiler/src/prog8/CompilerMain.kt
# compiler/src/prog8/compiler/Compiler.kt
|
2021-12-28 14:30:11 +01:00 |
|
Irmen de Jong
|
0feeb88024
|
codegen package rename 2
|
2021-12-28 14:23:36 +01:00 |
|
Irmen de Jong
|
b799f2e05b
|
codegen package rename
|
2021-12-28 14:18:04 +01:00 |
|
Irmen de Jong
|
56d21de001
|
Merge branch 'master' into c128target
# Conflicts:
# examples/test.p8
|
2021-12-28 13:57:27 +01:00 |
|
Irmen de Jong
|
7b54aa0c7d
|
more consistent naming of the statement classes
|
2021-12-28 13:56:47 +01:00 |
|
Irmen de Jong
|
6e11b8ada1
|
GoSub no longer inherits from Jump node, fixes subtle ast/codegen bugs related to jsrs
|
2021-12-28 01:55:13 +01:00 |
|
Irmen de Jong
|
98d25fc4e9
|
fix some unneeded open classes
|
2021-12-28 01:29:08 +01:00 |
|
Irmen de Jong
|
79405f47f6
|
fix if-gosub
|
2021-12-28 01:24:31 +01:00 |
|
Irmen de Jong
|
1c7c4fc3b0
|
optimized if-goto codegeneration
|
2021-12-28 00:42:00 +01:00 |
|
Irmen de Jong
|
97e84d0977
|
tweak if statement handling
|
2021-12-27 15:04:25 +01:00 |
|
Irmen de Jong
|
9906b58818
|
tweak while desugaring, moved postfixexpr optimizations to VariousCleanups regardless of optimizer setting because asmgen requires these for conditional expressions
|
2021-12-27 12:41:26 +01:00 |
|