1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-10-22 09:25:49 +00:00
Commit Graph

1477 Commits

Author SHA1 Message Date
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
jespergravgaard
832a104c0a Added some reserved addresses for the BASIC sinus generation. 2019-07-31 16:04:21 +02:00
jespergravgaard
f8dfe3743b Implemented light-weight zeropage coalesce. Closes #237 2019-07-31 13:47:22 +02:00
jespergravgaard
869a2dcade Working on extracting zp coalesce logic. 2019-07-31 11:08:33 +02:00
jespergravgaard
2135bb1170 merged masters 2019-07-30 22:29:33 +02:00
jespergravgaard
78f89c927b Added joystick test 2019-07-30 22:28:19 +02:00
Jesper Gravgaard
73fb40a3e3 merged and fixed conflict 2019-07-30 15:01:43 +02:00
Jesper Gravgaard
5ad3bec534 Added two tests. 2019-07-30 14:54:22 +02:00
jespergravgaard
b27c69635b Working on light-weight coalesce #237 2019-07-29 23:50:42 +02:00
jespergravgaard
dc853bcffa Converted letter C to array of struct literal. 2019-07-28 23:11:41 +02:00
jespergravgaard
a50e9e212a Added support for literal arrays of structs by making the literal-identification and literal-handling and code-generation recursive over the value lists. Closes #223 2019-07-28 23:05:30 +02:00
jespergravgaard
44df048e64 Added support for address-of array-element &sieve[j]. Closes #228 2019-07-26 16:12:12 +02:00
jespergravgaard
07b08e3ed7 Renamed struct tests away from "problem-" name. Postponed struct member unwinding for non-variable members. 2019-07-26 14:54:10 +02:00
jespergravgaard
f336907efd Added test refs. 2019-07-26 14:31:37 +02:00
jespergravgaard
a30939e72c Finished fixes for uniwnding struct pointers/arrays. 2019-07-26 14:31:00 +02:00
jespergravgaard
66f6195739 Fixed problem with passing struct inside array as parameter. Closes #224 2019-07-26 13:22:18 +02:00
jespergravgaard
a1ef8ad163 Fixed problem with passing dereferenced struct pointers as parameters. Closes #225 2019-07-26 13:15:54 +02:00
jespergravgaard
0c33353bf8 Fixed problems with sizeof()-handling struct members. Closes #230 2019-07-25 23:06:09 +02:00
jespergravgaard
a9e0c7805f Added error when exhausting zeropage space for variables. Closes #233 2019-07-25 17:26:43 +02:00
jespergravgaard
e8a0694f34 Added support for different target platforms. Added first platforms c64basic and asm6502 (no upstart). Closes #232 2019-07-25 17:06:19 +02:00
jespergravgaard
424f5ce006 Added an extra test. 2019-07-25 14:55:10 +02:00
jespergravgaard
02ff354d3f Dropped SelfPhiEliminate pass - so now phi-variables have value for all predecessor-blocks. Added self-phi-handling to Identical-PHI optimization step instead. Closes #231 2019-07-25 14:35:43 +02:00
jespergravgaard
ca8d68891c Added some word fragments 2019-07-21 21:08:49 +02:00
jespergravgaard
e968cb6de7 Added execute-bit to deploy script. Coded a bit on a sprite font. 2019-07-21 19:02:13 +02:00
Jesper Gravgaard
9231fe18d6 Added splie test creating a (slowly) rotating truetype c. 2019-07-19 02:23:44 +02:00
Jesper Gravgaard
b70b969fe6 Improved C stdlib a little 2019-07-18 13:04:55 +02:00
Jesper Gravgaard
5a0b1a5d57 Added prime sieve test program 2019-07-18 09:47:41 +02:00
Jesper Gravgaard
660d2a8979 Changed print_cls() to use memset(). Fixed error in fragment. 2019-07-18 01:54:16 +02:00
Jesper Gravgaard
25f16b6b87 Added utoa() and ultoa() to print() 2019-07-18 00:45:46 +02:00
Jesper Gravgaard
9e66c01b6c Changed RADIX enum values. 2019-07-17 23:46:07 +02:00
Jesper Gravgaard
31ede3c794 Added utoa() implementation handling binary/octal/decimal & hexadecimal. 2019-07-17 23:38:09 +02:00
Jesper Gravgaard
aefa5c9f49 Added test example of sub-optimal ASM generated for sub-structs member access of a struct through a pointer. #226 2019-07-16 23:14:14 +02:00
Jesper Gravgaard
889cc1219f Added test demonstrating problem with passing derefed struct pointer to call. #225 2019-07-16 22:45:13 +02:00
Jesper Gravgaard
cb5dc6550e Added test demonstrating problem with passing struct in array as parameter #224 2019-07-16 22:39:36 +02:00
Jesper Gravgaard
bef7663023 Optimized & minimized spline sample program. Added test demonstrating struct array initializer problem #223 2019-07-16 22:32:41 +02:00
Jesper Gravgaard
33b506902f Optimized & minimized spline sample program. Found a few TODO's regarding struct unwinding. 2019-07-16 22:03:16 +02:00
Jesper Gravgaard
eba674bd44 Added spline sample. Added many fragments. Fixed error in line where from&to are the same. Fixed cast to dword/sdword. Fixed unwinding of members that are themselves structs. Closes #222 2019-07-16 21:16:00 +02:00
Jesper Gravgaard
dd8ccaf186 Added spline test, a bunch of missing fragments and special ror/rol 8 handling. 2019-07-15 23:45:52 +02:00
Jesper Gravgaard
69e264d9c5 Added script for building & deploying local version of kickc. 2019-07-15 18:35:25 +02:00
Jesper Gravgaard
13509b59cb Added optimize option for using a fragment cache. Yields no significant performance benefit. 2019-07-15 09:47:47 +02:00
Jesper Gravgaard
d1333cdbe4 Added a few missing fragments. 2019-07-14 20:40:44 +02:00
jespergravgaard
9264967b3f fixed tests 2019-07-11 06:31:29 +02:00
jespergravgaard
5b7ba4e2d8 Added logarithm skeleton 2019-07-11 01:14:29 +02:00
jespergravgaard
57cdb8dab4 Implemented calloc() 2019-07-11 00:04:18 +02:00
jespergravgaard
57bbe42711 Fixed problem with small negative constant unsigned words. 2019-07-10 20:54:35 +02:00
jespergravgaard
fd63efafe2 Added a bresenham line routine to singlecolor bitmap bitmap2.kc 2019-07-10 18:43:42 +02:00
jespergravgaard
62d7ecbeff Moved back to malloc() based impl. 2019-07-10 12:07:06 +02:00
jespergravgaard
fe0f0f9a1c Added -d switch to start C64Debugger directly (with symbols and KickAsm source). Extended -e to include symbols in VICE. Closes #212 2019-07-10 12:02:01 +02:00
jespergravgaard
7a36932c48 Finished bucket-based spiral 2019-07-09 18:13:05 +02:00
jespergravgaard
bafffa14f2 fixed tests 2019-07-09 17:33:20 +02:00
jespergravgaard
91a428d22b Updated to 256 buckets & parametrized screen. 2019-07-09 16:05:55 +02:00
jespergravgaard
bf0d399b2c Working on buckets 2019-07-09 15:03:02 +02:00
jespergravgaard
80e84f3234 Added fragments. Implemented working buckets. 2019-07-09 14:41:29 +02:00
jespergravgaard
a7ac33a653 Changed HEAP to grow down from $a000. Fixed inner increment problem. Closes #216 2019-07-09 11:40:56 +02:00
jespergravgaard
b5222c7929 Fixed tests. 2019-07-09 00:51:54 +02:00
jespergravgaard
f8b4dde791 Added fragments - fixed object equality problem when incrementing complex expressions of non-byte type. 2019-07-09 00:31:44 +02:00
jespergravgaard
031e9e6423 Fixed duplicate file info comments. 2019-07-08 19:05:35 +02:00
jespergravgaard
0e59591d6c Improved output from -Sc option adding C-code comments to the ASM. 2019-07-08 16:43:10 +02:00
jespergravgaard
bf60fab6d0 Removed segment ID from default log. 2019-07-08 12:04:44 +02:00
jespergravgaard
f2f144c3ee Added command line switches for adding comments containing source file information to the ASM. Closes #215 2019-07-08 11:32:07 +02:00
jespergravgaard
5061a02a17 Upgraded to KickAssembler 5.7. Closes #213 2019-07-07 17:54:06 +02:00
jespergravgaard
b053acf39b Fixed fragment tests 2019-07-07 00:39:34 +02:00
jespergravgaard
1d092962b3 Added center-based plasma, some fragments and some synth rules. 2019-07-07 00:17:00 +02:00
jespergravgaard
b05160bfff Made char (without sign qualifier) unsigned as allowed by standard C. Closes #204 2019-07-06 11:24:16 +02:00
jespergravgaard
6f4a1f0555 Tetris NPE has been fixed. 2019-07-06 11:00:15 +02:00
jespergravgaard
c5f1ec7d8a Added program that shows a spiral on the screen. 2019-07-06 10:32:25 +02:00
jespergravgaard
966773ed2b Fixed error where global variable live ranges where ignored by ZP coalesce. 2019-07-06 00:48:45 +02:00
jespergravgaard
e64659025e Merged optimizations. 2019-07-05 06:56:24 +02:00
jespergravgaard
49c930f71e Merged optimizations. 2019-07-05 06:56:02 +02:00
jespergravgaard
9bd2a1d51d Optimized - and added cycle timing 2019-07-05 06:46:06 +02:00
Jesper Gravgaard
a0b45ee1aa Optimized xd/yd shifting. 2019-07-04 19:56:11 +02:00
jespergravgaard
1064518cf9 Optimized angle-screen calculation using symmetry. 2019-07-03 23:23:39 +02:00
jespergravgaard
647775223c Added time.kc C standard library compatible. Added cycle counting to a few tests. 2019-07-03 22:22:25 +02:00
jespergravgaard
7d049f70a3 Added CIA timer test. Removed pointer cast logging (to improve test reproducability). 2019-07-03 21:15:54 +02:00
jespergravgaard
e2fcf78759 Fixed tests. 2019-07-02 09:15:17 +02:00
Jesper Gravgaard
ce7032b12e small improvements to code size. 2019-07-01 23:22:57 +02:00
Jesper Gravgaard
ccf965346e Moved more tests to use array kickasm initialization. Closes #116 2019-07-01 09:21:11 +02:00
jespergravgaard
cb81fc07f6 Updated to use new array initialization by kickasm. 2019-07-01 08:09:19 +02:00
jespergravgaard
cc08edb0e4 Fixed a few array initializer kickasm problems. Changed atan2 to use it. 2019-06-30 23:33:30 +02:00
Jesper Gravgaard
c4bcbddcd4 Added support for array initialization using inline kickasm 2019-06-30 23:08:39 +02:00
Jesper Gravgaard
44c5aa1313 Added syntax for kasm-initialization of arrays. 2019-06-30 15:48:31 +02:00
Jesper Gravgaard
30068dbf92 Fixed tests 2019-06-30 15:30:08 +02:00
Jesper Gravgaard
ee11c66a79 Added speed test for filling screen with atan2 2019-06-29 11:38:26 +02:00
Jesper Gravgaard
e02f3bc2e0 Added circular clear atan2 test 2019-06-29 11:10:16 +02:00
jespergravgaard
d0c23993cc Updated tests 2019-06-29 10:08:46 +02:00
jespergravgaard
2f8097ca17 Merge remote-tracking branch 'origin/master' 2019-06-29 09:55:29 +02:00
jespergravgaard
b3e7b6da8f Split into 16-bit and 8-bit tests. Added a ref-test. 2019-06-29 09:55:12 +02:00
Jesper Gravgaard
f25e0bde3b Found optimal 8-bit and 16-bit versions of atan2. 2019-06-28 22:45:26 +02:00
jespergravgaard
83ed437553 Working on atan2() 2019-06-28 17:05:54 +02:00
Jesper Gravgaard
13652f61f2 Now works in 4 quadrants. 2019-06-28 09:34:02 +02:00
jespergravgaard
c3cff0dff1 Added CORDIC atan2 implementation. 2019-06-26 09:24:25 +02:00
jespergravgaard
7574ed744c Optimized finding char to process by using table with distance to center. 2019-06-25 00:38:08 +02:00
jespergravgaard
77b75cb045 Now 202 t cycles through a little optimization. 2019-06-25 00:03:53 +02:00
jespergravgaard
3a919eda9d Added screen mirroring - optimizing to 227t cycles (from 750t). 2019-06-24 23:47:13 +02:00
jespergravgaard
28c1f71d5e Fixed void* pointer problem properly. Closes #205 2019-06-24 23:22:20 +02:00
jespergravgaard
908ccb19ce Fixed void* pointer problem. Closes #205 2019-06-24 22:46:07 +02:00
jespergravgaard
df4294414a Changed default to byte* 2019-06-24 19:48:18 +02:00
jespergravgaard
65419720c2 Fixed pointer subtraction error. Closes #206 2019-06-24 19:30:52 +02:00
jespergravgaard
50c8175b30 Added tests for two errors #205 and #206 2019-06-24 08:21:58 +02:00
jespergravgaard
b319398702 fixed tests 2019-06-24 00:31:08 +02:00
jespergravgaard
ca3d01e2b8 fixed tests 2019-06-24 00:28:30 +02:00
jespergravgaard
048d87b251 Moved routines into stdlib. 2019-06-24 00:22:23 +02:00
jespergravgaard
20ec350ca5 Added malloc tests. Improved cast handing in ASM fragments. Optimized screen center distance calculation (implemented table-based sqr() and sqrt() using binary search). 2019-06-23 23:44:55 +02:00
jespergravgaard
306bbc381f Put font-hex into a lib file 2019-06-23 11:26:11 +02:00
jespergravgaard
74c7abe229 Improved fragment synth to include _derefidx_vbuxx 2019-06-23 11:12:34 +02:00
jespergravgaard
576457a27d Updated fragment tests 2019-06-22 22:55:55 +02:00
jespergravgaard
5f61df4c16 Added hex code font. 2019-06-22 21:13:22 +02:00
jespergravgaard
281a77c06c Updated tests 2019-06-22 13:45:11 +02:00
jespergravgaard
03e76570b8 Added test for memcpy 2019-06-22 10:36:13 +02:00
jespergravgaard
1e3a6a2750 fixed tests 2019-06-22 00:36:24 +02:00
jespergravgaard
f2a770182e Added fragments. Added bitmap spiral test. 2019-06-22 00:25:28 +02:00
jespergravgaard
3ae5f0981a Added a file data segment. Improved negate word fragment. 2019-06-21 22:12:05 +02:00
jespergravgaard
b461fcfa74 Dropped memory.kc and fill() - Instead added C stdlib memset() to string.kc.
Pointer math on void pointer now results in an error.
2019-06-21 20:06:57 +02:00
jespergravgaard
1150cf859f fixed tests 2019-06-21 01:08:07 +02:00
jespergravgaard
3ff8effc51 Using void pointers in stdlib string. 2019-06-21 00:39:58 +02:00
jespergravgaard
7b2b8897a6 Void pointers now work. Closes #186 2019-06-21 00:36:42 +02:00
jespergravgaard
0a4ef77056 Working on fixing void pointers #186 2019-06-20 22:39:45 +02:00
jespergravgaard
d3e21133fa Added initial void pointer support. Working on #186 2019-06-19 23:16:59 +02:00
jespergravgaard
29f7265341 Shortened clearscreen a bit more. 2019-06-19 02:07:50 +02:00
jespergravgaard
cbe58167da Fixed test. 2019-06-19 02:05:31 +02:00
jespergravgaard
2acc1010ec Added a few enum error tests 2019-06-19 01:53:03 +02:00
jespergravgaard
291c87621e Added enum tests. Fixed inline enums inside structs. 2019-06-19 01:45:07 +02:00
jespergravgaard
f3982063eb Added test refs 2019-06-19 01:24:10 +02:00
jespergravgaard
8e0e8d7dce Implemented enum support for complex constants in enum values. Added enum to clearscreen. Changed constant expression handling in pass 0. 2019-06-19 01:23:27 +02:00
jespergravgaard
10082a5d96 Implemented enum support (excl. complex constant usage in values). Closes #119 2019-06-19 00:39:15 +02:00
jespergravgaard
e4af001041 Added enum syntax (no functionality yet). Working on #119 2019-06-18 18:36:01 +02:00
jespergravgaard
d111836faf fixed tests 2019-06-18 00:15:54 +02:00
jespergravgaard
d7b8f6ae55 Added a missing fragment and a newline. Added a petscii tester and started strings.h. 2019-06-17 23:57:45 +02:00
jespergravgaard
68c3c5918c Implemented support for char colors in clearscreen 2019-06-17 00:33:56 +02:00
jespergravgaard
4dfc4432c7 Removed all calls to ConstantIdentification.isAddressOfUsed(VarRef) since inferedVolatile now handles these situations. Structs are now working. Closes #57 2019-06-17 00:11:01 +02:00
jespergravgaard
40df42067b Any variable affected by address-of is now marked as infered volatile. Closes #200 2019-06-16 23:49:22 +02:00
jespergravgaard
3725bf6821 Added versions to struct-unwinding. 2019-06-16 22:26:17 +02:00
jespergravgaard
ad6eadad0b Added another struct address-of test passing the pointer to a procedure. 2019-06-16 21:48:13 +02:00
jespergravgaard
afc1b74ef8 Implemented unwound struct address-of rewriting to use first member. 2019-06-16 19:54:03 +02:00
jespergravgaard
00c8d5c857 Added a struct unwound placeholder when unwinding a struct variable. Will be used for address-of and to ensure the phi-generator does not run amok. 2019-06-16 17:10:18 +02:00
jespergravgaard
114a237e24 Added address-of test identifying problems with address-of implementation. Error is #200 2019-06-16 15:03:23 +02:00
jespergravgaard
ef38dca7af Renamed to clearscreen. Added DEBUG. 2019-06-16 11:37:06 +02:00
jespergravgaard
bbbb25d9b1 Improved movement. Added fragment. 2019-06-16 01:06:52 +02:00
jespergravgaard
ba9b11f77b Added 2D-acceleration. Added more fragments. Improved word ror'ing. 2019-06-16 00:31:43 +02:00
jespergravgaard
94b0dbcffc Improved bash-script to allow -fragmentdir option. Added blackhole sprite vx/vy support. Added a few word fragments. 2019-06-15 21:10:06 +02:00
jespergravgaard
986e02fde6 Updated fragment test refs 2019-06-15 20:23:12 +02:00
jespergravgaard
d1752069ce Added missing ref-files. 2019-06-15 19:19:22 +02:00
jespergravgaard
8778b9a986 Fixed tests. Fixed struct-member modify-assignments. 2019-06-15 19:17:55 +02:00
jespergravgaard
be7686c954 Added missing word-fragments & synth. Moved to fixed point positions. 2019-06-15 18:55:01 +02:00
jespergravgaard
9b6f1c6bd1 Added support for typedef (only supported in the global scope). Closes #177 2019-06-15 00:32:09 +02:00
jespergravgaard
3ba3d36994 Added typedef syntax. Working ont #177 2019-06-13 01:53:33 +02:00
jespergravgaard
4a93294445 Rearranged pass1 to avoid line numbers 2019-06-13 01:15:34 +02:00
jespergravgaard
8ee499f9a8 Added up/left sprite movement. 2019-06-12 23:54:21 +02:00
jespergravgaard
b4a0c74cf1 Fixed fragment. blackhole work-in-progress is functional. 2019-06-12 22:44:24 +02:00
jespergravgaard
d78fa15fe1 Fixed fragment. 2019-06-12 21:53:10 +02:00
jespergravgaard
a3c5bb06da Working on blackhole. Added a ton of fragments & and some synth. 2019-06-12 21:38:07 +02:00
Jesper Gravgaard
30de557d61 Merge remote-tracking branch 'origin/master' 2019-06-12 16:39:30 +02:00
Jesper Gravgaard
8b3264fffa working on sprite movement 2019-06-12 16:38:56 +02:00
jespergravgaard
befed70661 Fixed tests 2019-06-12 14:18:51 +02:00
jespergravgaard
440da0eaee Minor stuff. 2019-06-12 14:10:36 +02:00
jespergravgaard
c4d24caa72 Added black hole test. Added a bunch of fragments. Added struct member assertion. Added some tests with stuff to fix. 2019-06-12 12:45:58 +02:00
Jesper Gravgaard
7c4a60aea4 Merge remote-tracking branch 'origin/master' 2019-06-11 21:52:37 +02:00
Jesper Gravgaard
b014e0f732 Added tests for developing struct address-of 2019-06-11 21:52:21 +02:00
jespergravgaard
3fa29f5ec2 Added variable word ROR and word=word&word 2019-06-11 20:02:37 +02:00
jespergravgaard
253babb8ea Added textbox-test using builtin multiply - by Scan/Desire. 2019-06-11 06:56:51 +02:00
jespergravgaard
9d8d8f02e2 Implemented arbitrary (unsigned) integer multiplication. Also allows structs to have any size - and still use arrys indexing. Closes #193 2019-06-11 01:34:24 +02:00
jespergravgaard
69278c458a Added test of struct array with 256+ structs. 2019-06-10 22:58:15 +02:00
jespergravgaard
56c33cdac2 Implemented struct member unwinding when copying structs referenced through pointers/array indexing. 2019-06-10 22:49:21 +02:00
jespergravgaard
c8178378b2 Implemented struct array access rewriting code. Removed "old" struct asm instance code. 2019-06-10 21:24:33 +02:00
jespergravgaard
5e0b33f2ca Changed struct-ptr-5 to use arrow operator and changed member sequence. 2019-06-10 17:16:52 +02:00
jespergravgaard
c50cef4058 Implemented arrow operator. Closes #179 2019-06-10 17:02:17 +02:00
jespergravgaard
179572d979 Re-added meaningful SYM test reference files. 2019-06-10 16:39:25 +02:00
jespergravgaard
59f6937835 Implemented simple linked list using pointers to structs. 2019-06-10 16:36:11 +02:00
jespergravgaard
7daf36a811 Implemented struct pointer dereference rewriting. Simple pointers to structs are now working. 2019-06-10 14:56:25 +02:00
jespergravgaard
3d8443d62b Added test for length og struct array 2019-06-10 12:06:09 +02:00
jespergravgaard
54679cee8b Implemented sizeof() for structs - including values and arrays. 2019-06-10 11:59:40 +02:00
jespergravgaard
869ce161be Struct return values working! 2019-06-10 01:01:36 +02:00
Jesper Gravgaard
a411a57688 Working on struct return values 2019-06-09 23:39:24 +02:00
jespergravgaard
30218564d2 Work-in-progress: Unwinding struct return values. 2019-06-09 13:56:35 +02:00
jespergravgaard
f29648ca26 Added test with 3-level nested struct value. 2019-06-09 10:55:18 +02:00
jespergravgaard
1540e14067 Implemented support for nested struct values. 2019-06-09 10:47:33 +02:00
jespergravgaard
26698851ca Added support for struct value list constructor. 2019-06-08 22:06:22 +02:00
jespergravgaard
a180a4c0b4 Implemented call parameter type checking in pass 1. 2019-06-08 15:01:44 +02:00
Jesper Gravgaard
d58c46e46f Added two struct value error tests. 2019-06-07 13:46:36 +02:00
jespergravgaard
0dcd739507 Implemented struct value call parameter passing by unwinding. 2019-06-07 09:31:14 +02:00
jespergravgaard
c995a1bca1 Implemented struct value member-centric optimization (converting simple struct variables to each member.) 2019-06-07 00:14:42 +02:00
jespergravgaard
0bebae430d Merged masters 2019-06-03 22:28:02 +02:00
jespergravgaard
d52fbcb6b6 Added two tests for statement sequence locality. 2019-06-03 22:26:21 +02:00
Jesper Gravgaard
2f900a9102 Tests exploring sub-expression optimization. 2019-06-03 12:19:47 +02:00
Jesper Gravgaard
8289676723 Fixed test output 2019-06-03 11:01:27 +02:00
Jesper Gravgaard
0ff52448f1 Added test for void-parameter lists. 2019-06-03 10:36:20 +02:00
jespergravgaard
9ad3879e52 New type system fixes pointer to pointer casts. Closes #166 2019-06-03 08:58:23 +02:00
jespergravgaard
7a4d3fff47 New type system fixed loHhi-operator on constant values. Closes #95 2019-06-03 01:51:25 +02:00
jespergravgaard
7535f4d4c1 New type system fixed addition sequence. Closes #132 2019-06-03 01:44:16 +02:00
jespergravgaard
8e1add7d04 New type system fixed constant casting. Closes #164 2019-06-03 01:40:55 +02:00
jespergravgaard
526bfbb60c Added support for converting non-boolean conditions to boolean. Fixed problem with ranged for iterating signed bytes. Closes #135 2019-06-03 00:44:46 +02:00
Jesper Gravgaard
45471f6848 Implemented syntax supporting string character encodings. Closes #59 2019-06-02 17:25:04 +02:00
jespergravgaard
8947882e20 Moved zero-page coalesce to an optimization option. 2019-05-31 23:17:57 +02:00
jespergravgaard
67a198c48f Updated number type test. Closes #181 2019-05-31 20:19:23 +02:00
jespergravgaard
487c06fbbc Removed -O0 switch 2019-05-31 18:51:39 +02:00
jespergravgaard
8925a57955 Cached phi transition calculations yilding significantly faster compilation of complex programs. 2019-05-31 18:20:03 +02:00
jespergravgaard
b6ee63ea9f Caching effective alive for each call path. 2019-05-31 15:48:20 +02:00
jespergravgaard
97f6051b12 Fixed static optimization problem not detecting modified memory. Fixed thread problem not handling global variables properly. Added compiler switch -O0 doing less optimization for faster compiles. 2019-05-31 12:46:50 +02:00
jespergravgaard
29aa5322b2 Fixed issue with const/label. 2019-05-31 01:56:59 +02:00
jespergravgaard
ecf4181ce1 Fixed tests (added missing toString(). Changed global reserve directiveu to #reserve(zp,zp,zp,...). Added global directive specifying code address #zp(addr). Closes #190 2019-05-30 23:50:26 +02:00
jespergravgaard
b755cd448f Readded cfg/log/sym-files to tests 2019-05-30 22:29:07 +02:00