Commit Graph

645 Commits

Author SHA1 Message Date
drmortalwombat adda4044ca Complete value forwardign abs,x and abs,y 2023-07-24 22:23:37 +02:00
drmortalwombat df28d2f83f Value forwarding abs,x and abs,y 2023-07-24 22:19:35 +02:00
drmortalwombat bd6db60802 Add iostream library 2023-07-20 14:46:10 +02:00
drmortalwombat 9cdfad7d34 Improve cpp code generation 2023-07-17 07:52:59 +02:00
drmortalwombat 18c21b3fda Optimize long shifts 2023-07-15 22:32:07 +02:00
drmortalwombat fa60c2e658 Improve operator overloading 2023-07-14 07:48:48 +02:00
drmortalwombat 6178bb1f9d Shortcut jump cascades 2023-07-10 22:12:41 +02:00
drmortalwombat 00ded29b35 Improve opp string library 2023-07-09 21:35:49 +02:00
drmortalwombat ed9aa3503b Added virtual functions 2023-07-08 18:53:06 +02:00
drmortalwombat 0b6a9c3584 Copy elision on return statements 2023-07-05 17:10:23 +02:00
drmortalwombat 291ff890e6 Change heap layout for vector delete 2023-07-02 13:36:02 +02:00
drmortalwombat 7858c2135b Add malloc/free as intrinsic 2023-07-02 12:00:53 +02:00
drmortalwombat 478f93922d Error on pointer/integer compare 2023-06-27 18:16:13 +02:00
drmortalwombat 63ebf6aa7c strlen optimization 2023-06-27 15:34:13 +02:00
drmortalwombat 0b1b4a7d9b Array constructors 2023-06-25 22:24:13 +02:00
drmortalwombat 6b753c1418 Destructor tracking of temporary variables 2023-06-25 14:25:29 +02:00
drmortalwombat a854133f8e Fix over eager global address progpagation 2023-06-22 14:04:18 +02:00
drmortalwombat daf412a47b Add default constructor 2023-06-20 17:16:22 +02:00
drmortalwombat e577791252 Constructors with parameter overloading 2023-06-20 10:26:49 +02:00
drmortalwombat b008d39eae Function overloading in cpp mode 2023-06-18 20:27:20 +02:00
drmortalwombat b8478348ed Fix nullptr reference cause assert in linux 2023-06-18 09:24:50 +02:00
drmortalwombat 7b40aa59a1 Add references for cpp mode 2023-06-17 21:07:31 +02:00
drmortalwombat 0f182d2d6d Fix over eager function parameter optimiztion 2023-06-16 15:21:30 +02:00
drmortalwombat 8a886f0a60 Fix loop invariant error 2023-06-14 16:44:03 +02:00
drmortalwombat c83804a76c Cross function constant propagation 2023-06-14 14:40:59 +02:00
drmortalwombat ab9ae6bf0e Fix error in intermediate code peephole optimizer 2023-06-09 21:21:35 +02:00
drmortalwombat e593e2affb Loop optimizations 2023-06-08 20:27:11 +02:00
drmortalwombat d054818aa3 Bump version number 2023-06-04 17:37:51 +02:00
drmortalwombat 962240f09d Fix init state of 32 vsprites mux 2023-06-03 13:01:52 +02:00
drmortalwombat 7c0db6161d Optimize some pointer arithmetic 2023-06-01 22:23:08 +02:00
drmortalwombat 5e699a8dc0 Optimize signed division by 4 and 8 2023-06-01 11:22:36 +02:00
drmortalwombat d80518871a Fix bypass a->y->a chain with tya in middle 2023-06-01 08:13:11 +02:00
drmortalwombat 9e985f7f3d Optimize double and shift 2023-05-29 21:54:55 +02:00
drmortalwombat a4faf204cb Fix enums in debug output 2023-05-27 14:17:30 +02:00
drmortalwombat 7d3dc493c0 Fix inter instruction cross block move 2023-05-26 20:16:19 +02:00
drmortalwombat 5564b01d11 Fix sample build crash on linux 2023-05-23 11:05:29 +02:00
drmortalwombat 400017bc54 Assign function exit code to first return statement 2023-05-21 21:14:00 +02:00
drmortalwombat cdbb24b6b2 Add iecbus library 2023-05-21 17:19:26 +02:00
drmortalwombat e6b46a3acf More aggressive value forwarding with local arrays 2023-05-20 13:49:34 +02:00
drmortalwombat 2ac276458a Optimize loop invariants in single entry/exit loops 2023-05-19 21:25:29 +02:00
drmortalwombat d4caa6bb71 Optimize right shift of byte values with variable shift distance 2023-05-16 19:07:59 +02:00
drmortalwombat 5b0fe1e050 Fix clang warnings 2023-05-14 19:07:10 +02:00
drmortalwombat 8142ed3e72 Merge branch 'main' of https://github.com/drmortalwombat/oscar64 2023-05-14 19:01:41 +02:00
polluks 1616b9335f Fixed typos 2023-05-13 15:57:46 +02:00
drmortalwombat 45963102b8 Fix lower bound of byte -- operator 2023-05-12 14:17:35 +02:00
drmortalwombat a9651a4f2e Optimize combining bits using shift 2023-05-07 20:55:35 +02:00
drmortalwombat 4aa6b1c47d Improve int dependency in loop analysis 2023-05-07 17:46:53 +02:00
drmortalwombat 0639fdc008 Unify instruction dependency check in optimizer 2023-05-06 18:28:59 +02:00
drmortalwombat 7d12fd4c02 Fix same XY optimization 2023-05-04 11:32:12 +02:00
drmortalwombat df733d09a8 Fix add cross move in native code optimizer 2023-05-01 19:16:25 +02:00
drmortalwombat d047152646 Reduce line number toggling in debug file 2023-05-01 15:38:48 +02:00
drmortalwombat b1fc2e3736 Add __bankof operator 2023-04-30 18:35:04 +02:00
drmortalwombat ac7e1d5867 Fix over eager function parameter optimization 2023-04-16 22:56:58 +02:00
drmortalwombat 8ede3abcab Fix loss of loop head status in native basic blocks 2023-04-16 14:05:09 +02:00
drmortalwombat e5805716e2 Fix propagation of volatile flags 2023-04-15 21:53:33 +02:00
drmortalwombat 6308f22f25 Fix warnings 2023-04-12 19:02:27 +02:00
drmortalwombat 78e48c75fd Auto place globals in zero page with -Oz option 2023-04-10 18:26:59 +02:00
drmortalwombat e23ab50512 Add local variables to debug file 2023-04-09 19:19:57 +02:00
drmortalwombat d5c347da9b Add vera sprite image 2023-04-07 15:47:08 +02:00
drmortalwombat 97bb7981a3 Improve struct copy alias analysis 2023-04-06 17:14:53 +02:00
drmortalwombat 7803e2ecc4 Fix infinite loop in compiler trying to optimize infinite loops 2023-04-04 08:37:26 +02:00
drmortalwombat 32ea493c17 Prepare per function optimization config using pragmas 2023-04-02 19:04:10 +02:00
drmortalwombat 2f1172076a Add source level debug information 2023-03-28 21:01:17 +02:00
drmortalwombat c2c0244990 More native code common subexpression elimination 2023-03-24 20:23:10 +01:00
drmortalwombat 6af03b34ad Fix infinite optimizer loop 2023-03-21 08:09:12 +01:00
drmortalwombat ba2a90030c Improved striped array pointer propagation 2023-03-19 17:36:03 +01:00
drmortalwombat a584f74788 More native code common subexpression elimination 2023-03-18 19:02:05 +01:00
drmortalwombat 9c5e018c5a More simple common subexpression elimination in native code 2023-03-17 09:32:22 +01:00
drmortalwombat 485282019b Optimize 8bit add and pointer access 2023-03-15 17:58:49 +01:00
drmortalwombat da29f1c0a5 Fix gcc build 2023-03-14 21:53:50 +01:00
drmortalwombat 7617029652 More volatile checks 2023-03-14 20:51:54 +01:00
drmortalwombat f590284ae2 Fix volatile code movement 2023-03-14 20:32:32 +01:00
drmortalwombat 11c624fb4a Optimize loops with shift 2023-03-14 17:49:17 +01:00
drmortalwombat 175520c885 Optimize pointer forwarding with striped addressing 2023-03-14 16:23:37 +01:00
drmortalwombat 83869ad3a0 Shortcut redundant conditional branch sequences 2023-03-13 22:13:02 +01:00
drmortalwombat 718d3ad940 Bump version number 2023-03-12 22:47:19 +01:00
drmortalwombat ecd0fbd364 Fix over eager loop load/store optimizations for values needed after loop 2023-03-12 20:27:00 +01:00
drmortalwombat 7d6f637948 Fix broken volatile check in (),y 2023-03-11 11:29:35 +01:00
drmortalwombat aed086bdb9 Add rom mappers to NES target 2023-03-11 11:01:11 +01:00
drmortalwombat 5bd4f4e9a5 Add local labels to listings 2023-03-09 21:04:56 +01:00
drmortalwombat efff725745 Improve labels in disassembler listing, add mlb file for nes 2023-03-09 19:29:46 +01:00
drmortalwombat 2959016496 Fix movement of accu train across JSR that uses the same register 2023-03-09 16:25:51 +01:00
drmortalwombat 0f4f0ed297 Improve compiler speed 2023-03-08 08:37:43 +01:00
drmortalwombat be15913bd0 Bump version number 2023-03-07 19:18:33 +01:00
drmortalwombat c3977627e9 Fix calling __interrupt function from __interrupt function 2023-03-07 08:27:54 +01:00
drmortalwombat 9662f5e69f Loop counter depend index optimizations for small xy loops 2023-03-06 20:34:02 +01:00
drmortalwombat 6189e0cc49 Prepare NES machine type 2023-03-04 14:07:34 +01:00
drmortalwombat e09361295e Relax zero page value forwarding intersection rules 2023-03-01 18:43:35 +01:00
drmortalwombat df89082846 Track state of fast call parameters across function calls to avoid duplicate push 2023-03-01 08:49:51 +01:00
drmortalwombat 096d9efcd9 Fix over eager taxa range reduction 2023-02-27 15:38:19 +01:00
drmortalwombat 797e235056 Small loop accu optimizations 2023-02-26 15:11:37 +01:00
drmortalwombat 4117c9a553 More functions for reu library 2023-02-25 21:02:06 +01:00
drmortalwombat 153c0ef4fa Short loop optimizations 2023-02-22 22:43:35 +01:00
drmortalwombat a91112c05c Pointer in loop optimizations 2023-02-19 18:07:25 +01:00
drmortalwombat 347c336b09 Optimize X vs. Y usage for indexed increment 2023-02-15 22:03:04 +01:00
drmortalwombat 71a071fea4 Loop direction inversion for simple counts 2023-02-11 10:36:46 +01:00
drmortalwombat acbd70a84f Fix XY register propagation for incomming fast parameters 2023-02-10 18:10:41 +01:00
drmortalwombat 5852ca5aea Shortcut conditional branch blocks in intermediate code 2023-02-08 08:51:58 +01:00
drmortalwombat 115b34626e More XY register cross block optimizations 2023-02-07 16:37:41 +01:00
drmortalwombat ff26dffada Optimize alternate XY cross block register use 2023-02-05 12:30:18 +01:00
drmortalwombat 932a65be8c Optimize cross block XY register usage 2023-02-02 20:10:35 +01:00
drmortalwombat d15fd8a451 Fix over eager cross block zp move 2023-01-30 19:27:09 +01:00
drmortalwombat e624011415 Fix crash when compiling address of structs in constants 2023-01-29 10:17:36 +01:00
drmortalwombat dbd0fb6a56 Fix propagate of compare result over potential dual entry empty basic block 2023-01-22 15:18:07 +01:00
drmortalwombat 946b1fe53d Add mouse library 2023-01-22 11:01:03 +01:00
drmortalwombat 0fae7abd72 Optimize simple inline assembler code 2023-01-21 22:41:13 +01:00
drmortalwombat 677de2508b Shuffle temp moves to avoid duplicates 2023-01-21 08:42:22 +01:00
drmortalwombat 16faec8627 Fix loop exit condition broken by Y register lifting 2023-01-19 20:28:02 +01:00
drmortalwombat 29611ec3db Fix striped constant pointer initializer 2023-01-19 19:03:02 +01:00
drmortalwombat 0b30258f80 Dataflow optimizations 2023-01-17 22:42:02 +01:00
drmortalwombat 2f4b2790f6 Register condition block bypassing 2023-01-17 08:02:36 +01:00
drmortalwombat 02db5b5eb1 Static call graph analysis for function arguments 2023-01-15 18:38:18 +01:00
drmortalwombat 761206d009 Propagation of unsigend attribute accross function arguments 2023-01-13 20:14:16 +01:00
drmortalwombat 7c11a5347c Fix over eager move of volatile stores 2023-01-13 13:33:34 +01:00
drmortalwombat a9d3673f4e Optimize left shift by four from byte to int 2023-01-12 22:57:19 +01:00
drmortalwombat d6fcb5f9ca Use CPU register A for single byte parameter and returns 2023-01-10 20:41:55 +01:00
drmortalwombat b04f05b575 Optimize signed divide by two 2023-01-08 19:17:25 +01:00
drmortalwombat 50d3c843b4 Use X instead of A when lda/sta sequence inside TAXA range 2023-01-08 10:56:14 +01:00
drmortalwombat ffe07a6a3c Optimize multiplication with short negative constants 2023-01-07 13:41:59 +01:00
drmortalwombat c105c3b778 Fix error in final code size reduction step 2023-01-03 21:48:50 +01:00
drmortalwombat 57449e3f4a Optimize adds to ors when possible 2022-12-30 20:20:49 +01:00
drmortalwombat 425aae8f72 Fix pointer register loss while forwarding index 2022-12-30 15:55:03 +01:00
drmortalwombat 1a06102668 Shortcut identical consecutive conditional branches 2022-12-25 22:14:12 +01:00
drmortalwombat 5696691a19 Bump version number 2022-12-23 22:50:13 +01:00
drmortalwombat 9daf4fa621 Some more cross block pointer forwarding 2022-12-18 20:33:52 +01:00
drmortalwombat cdd7a15a42 Fix half pointer cross block move 2022-12-18 10:02:16 +01:00
drmortalwombat e202f8e5b5 Bump version number 2022-12-13 20:16:11 +01:00
drmortalwombat de3c7415b3 Fix error in recursive macro expansion 2022-12-13 08:18:25 +01:00
drmortalwombat 0aa9ca0c70 Bump Version number 2022-12-10 16:15:04 +01:00
drmortalwombat 3edd541750 Fix over eager forwarding of global addresses across loop boundaries 2022-12-06 18:29:37 +01:00
drmortalwombat f56fb9e505 Fix crash in optimizer when declaring too many unused local variables 2022-12-06 15:55:31 +01:00
drmortalwombat 8b631d564e Add autotest for striped arrays 2022-12-03 13:28:03 +01:00
drmortalwombat 9c6b745993 Fix self destruct of load store forwarding dict 2022-11-30 22:47:13 +01:00
drmortalwombat bfe6311ca4 Add assignment of structs from and to striped arrays 2022-11-29 18:11:42 +01:00
drmortalwombat 02e4d4bd1b Optimize indexing in loops 2022-11-26 14:12:13 +01:00
drmortalwombat bc058a1c80 Known zero register value propagation 2022-11-25 22:31:23 +01:00
drmortalwombat ebe9476bcc Fix strided array unsigned struct member assignment 2022-11-24 18:15:16 +01:00
drmortalwombat 688fd92a6b Bump version number 2022-11-22 20:25:03 +01:00
drmortalwombat a5a27c039e Fix __asume declaration in loop causing loss of temp chain 2022-11-20 17:35:31 +01:00
drmortalwombat c6d0f44364 Fix unsigend int to/from float conversion 2022-11-19 10:58:44 +01:00
drmortalwombat 42b4f46356 Add striped array memory layout 2022-11-16 08:59:02 +01:00
drmortalwombat 6283f5f9e6 Improve accu train movement 2022-11-09 18:06:33 +01:00
drmortalwombat 54955b6b5f Bump version number 2022-10-29 10:59:20 +02:00
drmortalwombat 93943f8f87 Fix pre decrement operator l value return type 2022-10-25 17:12:36 +02:00
drmortalwombat 04624f208c Fix multiply add 2n + 1 2022-10-23 17:02:34 +02:00
drmortalwombat 0aee1ad452 Code size reduction for jmp to rts 2022-10-22 18:21:45 +02:00
drmortalwombat ef7b391da0 Fix 16 bit indexed ops lost high byte offset 2022-10-16 16:05:55 +02:00
drmortalwombat 8ee390a532 Fix negative array access in native code path propagation 2022-10-16 10:49:51 +02:00
drmortalwombat 77010a0ab2 Fix propagation of volatile memory reads in loops 2022-10-15 17:44:49 +02:00
drmortalwombat 53e4019ecd Fix 2D array access 2022-10-15 10:50:28 +02:00
drmortalwombat 634b7914ea Fix movement of LDY/STY pair that conflicts with Z flag usage 2022-10-13 22:43:50 +02:00
drmortalwombat 4a49456a57 Improve accu train movement 2022-10-09 13:44:59 +02:00
drmortalwombat bd32b38027 Preserve X or Y cross conditions 2022-10-08 11:34:42 +02:00
drmortalwombat 3e59f47748 Loop index optimizations 2022-10-03 10:50:24 +02:00
drmortalwombat 3907068014 Fix over eager down movement of xy load store 2022-09-25 16:41:21 +02:00
drmortalwombat 121f0476e1 Bump version number 2022-09-24 14:31:09 +02:00
drmortalwombat 0835b90219 Optimize negative const offsets in array index 2022-09-17 22:36:17 +02:00
drmortalwombat bd2e198339 Fix loop exit condition z when using xy as loop invariants 2022-09-17 18:33:48 +02:00
drmortalwombat 49a822afbf Fix load int range estimation 2022-09-17 16:15:35 +02:00
drmortalwombat 31dfc702ab Fix lingering branch in idle loop elimination 2022-09-14 08:21:53 +02:00
drmortalwombat 840175d218 More accu train movement 2022-09-13 22:08:02 +02:00
drmortalwombat f0c36c6400 Propagate sign and zero information cross branches 2022-09-11 11:50:57 +02:00
drmortalwombat 612e88456c Bump version number 2022-09-10 16:56:49 +02:00
drmortalwombat e50f3f9814 Fix lenient semicolon handling in parser 2022-09-10 10:05:44 +02:00
drmortalwombat 8287f03f49 Fix shortcut moves violating carry dependencies 2022-09-04 23:05:52 +02:00
drmortalwombat b6a02550f9 Shortcut move from zp to parameter registers 2022-09-04 20:23:06 +02:00
drmortalwombat 6014018f4e Improve XY usage in 16 bit arithmetic 2022-08-27 16:52:27 +02:00
drmortalwombat 5435e1c930 Improve register allocation in complex loops 2022-08-27 15:23:50 +02:00
drmortalwombat da2c0b44ad Bump version number 2022-08-25 18:51:27 +02:00
drmortalwombat 7dd8f4dae3 Fix easyflash placement of auto copied main section 2022-08-25 18:01:58 +02:00
drmortalwombat 4b4c8866dd Optimize multiply of ranges 0..1 2022-08-22 22:00:16 +02:00
drmortalwombat eafe13e557 Fix carray propagation in 16bit subtract with low byte const 2022-08-20 14:03:46 +02:00
drmortalwombat 65fc43c123 More multi path constant folding 2022-08-14 17:52:58 +02:00
drmortalwombat 3d23e7f0b1 Combine partialy constant 16bit adds 2022-08-09 16:39:47 +02:00
drmortalwombat b9396542f0 Add page level unrolling 2022-08-07 22:29:33 +02:00
drmortalwombat 4d274f46d7 Fix move of 16 bit shft lower part across carry boundary 2022-08-06 18:45:37 +02:00
drmortalwombat f0deaab394 Add charpad and spritepad import 2022-08-05 18:08:10 +02:00
drmortalwombat ff1377f7bb Optimize simple search loops 2022-07-30 12:36:05 +02:00
drmortalwombat e1a30a25c7 Fix data dependency violation in cross diamond movement 2022-07-26 19:36:10 +02:00
drmortalwombat ca37ebff0b Fix native code peephole optimization with wrong type/mode enum 2022-07-23 14:50:28 +02:00
drmortalwombat f9f2516a65 Move accu eval trains up to connect them 2022-07-23 14:12:11 +02:00
drmortalwombat 864c8ec9a5 Add samples for 32 and 64 sprite multiplexing 2022-07-18 21:22:12 +02:00
drmortalwombat 0742be3204 Improve dataflow analysis 2022-07-16 14:14:02 +02:00
drmortalwombat 460a1b9d84 Bump version number 2022-07-12 20:07:40 +02:00
drmortalwombat 4666e7a176 Fix single block loop optimization for function call in loop 2022-07-12 14:50:55 +02:00
drmortalwombat 0bd2ab9e3c Fix global analyzer for global variable arrays of function pointers 2022-07-12 13:08:34 +02:00
drmortalwombat ae07b2cee6 Fix local array of function pointers indexing 2022-07-11 09:15:01 +02:00
drmortalwombat 5f8797b4be Fix regression with open array index by byte generated by a subtract 2022-07-10 10:07:33 +02:00
drmortalwombat 5d51ea13c5 Improve register allocator 2022-07-08 21:30:22 +02:00
drmortalwombat 931f9e71b9 Optimize bit check to bool conversion 2022-07-03 22:41:41 +02:00
drmortalwombat eb55b2f55d Remove dangling tail recursion rts after jmp 2022-07-03 13:13:32 +02:00
drmortalwombat bcc59a9afb Add intermediat code select operator 2022-07-02 14:53:00 +02:00
drmortalwombat ba661759fb Fix reordering of function calls 2022-06-30 20:28:36 +02:00
drmortalwombat fdcaf54666 Add unroll pragma for simple loops 2022-06-30 09:33:11 +02:00
drmortalwombat 350403121d Move load temporary register moves out of loops 2022-06-26 15:15:59 +02:00
drmortalwombat 2eeef2d71c Fix data dependency lost due to instruction reshuffling 2022-06-22 22:09:32 +02:00
drmortalwombat 002c10ad13 Optimize array access and value propagation across simple loops 2022-06-21 20:57:58 +02:00
drmortalwombat 3cdc9032b4 Fix parameter loss in intermediate code branch forwarding 2022-06-19 18:31:07 +02:00
drmortalwombat ecfb206d1c Improve zero page register allocator 2022-06-19 15:20:53 +02:00
drmortalwombat 5000d521a1 Intermediate code generator cleanup 2022-06-18 20:21:41 +02:00
drmortalwombat fc7bb2c377 Optimize parameter handling in loops 2022-06-18 17:32:14 +02:00
drmortalwombat e7332192c0 Fix over eager elimination of byte to word conversion 2022-06-14 22:29:42 +02:00
drmortalwombat 6e37060c24 More aggressive reverse value range limit forwarding 2022-06-12 13:39:46 +02:00
drmortalwombat 078007c9fe Fix infinite loop during size reduction 2022-06-10 16:36:52 +02:00
drmortalwombat a81f810a63 Size optimizations 2022-06-10 15:56:08 +02:00
drmortalwombat e73c40ba55 Fixed build issue with hscrollshmup on linux 2022-06-06 08:38:08 +02:00
drmortalwombat 36a5eaae00 Propagate independent instructions across diamond shaped basic blocks 2022-06-04 20:56:28 +02:00
drmortalwombat f9eb91e980 Optimize X and Y usage 2022-06-03 19:04:05 +02:00
drmortalwombat 0ba2ddf195 Propagate x and y across block boundaries 2022-06-02 22:19:10 +02:00
drmortalwombat 1b8e1f4048 Optimize cmp#0 always has carry set 2022-05-30 22:28:36 +02:00
drmortalwombat a86f5b877a Upstream variant constant propagation 2022-05-29 21:02:57 +02:00
drmortalwombat d833ca6834 Use array of struct assignments for index range validation 2022-05-26 13:55:00 +02:00
drmortalwombat 3dc35c5fff Fix invalid bypassing of JSR with X register 2022-05-22 16:41:40 +02:00
drmortalwombat 3351ee81cc Extend static stack allocation to zero page spilling 2022-05-22 13:22:36 +02:00
drmortalwombat b356f726a4 More local xy register usage 2022-05-21 17:17:16 +02:00
drmortalwombat e0f87c676c Eliminate non existing data dependencies 2022-05-21 13:39:12 +02:00
drmortalwombat b42c992a58 Fix buffer overflow in sprintf 2022-05-19 08:30:00 +02:00
drmortalwombat 9d18aef634 Optimize interval comparison cascades 2022-05-15 22:18:42 +02:00
drmortalwombat 46fe117f1f add alias _Bool for bool 2022-05-15 10:53:58 +02:00
drmortalwombat 728e707024 Optimize single page 2D array access 2022-05-14 17:57:32 +02:00
drmortalwombat e70162b2cc Forward native code instruction if only used on single outgoing path 2022-05-12 17:55:24 +02:00
drmortalwombat 75e5471dd1 Add support for d64 image creation 2022-05-08 15:37:30 +02:00
drmortalwombat c7de44b015 Optimize signed int with unsigned char comparison 2022-05-08 10:36:02 +02:00
drmortalwombat 29bd0c8d2d Optimizations for global variables 2022-05-07 14:03:56 +02:00
drmortalwombat ea1fa189b2 Add lz compression for embedded assets 2022-05-01 12:55:13 +02:00
drmortalwombat 62d08e139b Optimize pointer arithmetic in loops 2022-04-28 15:52:27 +02:00
drmortalwombat f619c5e0ab More verbose debug output 2022-04-25 07:57:31 +02:00
drmortalwombat 3a689cc7a1 Validate register livetime during peephole optimization 2022-04-23 22:11:25 +02:00
drmortalwombat 4cdc501a34 Bit shift optimizations 2022-04-21 08:26:04 +02:00
drmortalwombat 253be26335 Constant pointer arithmetic for pointer initializers 2022-04-18 22:23:13 +02:00
drmortalwombat ecb9bbee8a Bump version number 2022-04-17 21:12:54 +02:00
drmortalwombat 41a4db4402 Prepare compressed embedded data 2022-04-17 18:41:53 +02:00
drmortalwombat 72d2fc1fac Reverse integer range limit calculation 2022-04-15 11:06:49 +02:00
drmortalwombat 417574b4bb Fix volatile copy 2022-04-12 22:08:40 +02:00
drmortalwombat 07afbc4714 Bump version number 2022-04-12 20:25:41 +02:00
drmortalwombat 1ee7845bb4 Fix disassembler choking on long names 2022-04-12 18:22:38 +02:00
drmortalwombat 7ed7134b53 Remove superfluous temporary move 2022-04-10 21:54:12 +02:00
drmortalwombat 6a40fdc75d Opetimize sequence of ADC/SBC in native code 2022-04-10 15:29:07 +02:00
drmortalwombat 546dbfc45a Some add/sub optimizations for global variables 2022-04-07 22:45:40 +02:00
drmortalwombat 72264109e9 Add experimental zero page allocation for global variables 2022-04-06 19:16:44 +02:00
drmortalwombat 27dee0223c Cross block value forwarding 2022-04-05 16:56:02 +02:00
drmortalwombat c9e1775469 Optimize data forwarding on loop exit 2022-04-04 20:25:05 +02:00
drmortalwombat 6b3c5249cf Add \y00 for non adapted characters in s" or p" string literals 2022-04-04 16:35:37 +02:00
drmortalwombat 2435797bd1 Optimize x and y index order 2022-04-03 20:39:56 +02:00
drmortalwombat aafb4adfa2 Optimize linker placement, avoiding array crossing page boundaries 2022-04-03 11:40:23 +02:00
drmortalwombat 358def836d Fix optimization for absolute addressing and two indices 2022-04-01 20:35:55 +02:00
drmortalwombat 48f97b6e60 Optimize compare to boolean variable 2022-03-31 18:16:31 +02:00
drmortalwombat 5a1ff68926 Fix binary and/or with boolean values, now raising a warning 2022-03-30 14:58:41 +02:00
drmortalwombat a60f5a783f Optimize X and Y register livespan 2022-03-28 19:03:43 +02:00
drmortalwombat 7bd3622bbd Instructions bypassing small if branches 2022-03-27 22:41:29 +02:00