Commit Graph

1239 Commits

Author SHA1 Message Date
Irmen de Jong
b985604e22 slight tweak to word bitshift for large shift values 2020-12-01 22:48:02 +01:00
Irmen de Jong
f7953e4ef3 fix float comparison error that creeped in with no longer using the stack for that 2020-12-01 22:19:03 +01:00
Irmen de Jong
63483d1f0e warnings, errors and todos 2020-12-01 03:24:06 +01:00
Irmen de Jong
8b981f03bf optimized reg_lesseq_w (word <= word) to avoid using extra zp word, by swapping operands 2020-12-01 02:09:48 +01:00
Irmen de Jong
d0d0910bf2 corrected greatereq_w (word >= word) 2020-12-01 01:57:12 +01:00
Irmen de Jong
b8bda867b6 optimized reg_lesseq_w (word <= word) 2020-11-30 02:26:00 +01:00
Irmen de Jong
05d3a2450c optimized reg_less_w (word < word) 2020-11-30 01:53:44 +01:00
Irmen de Jong
d40788adfa optimized in-place array element modification to use simpler assignment asm code 2020-11-28 00:44:38 +01:00
Irmen de Jong
83fbf86b1c no longer generate double assignment to the indexer var for in-place modifying array variable 2020-11-27 23:46:01 +01:00
Irmen de Jong
e876008427 tiny tweak of typecasting str to uword 2020-11-26 19:21:07 +01:00
Irmen de Jong
a74403c347 float typecasts optimization 2020-11-26 01:52:48 +01:00
Irmen de Jong
2f4c6c8697 float typecasts optimization 2020-11-26 01:39:27 +01:00
Irmen de Jong
238d8197f5 byte/word typecasts optimized even further to just use cpu registers (and fixed sign extending AY) 2020-11-26 01:33:45 +01:00
Irmen de Jong
53a600d87b fix typecasting of signed byte to signed word in a variable 2020-11-25 22:33:41 +01:00
Irmen de Jong
2a0ffaf45d started to optimize typecasts to use translateExpression() less 2020-11-25 00:17:42 +01:00
Irmen de Jong
936b046ed9 optimize word [operator] byte, without translateExpression() 2020-11-24 23:41:10 +01:00
Irmen de Jong
378dcfe351 fix computation error of word - byte 2020-11-24 22:23:16 +01:00
Irmen de Jong
0a330b9288 warmings 2020-11-24 22:21:54 +01:00
Irmen de Jong
a88b40d6c1 fix stack corruption with bitshifts 2020-11-24 21:58:14 +01:00
Irmen de Jong
09f25ffbd9 optimized in-place memory var modification, not using translateExpression() 2020-11-24 21:41:44 +01:00
Irmen de Jong
ab1232d742 optimized in-place float var modification, not using translateExpression() 2020-11-24 01:09:24 +01:00
Irmen de Jong
a7f56fe0fc remaining float comparisons with expression now without translateExpression() 2020-11-24 00:35:30 +01:00
Irmen de Jong
58a9452c36 fixed the YSCROLL graphics mode on the C64 (mistake in 5.1) 2020-11-23 23:05:51 +01:00
Irmen de Jong
6d8c4f403f updated Kotlin version to 1.4.20, updated targeted JDK version to 11 (LTS) 2020-11-23 22:28:24 +01:00
Irmen de Jong
88b80fed90 returning float values now via fac1 instead of stack 2020-11-23 22:14:45 +01:00
Irmen de Jong
acdbd0c391 todos for next version 2020-11-22 19:18:57 +01:00
Irmen de Jong
122796fbba version 5.1 2020-11-22 18:36:04 +01:00
Irmen de Jong
510ca042c9 stack tested for most example programs 2020-11-22 18:35:43 +01:00
Irmen de Jong
125f6205f2 optimizing assigning an array value to a var 2020-11-22 17:44:55 +01:00
Irmen de Jong
8136f3df5c float-const comparison optimizations 2020-11-22 16:54:02 +01:00
Irmen de Jong
38d06a7e94 optimized float var comparison without translateExpression() 2020-11-22 15:05:45 +01:00
Irmen de Jong
49db10539a optimized float var equality comparison without translateExpression() 2020-11-22 14:33:03 +01:00
Irmen de Jong
8efe4c6267 Fixed compiler watch to work with multiple compilation modules 2020-11-22 13:11:33 +01:00
Irmen de Jong
04d8bb8fbf Fixed compiler watch flag crashing when not used on a subdirectory. Fixes #20 2020-11-22 12:07:14 +01:00
Irmen de Jong
08aa13c90c rnd() functions marked as having (internal) side effect 2020-11-22 02:09:32 +01:00
Irmen de Jong
d1febc0208 all in-place byte assignments now without translateExpression() 2020-11-22 01:38:53 +01:00
Irmen de Jong
5980e58ac6 word comparison jumps now without translateExpression() 2020-11-22 01:15:05 +01:00
Irmen de Jong
e1dc283d4b byte comparison jumps now without translateExpression() 2020-11-21 23:31:26 +01:00
Irmen de Jong
8be234973c rollback failed optimization of memory expressions (code size got too large) 2020-11-21 19:09:02 +01:00
Irmen de Jong
7def8ff2cd beginning to optimize comparisons more 2020-11-21 18:44:17 +01:00
Irmen de Jong
7e0f7ba438 todos 2020-11-20 23:46:14 +01:00
Irmen de Jong
fefd9b52a8 fix for loop with signed byte loopvar over non-const 2020-11-20 22:54:24 +01:00
Irmen de Jong
afd155ac4f optimize for loops over non const range, without translateExpression() 2020-11-20 22:44:16 +01:00
Irmen de Jong
ee724eb4f1 float variable casts without translateExpression() 2020-11-19 22:58:38 +01:00
Irmen de Jong
2f1f20ea11 rename 2020-11-19 00:28:49 +01:00
Irmen de Jong
063bcf17d8 various inplace modification for word vars now without translateExpression() 2020-11-19 00:08:10 +01:00
Irmen de Jong
72509eef44 inplace modification for memory now without translateExpression() 2020-11-18 23:23:06 +01:00
Irmen de Jong
2da28864e9 inplace not and invert for memory now without translateExpression() 2020-11-18 23:13:07 +01:00
Irmen de Jong
4278f64682 fixed invalid value push for memreads with expression 2020-11-18 22:45:04 +01:00
Irmen de Jong
59ae3c3fcd << and >> for byte values slightly optimized, no longer use translateExpression(). preparing for more operator optimizations. 2020-11-18 01:27:02 +01:00
Irmen de Jong
7fa21fbdff @(...) in an expression is now more efficient, without translateExpression() 2020-11-18 00:58:04 +01:00
Irmen de Jong
e95af7498e comparing function call result to 0 now more efficient, without translateExpression() 2020-11-18 00:05:48 +01:00
Irmen de Jong
79c75adac1 repeat and when without translateExpression() 2020-11-17 23:52:13 +01:00
Irmen de Jong
d212f69d89 ++/-- and @Pc without translateExpression() 2020-11-17 23:40:42 +01:00
Irmen de Jong
edf5e69d39 optimized swap() 2020-11-15 18:04:54 +01:00
Irmen de Jong
574eb0d174 refactoring asmassignment code blocks into utility functions 2020-11-15 17:44:47 +01:00
Irmen de Jong
8bd4914e2f fix stack error for float casts 2020-11-15 17:34:27 +01:00
Irmen de Jong
5ebaaff64b refactoring asmassignment code blocks into utility functions 2020-11-15 15:07:55 +01:00
Irmen de Jong
5c9e0c9f51 emit extra nop for breakpoints so vice label list works again (requires 64tass 1.55.2257 or newer!) 2020-11-15 14:31:06 +01:00
Irmen de Jong
d29ce78c86 todos and version 2020-11-10 22:44:48 +01:00
Irmen de Jong
94bc9d7a69 string compare in expression no longer via stack args 2020-11-10 21:48:28 +01:00
Irmen de Jong
e8faec0932 re-introduced more aggressive binexpr splitting optimization 2020-11-10 21:17:33 +01:00
Irmen de Jong
4825b4dc68 fix passing address of pass-by-reference assignment to a UWORD 2020-11-10 00:35:24 +01:00
Irmen de Jong
8d0607ef58 fix missing float casts 2020-11-09 23:57:50 +01:00
Irmen de Jong
225295a7d8 fix float casts 2020-11-09 01:18:22 +01:00
Irmen de Jong
4cd74daf53 float eval result var added, but some examples are broken 2020-11-08 18:54:02 +01:00
Irmen de Jong
d0bd2f522c rol and ror 2020-11-07 00:56:54 +01:00
Irmen de Jong
661c757236 fix string compare in expressions 2020-11-06 22:59:56 +01:00
Irmen de Jong
aaa20093ef cleaning up and correcting cc for builtin functions 2020-11-06 00:56:26 +01:00
Irmen de Jong
1eecdd6fa3 fix error when taking address of struct var 2020-11-05 02:39:04 +01:00
Irmen de Jong
800b5b2a43 cleaning up and correcting cc for builtin functions 2020-11-05 02:29:33 +01:00
Irmen de Jong
9d17421c66 implemented the arithmetic functions with new cc. fixed sgn(). 2020-11-04 02:27:29 +01:00
Irmen de Jong
0edd50e956 implemented cc for abs() 2020-11-03 23:01:23 +01:00
Irmen de Jong
288d4f08b3 implemented cc for integer sin and cos variants 2020-11-03 22:42:59 +01:00
Irmen de Jong
526e4b8bdc fix faulty binexpr splitting 2020-11-03 21:31:08 +01:00
Irmen de Jong
e0c5ccc16b begun with converting builtin functions to new call convention 2020-11-02 23:00:20 +01:00
Irmen de Jong
ebc2c614d7 use non-stack call conv for builtin functions 2020-11-02 19:59:27 +01:00
Irmen de Jong
29f5a85158 callconv 2020-11-01 19:25:23 +01:00
Irmen de Jong
8af2380a47 pair 2020-11-01 18:00:20 +01:00
Irmen de Jong
431f2a2088 optimized memset and memcopy on CX16, memcopy can deal with any size now 2020-11-01 08:00:32 +01:00
Irmen de Jong
e05ea887f6 implement proper returning of float values via FAC1 2020-11-01 06:27:17 +01:00
Irmen de Jong
95c0425151 improved sqrt16 2020-11-01 05:45:49 +01:00
Irmen de Jong
e7b75d591c assigning float results from functions (from FAC1) 2020-10-31 01:22:19 +01:00
Irmen de Jong
99f7d469f4 assigning string result from subroutine 2020-10-30 22:22:06 +01:00
Irmen de Jong
5f337a0bd9 fix typecheck of multiple returnvalues 2020-10-30 21:45:37 +01:00
Irmen de Jong
87862f772a better handling of inferred type errors 2020-10-30 21:24:49 +01:00
Irmen de Jong
3ab641aa21 removed @stack in subroutine args and returnvalues, can only use variables or registers now 2020-10-30 15:02:42 +01:00
Irmen de Jong
3efa8da8e0 made versions of various builtin funcs returning value in registers 2020-10-30 14:35:20 +01:00
Irmen de Jong
3e28ed4fe4 mader versions of abs() and sgn() returning value in register 2020-10-28 22:56:13 +01:00
Irmen de Jong
44949460ed change for subroutine return values via registers instead of stack 2020-10-28 00:29:34 +01:00
Irmen de Jong
83cc19ad6f preparing for subroutine return values via registers instead of stack 2020-10-23 20:56:10 +02:00
Irmen de Jong
66bb98c479 fixed bugs in code assigning values from eval stack 2020-10-23 03:45:09 +02:00
Irmen de Jong
ff3f985658 refactoring 2020-10-22 23:41:16 +02:00
Irmen de Jong
3eaf111e7d added 'slowwarn' cli option 2020-10-20 21:38:37 +02:00
Irmen de Jong
30da26b9a9 tackling problem of invalid reuse of auto indexer var 2020-10-20 21:23:43 +02:00
Irmen de Jong
e35ad0cc8f code cleanups 2020-10-20 17:54:16 +02:00
Irmen de Jong
1a36302cf1 rest of optimizations following simplification of array indexer 2020-10-19 23:57:00 +02:00
Irmen de Jong
82a28bb555 extra attempt to simplify add and subtract with negative numbers 2020-10-19 23:01:32 +02:00
Irmen de Jong
c1ce0be451 slightly optimize expression code for most common cases +/- 1 , */div 2 2020-10-19 22:50:38 +02:00
Irmen de Jong
c0a5f8fef0 removed double mul code 2020-10-19 21:32:44 +02:00