Commit Graph

1089 Commits

Author SHA1 Message Date
drmortalwombat 5b50389340 Optimize 32bit shifts 2024-07-21 21:43:59 +02:00
drmortalwombat 5f2e05d1dd Fix some partial value forwarding errors 2024-07-21 17:53:52 +02:00
drmortalwombat 3cc37acaa4 Bump version number 2024-07-21 11:47:37 +02:00
drmortalwombat 4680ee32f0 Allow defines for #embed arguments 2024-07-21 11:12:34 +02:00
drmortalwombat 3dd23ec789 Additional register allocation step after late inlining 2024-07-21 10:40:37 +02:00
drmortalwombat efd688320f Improve peephole optimizer for shifts 2024-07-18 14:18:06 +02:00
drmortalwombat d0fb062006 Make log and exp intrinsics for const evaluation 2024-07-17 12:42:15 +02:00
drmortalwombat c229a27992 Improve cross loop value propagation 2024-07-16 08:36:52 +02:00
drmortalwombat d3536a718e Merge partially common register loads across basic blocks 2024-07-13 20:44:49 +02:00
drmortalwombat 5909db71d5 Fix loss of dependency when propagating (zp),y single use load across basic blocks 2024-07-12 21:02:46 +02:00
drmortalwombat 96ada6e22a Optimize int->long conversion for known positive values 2024-07-11 16:32:11 +02:00
drmortalwombat 85f01b833c Fix invalid index propagation 2024-07-10 18:49:10 +02:00
drmortalwombat 68a648440a Fix crash on short lea optimization due to lost temp dependencies 2024-07-10 18:31:32 +02:00
drmortalwombat a3bf7296bb Reduce index register usage, where ORA Imm would suffice 2024-07-09 11:24:02 +02:00
drmortalwombat dd1f5b9043 Fix literal string concatenation in parser 2024-07-07 21:18:17 +02:00
drmortalwombat fcc2cbbebe Remove superfluous CPX/CPY with #0 2024-07-06 15:08:03 +02:00
drmortalwombat 470462fe8b Optimize consecutive increments 2024-07-05 22:59:16 +02:00
drmortalwombat 301431f12a Eliminate duplicate loop counting variables 2024-07-05 10:12:55 +02:00
drmortalwombat c0e524cd82 Bump version number 2024-07-04 11:01:58 +02:00
drmortalwombat 4068957442 Fix register dependency update in multi block loop optimization 2024-07-04 10:42:22 +02:00
drmortalwombat bf89d7af33 Improve loop register allocation 2024-07-03 22:23:27 +02:00
drmortalwombat d070e32b4d Loop unrolling for pointer limited short loops 2024-06-30 21:54:56 +02:00
drmortalwombat ad310f8484 Fix sign flag propagationa after immediate ora 2024-06-30 21:28:35 +02:00
drmortalwombat 7eb149a71b Optimize value range of right shifts 2024-06-30 15:45:34 +02:00
drmortalwombat 1c0db235a8 Fix emulator cycle count 2024-06-30 12:29:41 +02:00
drmortalwombat 94181326ca Add uppercase -D for define without separate argument 2024-06-28 16:00:48 +02:00
drmortalwombat cd7567452a Fix return of reference of simple type from inlined function into non ref argument 2024-06-27 19:34:57 +02:00
drmortalwombat 2fec9f066f Refactor large peephole optimizer loop 2024-06-27 15:28:21 +02:00
drmortalwombat fe736289e6 Fix goto to label connection in inlined functions 2024-06-25 21:56:36 +02:00
drmortalwombat 715f295f5e Add goto and labels in C code 2024-06-25 20:45:44 +02:00
drmortalwombat a71c433fc4 Add -D for gcc compliant defines 2024-06-24 18:14:07 +02:00
drmortalwombat 9678814654 Fix crash with extern object pointer arithmetic 2024-06-23 17:05:46 +02:00
drmortalwombat 1598360b65 Fix relational bool ops constant folding 2024-06-22 15:41:02 +02:00
Kopromaster 3851a4c2db
Merge branch 'drmortalwombat:main' into main 2024-06-21 21:08:24 +00:00
drmortalwombat 1a6a98e57e Reduce stack usage when compiled with MSVC due to optimizer function size limit 2024-06-21 12:04:39 +02:00
Test User 5ddfc628dc Bugfix: __try and __except are MSVC specific 2024-06-20 23:01:46 +02:00
drmortalwombat bf5099f57b Improve auto inline heuristics 2024-06-20 21:02:55 +02:00
drmortalwombat d4a381f71c Fix size heuristic of loop condition slicing 2024-06-20 09:42:22 +02:00
drmortalwombat 17002e4c78 More native code load/store forwarding 2024-06-19 21:40:38 +02:00
drmortalwombat cf9a006005 Retain Z flag when restoring Y after index reduction 2024-06-19 17:45:20 +02:00
drmortalwombat 1fa9828f6a Add additiona raster irq for kernal with potential no IO 2024-06-18 20:35:38 +02:00
drmortalwombat 3f9d042863 Optimize xy before loop index register assignment 2024-06-18 16:08:53 +02:00
drmortalwombat 277afd156d Fix over eager const pointer forwarding 2024-06-16 09:01:36 +02:00
drmortalwombat b428b608b5 Fix extern undefined struct in header file 2024-06-15 17:24:04 +02:00
drmortalwombat 58361e39b8 Fix crash on late const typecast to pointer 2024-06-15 13:35:17 +02:00
drmortalwombat 3770a05aee Add fast loader library flossiec 2024-06-13 21:16:42 +02:00
drmortalwombat 5993f75c92 Bump version number 2024-06-12 21:30:16 +02:00
drmortalwombat 02b28096af fix pragma optimize inline 2024-06-12 07:36:30 +02:00
drmortalwombat 02e921364b Add support for charpad 9 format 2024-06-11 22:26:10 +02:00
drmortalwombat 4cf64ee170 Fix loop inversion invariant integer range recovery 2024-06-11 21:01:20 +02:00
drmortalwombat c99c1756a9 Fix parameter address reference in __asm embedding 2024-06-11 13:07:50 +02:00
drmortalwombat 5ccfab0342 Fix IEC code for non interrupt usage 2024-06-11 12:12:29 +02:00
drmortalwombat ff6bb8ccd5 Fix type of addressof reference 2024-06-08 16:48:44 +02:00
drmortalwombat 2e3aea9d96 Fix reference parameter capture 2024-06-08 16:43:33 +02:00
drmortalwombat 4954a285e7 Add interleave option for sectors in disk image 2024-06-05 22:21:21 +02:00
drmortalwombat 46b52a57f7 Add binary not operator to inline assembler operand parsing 2024-06-04 09:07:50 +02:00
drmortalwombat 41ba2e73f2 Fix labels in inline assembler with an offset > 255 2024-06-03 13:06:45 +02:00
drmortalwombat fbc9607e17 Ensure actual update of index variable in loops in non debug builds 2024-05-30 17:51:59 +02:00
drmortalwombat 2e696d9e1a Optimize small inline function calls 2024-05-30 17:51:34 +02:00
drmortalwombat 2e1c020db4 Bump version number 2024-05-26 08:43:14 +02:00
drmortalwombat 13629c70d4 Fix auto deduction of void return type 2024-05-25 22:25:59 +02:00
drmortalwombat b1b5ee737b Fix functional for no parameters 2024-05-25 22:05:31 +02:00
drmortalwombat af38f64a99 Add opp::function 2024-05-25 21:25:02 +02:00
drmortalwombat a22dfa6ba7 Add pure virtual functions 2024-05-23 21:15:47 +02:00
drmortalwombat 9fa8b644a7 Add object placement retry if page locking does not fit 2024-05-23 09:54:07 +02:00
drmortalwombat 375307822e Fix auto template expansion of class constructor 2024-05-22 22:44:53 +02:00
drmortalwombat c0152b1ce4 fix template deduction for member functions 2024-05-22 20:53:23 +02:00
drmortalwombat 3460c06508 Improve strength reduction in loops 2024-05-22 20:36:22 +02:00
drmortalwombat d3734a66e0 Fix complex loop intercode index reversal 2024-05-22 12:16:30 +02:00
drmortalwombat ccf13c78f0 Fix index register conflict when removing condition check after load 2024-05-21 22:03:51 +02:00
drmortalwombat 2c28551ca3 Improve index register cross block handling 2024-05-20 16:24:28 +02:00
drmortalwombat 4fb35a7af2 Add error when exceeding assembler limits 2024-05-20 09:03:41 +02:00
drmortalwombat a2a22476ed Add constexpr pointers for inline assembler 2024-05-19 22:20:52 +02:00
drmortalwombat 1b22a5e3c5 Fix constant fold error 2024-05-19 21:38:19 +02:00
drmortalwombat ab06d85a91 Add global inline assembler optimization for static const to immediate propagation 2024-05-19 20:48:14 +02:00
drmortalwombat d79aae3078 Fix inline mapper for inline assembler 2024-05-19 19:11:48 +02:00
drmortalwombat 4c0e737508 Fix over eager pre processor tokenizer 2024-05-19 17:16:14 +02:00
drmortalwombat 86e0cbf9c2 Alternate forward and backward int value range check 2024-05-19 10:19:42 +02:00
drmortalwombat 142bc988b1 Bump version number 2024-05-17 13:12:24 +02:00
drmortalwombat 3ea44d1979 Fix usage of "ldx abs,x" in some corner cases 2024-05-16 17:45:36 +02:00
drmortalwombat 04d1abd803 Some peephole loop optimizations 2024-05-12 21:06:50 +02:00
drmortalwombat ba1bc29b1a Fix X vz Z flag swapping 2024-05-05 20:54:21 +02:00
drmortalwombat 37776dfaee Remove more conditional branches from loops 2024-05-05 13:14:23 +02:00
drmortalwombat c28f342f3e Remove some superflous range violation warnings 2024-05-03 14:54:58 +02:00
drmortalwombat 354a420aa4 Bump version number 2024-05-01 15:49:17 +02:00
drmortalwombat fb72e8baf8 Fix over eager parameter reordering 2024-05-01 15:30:18 +02:00
drmortalwombat 976703f713 Fix O2 parameter forwarding optimization 2024-05-01 14:08:42 +02:00
drmortalwombat dc5afa6e79 Fix shift optimization had wrong address check 2024-04-30 08:51:22 +02:00
drmortalwombat 740762d4a1 Fix loss of zero flag in 16bit optimization 2024-04-30 08:06:20 +02:00
drmortalwombat f0b7cddeb1 Optimize indirecte 16bit store by flipping low/high order 2024-04-28 21:13:41 +02:00
drmortalwombat 9b47a34840 Improve reordering of function arguments 2024-04-28 20:15:17 +02:00
drmortalwombat bb8c31bf32 Some peephole optimization 2024-04-23 20:54:48 +02:00
drmortalwombat 87ca43e5b7 Add spritepad version 1 file parsing 2024-04-23 17:51:42 +02:00
drmortalwombat 411648b130 Improve long counting loops 2024-04-22 22:48:15 +02:00
drmortalwombat 611f672b81 Add warning for static buffer overflow 2024-04-15 15:40:37 +02:00
drmortalwombat c3c0583f19 Fix const array dereference 2024-04-12 16:51:26 +02:00
drmortalwombat 55ddce2211 Fix const array access folding 2024-04-12 16:11:47 +02:00
drmortalwombat 5971f9a80f bump version number 2024-04-12 15:54:54 +02:00
drmortalwombat fbfd597306 Fix float param to const propagation 2024-04-12 15:50:46 +02:00
drmortalwombat 0184a550c5 Fix volatile violation when recycling immediates 2024-04-10 15:15:22 +02:00