Commit Graph

292 Commits

Author SHA1 Message Date
drmortalwombat 88c3764f69 Bump version number 2021-12-13 08:16:01 +01:00
drmortalwombat 4cf62a67ff Optimize jmp to rts 2021-12-12 20:34:33 +01:00
drmortalwombat fefa2e7d9a Optimize jump to rts and simple loop invariants in native code generator 2021-12-11 23:04:38 +01:00
drmortalwombat f7a5c94229 Optimize frame enter/leave code in native compiler 2021-12-11 12:52:35 +01:00
drmortalwombat 4d14cbe3a5 Fix function pointer call detection for fast call selection 2021-12-10 08:31:57 +01:00
drmortalwombat a1fda2b957 Fix float parameter and return values 2021-12-09 21:38:36 +01:00
drmortalwombat cf9f38d4dc Fix stacked fastcall invokation 2021-12-09 12:11:36 +01:00
drmortalwombat 1ac0c2f46a Fix duplicat check for loop head in native code generator 2021-12-08 14:04:32 +01:00
drmortalwombat 18ab7ce079 Fix broken left shift optimization due to branch in basic block 2021-12-06 22:56:03 +01:00
drmortalwombat 75ea2ee439 Add PETSCII string literals 2021-12-06 20:54:11 +01:00
drmortalwombat 695d4cf914 Minor byte code optimization for absolute arrays 2021-12-04 15:26:05 +01:00
drmortalwombat 973e13b776 Optimize absolute array addressing 2021-12-03 22:49:14 +01:00
drmortalwombat e4d24f1aa4 Some native code optimizations 2021-12-02 18:41:59 +01:00
drmortalwombat a66b3873cd Native code optimizations for global arrays 2021-12-01 23:00:57 +01:00
drmortalwombat 0b9163afbe Optimize native code branch placement 2021-12-01 20:26:28 +01:00
drmortalwombat 4f1de9ce89 Reduce over eager code movement 2021-12-01 19:32:49 +01:00
drmortalwombat 7e07f083a6 Fix native code jmp offsets for inline assembly 2021-12-01 08:40:36 +01:00
drmortalwombat f1f3c609fd Join similar instructions on conditional paths 2021-11-30 21:32:49 +01:00
drmortalwombat 5549096cf7 Limit binary and, or and xor of byte operands to byte operations 2021-11-29 22:07:35 +01:00
drmortalwombat 15c65f69aa Change runtime assembler generator use value and return instead of reference 2021-11-29 18:37:15 +01:00
drmortalwombat a6fa114a5b Add runtime assembler functions to c64 library 2021-11-29 17:43:03 +01:00
drmortalwombat 2003f2f4fd Fixed N flag thrashing due to cross block value forwarding 2021-11-27 23:33:03 +01:00
drmortalwombat 730fb7513e Fix y register thrashing in peephole optimizer 2021-11-27 15:51:17 +01:00
drmortalwombat d02b438a1a Optimize code size 2021-11-27 11:17:15 +01:00
drmortalwombat 0ca6ef8894 Some bytecode optimizations 2021-11-26 22:59:10 +01:00
drmortalwombat ccd6a50043 Optimize byte code interpreter loop 2021-11-25 21:42:06 +01:00
drmortalwombat 93174c8e68 Add overflow and underflow checking for floats 2021-11-24 20:01:08 +01:00
drmortalwombat 84648fbd88 Optimizing some pointer arithmetic 2021-11-23 21:53:23 +01:00
drmortalwombat 92e01b6298 Bump version number 2021-11-22 22:29:19 +01:00
drmortalwombat 12aa385e38 Optimize bytecode generator 2021-11-22 19:49:02 +01:00
drmortalwombat 6007553d03 Byte code optimizations 2021-11-21 22:53:06 +01:00
drmortalwombat 4af2bc0bb2 Add setjmp and longjmp 2021-11-20 20:25:53 +01:00
drmortalwombat 4017cc386b Add charwin library and matching code generator optimizations 2021-11-18 14:57:43 +01:00
drmortalwombat 594610c302 Bump version number 2021-11-16 21:00:34 +01:00
drmortalwombat cd77372350 Remove superfluous rts from inline assembler blocks that end with a jmp 2021-11-16 20:54:10 +01:00
drmortalwombat 5c66e11ca0 Fold iny into interpreter loop for byte code 2021-11-16 20:24:51 +01:00
drmortalwombat 92b2c34293 Byte code size optimizations 2021-11-16 12:59:16 +01:00
drmortalwombat 0c3e19741c Optimize byte code size 2021-11-16 09:10:39 +01:00
drmortalwombat 2ed784ea17 Optimize signed range comparison 2021-11-13 15:05:53 +01:00
drmortalwombat cb5f5f421f Optimize single conditional path value evaluation 2021-11-09 22:24:29 +01:00
drmortalwombat 7dddcc772b Some peephole optimizing for native compiler 2021-11-08 20:18:40 +01:00
drmortalwombat 5cce611659 Fix native code inner loop detection 2021-11-08 08:45:43 +01:00
drmortalwombat 931c4d875a Reduce register copy for native code fast calls 2021-11-07 17:16:01 +01:00
drmortalwombat d99940a98e Update to version 1.1.45 2021-11-06 20:12:28 +01:00
drmortalwombat f50eb7cd19 Optimizing byte code generator 2021-11-06 17:57:24 +01:00
drmortalwombat 417f65e2c2 Byte code generator optimizations 2021-11-06 14:29:12 +01:00
drmortalwombat a8ed15d67b Optimize inline pointer parameters 2021-11-05 08:46:59 +01:00
drmortalwombat d51a30ed2e Fix array type check 2021-11-04 18:28:35 +01:00
drmortalwombat 180da3de4a Fix array[] parameters in functions 2021-11-04 08:29:54 +01:00
drmortalwombat a3d8c94620 Push XY register usage in shift to later optimization stage 2021-11-03 19:39:28 +01:00
drmortalwombat f862f4e084 Constant folding of pointer plus integer 2021-11-03 07:52:12 +01:00
drmortalwombat 099f3b8a26 Fixe unsigned byte signed const comparison 2021-11-02 17:18:24 +01:00
drmortalwombat f16edb1c57 Optimize signed byte comparisons 2021-11-01 22:33:02 +01:00
drmortalwombat 40f82ba6ec Fix byte table access 2021-11-01 21:22:02 +01:00
drmortalwombat 2cd7956736 Remove stores to global variables that are never read 2021-11-01 16:08:37 +01:00
drmortalwombat d3cba85efe Optimize global variable alias analysis 2021-11-01 12:42:03 +01:00
drmortalwombat 214ebd93f2 Bump version to 1.1.44 2021-10-31 20:39:28 +01:00
drmortalwombat a52c869099 Avoid needles store to temps before function call 2021-10-31 19:37:54 +01:00
drmortalwombat 135d357dbc Strcpy as intrinsic 2021-10-31 19:14:07 +01:00
drmortalwombat 7e340cc816 Optimize static and global variable usage 2021-10-31 16:22:11 +01:00
drmortalwombat b9cbf525e9 Optimize native code XY index register usage 2021-10-30 22:29:32 +02:00
drmortalwombat 640477f88d Add peephole size optimizations 2021-10-30 10:42:41 +02:00
drmortalwombat b64079bf28 Optimize some constant shifts 2021-10-27 21:01:39 +02:00
drmortalwombat 8ab8b3c2a1 Fix negative array indices 2021-10-26 14:44:25 +02:00
drmortalwombat 342634d5e4 Fix datatflow tracking in shift optimization 2021-10-25 21:53:55 +02:00
drmortalwombat 1074c29092 Fix register spilling optimization 2021-10-24 22:27:08 +02:00
drmortalwombat 480270f4c9 Fix array to pointer cast 2021-10-24 14:58:06 +02:00
drmortalwombat d8ecd34ac6 Add #embed preprocessor directive to import binary data 2021-10-24 12:34:44 +02:00
drmortalwombat 42e4f483c1 Reduce register spilling on function entry/exit 2021-10-23 22:22:49 +02:00
drmortalwombat e057e24918 Added stddef.h 2021-10-23 16:51:27 +02:00
drmortalwombat 55b79ecfce Fix struct scoping 2021-10-23 11:56:30 +02:00
drmortalwombat 33433403b1 Fix optimizer errors 2021-10-23 00:33:09 +02:00
drmortalwombat c351c6521a Fixed signed char arrays in linker 2021-10-21 13:32:20 +02:00
drmortalwombat 00c59ce6a4 Fix native code function pointer 2021-10-21 10:24:21 +02:00
drmortalwombat 7927df6d41 Fix call/return 2021-10-20 23:03:37 +02:00
drmortalwombat 9833656fcf More cartridge hacking 2021-10-19 22:29:23 +02:00
drmortalwombat 6444428489 Prepare cartdridge linking 2021-10-19 09:36:30 +02:00
drmortalwombat 6481e119e4 Fix various errors triggered by fuzzing 2021-10-17 18:20:44 +02:00
drmortalwombat 5010043fc4 Optimize struct member access 2021-10-17 11:54:15 +02:00
drmortalwombat 3520d2a2bd Fix bugs found by llvm lint 2021-10-17 10:40:33 +02:00
drmortalwombat 194c7a2af4 Fix int + pointer operation 2021-10-16 23:07:28 +02:00
drmortalwombat 13dd453728 Save label file as understood by vice 2021-10-16 21:21:44 +02:00
drmortalwombat 55cd076f7b Bump version to 1.1.42 2021-10-16 19:51:54 +02:00
drmortalwombat 001e50ae08 Complete function struct return 2021-10-16 19:46:04 +02:00
drmortalwombat ed52725a01 Remove copies from struct function return 2021-10-16 18:17:54 +02:00
drmortalwombat 19a54432f6 Struct function return value 2021-10-16 16:45:08 +02:00
drmortalwombat 815f64d14c Fix infinite loop unrolling 2021-10-16 15:11:05 +02:00
drmortalwombat c2886e2532 Fix infinite for(;;) loop 2021-10-16 10:49:11 +02:00
drmortalwombat 545b9a6aba Fix cascaded assignment 2021-10-16 10:27:32 +02:00
drmortalwombat 438a926b88 Code size optimization 2021-10-15 21:52:07 +02:00
drmortalwombat 35a4658f28 Fix long offset pointer access in byte code 2021-10-14 22:22:31 +02:00
drmortalwombat 1a30d044c8 Some peephole optimizations for native code 2021-10-14 21:22:03 +02:00
drmortalwombat 9e7773a0f9 Add warning for constant out of bound array access 2021-10-14 18:15:04 +02:00
drmortalwombat b415d02907 Add binary tree evaluation for large switch statements 2021-10-14 17:52:18 +02:00
drmortalwombat e2e6f4ea01 Add command line options for optimization 2021-10-14 16:51:59 +02:00
drmortalwombat fc0f8e2442 Fix conditional operator with pointes and arrays 2021-10-14 13:15:10 +02:00
drmortalwombat 3c891fb61e Fix 16 bit pointer offsets in native code 2021-10-13 22:19:27 +02:00
drmortalwombat 5372d49b50 Petscii translation in stdio and conio 2021-10-12 17:54:10 +02:00
drmortalwombat da57ae00c5 Add vic include file 2021-10-11 22:14:19 +02:00
drmortalwombat 6bd3e3ae97 Remove debug code 2021-10-10 20:58:38 +02:00
drmortalwombat d493bddf8d Improve inline assembler parser 2021-10-10 20:51:21 +02:00
drmortalwombat 0e59af5122 Fix petscii characters changed includes and pragmas 2021-10-10 17:30:57 +02:00
drmortalwombat 11af372509 More autoinline optimizations 2021-10-10 17:14:12 +02:00
drmortalwombat 210b037dbc Remove sign extended byte loads from byte code 2021-10-08 23:04:27 +02:00
drmortalwombat 32b715382c Add fascall for byte code 2021-10-08 17:41:11 +02:00
drmortalwombat 60489bb79e Refactor inter instrction operator handling 2021-10-08 09:07:01 +02:00
drmortalwombat e7231e27e0 Prepare fastcall 2021-10-07 15:14:23 +02:00
drmortalwombat fb4ae26afb Prepare access to local variables in inline assembler 2021-10-07 10:42:18 +02:00
drmortalwombat df152c2f9b Prepare more than 3 operands per inter instruction 2021-10-06 17:46:42 +02:00
drmortalwombat 15743d3115 Refactor temp handling in inter code 2021-10-06 17:30:41 +02:00
drmortalwombat 330e022a43 Exclude bss segment from prg file 2021-10-05 18:24:03 +02:00
drmortalwombat 9618762234 Bump version to 1.0.38 2021-10-03 20:39:23 +02:00
drmortalwombat 542cb66693 Fixes to get dhrystone.c to compile and run 2021-10-03 20:35:50 +02:00
drmortalwombat 4a822facaa Optimize inline expansion 2021-10-03 11:36:26 +02:00
drmortalwombat acc87d50fe Limit inline expansion depth 2021-10-02 22:39:36 +02:00
drmortalwombat bf825302aa Add function inline expansion 2021-10-02 22:04:42 +02:00
drmortalwombat a0df4e7867 Optimize stack frame for simple functions 2021-10-02 20:56:01 +02:00
drmortalwombat 30becb541e Add long integer support in native and byte code 2021-10-02 17:22:18 +02:00
drmortalwombat 3d9302c90c Support for long integer with byte code 2021-10-02 10:06:13 +02:00
drmortalwombat 0c9992f549 Native code optimizations 2021-10-01 15:54:07 +02:00
drmortalwombat 02305e8bc5 Optimize global arrays and const comparisons 2021-09-30 20:00:47 +02:00
drmortalwombat e846caaf1f New release version 2021-09-29 21:38:02 +02:00
drmortalwombat 9dfbe405a5 Avoid frame pointer in native code if simple stack frame 2021-09-29 19:48:57 +02:00
drmortalwombat 4aa82d539b Optimize pointer increment dereference combos 2021-09-29 17:34:38 +02:00
drmortalwombat ef5cb81a18 Optimized int shifts ge eight 2021-09-29 16:31:17 +02:00
drmortalwombat f205ba1c49 Add strlen to base path call on mac 2021-09-29 12:53:02 +02:00
drmortalwombat bc4aea064a Add missing mac include 2021-09-29 08:02:20 +02:00
drmortalwombat 22dc083283 Cleanup of Mac code 2021-09-28 21:09:39 +02:00
drmortalwombat e2a9cf05ac Add base bat call for mac os 2021-09-28 20:54:35 +02:00
drmortalwombat 3a7e74938e Fix doumentation for command line 2021-09-28 20:03:26 +02:00
drmortalwombat e713dc5940 Direct embedding of inline assembler in native code 2021-09-28 18:35:23 +02:00
drmortalwombat c4a5dafb69 More simple loop optimisations 2021-09-28 16:24:44 +02:00
drmortalwombat e72d28c243 Fix base path in linux 2021-09-27 15:19:16 +02:00
drmortalwombat 9eb5412848 Merge changes for Mac build 2021-09-27 13:38:45 +02:00
drmortalwombat bffef3e9dd Basic block tail merging 2021-09-26 13:14:56 +02:00
drmortalwombat 2fc414ed6b Byte forwardiong optimisation in native mode 2021-09-25 23:08:45 +02:00
drmortalwombat 1dd63ac708 Fix byte size inc/dec error 2021-09-25 22:50:16 +02:00
drmortalwombat 8e9b0fe54c Add simple native loop optimisation 2021-09-25 21:57:33 +02:00
drmortalwombat f925833884 Move executable into bin folder for windows and linux 2021-09-25 18:20:32 +02:00
drmortalwombat 6b6122bc07 Add full preprocessor support 2021-09-24 20:08:42 +02:00
drmortalwombat fd10525780 Add makefile for linux 2021-09-24 16:17:20 +02:00
drmortalwombat 5c3ff47690 Indirect address, y optimisation for short loops 2021-09-23 17:14:02 +02:00
drmortalwombat 0681c899ae Bump file version 2021-09-23 08:28:53 +02:00
drmortalwombat 123da8c155 Add charmap pragma 2021-09-23 08:26:46 +02:00
drmortalwombat 4ca77ba41a Byte operand sizes fixes and optimizations 2021-09-22 22:49:52 +02:00
drmortalwombat 2cd9a55880 Fix various bugs related to byte size operands 2021-09-22 15:46:20 +02:00
drmortalwombat 9ec846c506 Load/Store constant offset propagation across basic blocks 2021-09-21 22:49:04 +02:00
drmortalwombat 603b62b9d3 Optimize native comparison against zero 2021-09-21 22:44:00 +02:00
drmortalwombat eebc39e53a Fix return type coercion, region based linker 2021-09-21 20:44:19 +02:00
drmortalwombat 3f5f3ee7ea Filenames now full 2021-09-21 15:08:05 +02:00