Commit Graph

827 Commits

Author SHA1 Message Date
drmortalwombat bd3c7571c5 bump version number 2023-08-19 21:57:44 +02:00
drmortalwombat 8dc37e9ab2 Mangling function types in template expansion 2023-08-18 23:03:15 +02:00
drmortalwombat 3a9cd85072 Optimize simple const ref to value in functions 2023-08-18 13:13:39 +02:00
drmortalwombat 0440f0ef19 More template support 2023-08-17 14:55:43 +02:00
drmortalwombat b7daafcac8 Add list and iterators to opp 2023-08-16 16:16:04 +02:00
drmortalwombat 952d087a2b Add using with list of names 2023-08-15 13:16:39 +02:00
drmortalwombat 69b46c4b7b Fix namespaces for templates 2023-08-15 12:46:57 +02:00
drmortalwombat 50cc2afb52 Add template algorithm sort 2023-08-15 11:05:52 +02:00
drmortalwombat ae2fbb6256 Global object initialization 2023-08-14 18:09:35 +02:00
drmortalwombat 80426d974c Add RValue Reference 2023-08-13 20:53:39 +02:00
drmortalwombat 61f8b68c2f Fix duplicate member cons/destructor if class included from multiple cpp 2023-08-13 11:00:02 +02:00
drmortalwombat 9d6691cf91 Copy constructor and destruct for scalar types 2023-08-12 18:19:46 +02:00
drmortalwombat cb5451b9b9 Automatic function template expansion 2023-08-12 15:25:30 +02:00
drmortalwombat 5b7334bb17 Add placement new and destructor call 2023-08-11 19:04:13 +02:00
drmortalwombat fef6bc29bc Add templates 2023-08-11 07:41:27 +02:00
drmortalwombat 07969d1fa6 Fix type coercion from empty string pointer to 0 2023-08-08 17:33:47 +02:00
drmortalwombat b7630450f1 Improve C++ compliance 2023-08-08 14:19:08 +02:00
drmortalwombat c46870ec10 bump version number 2023-08-07 17:50:17 +02:00
drmortalwombat 0f31a4e8c6 Add error for overlapping data sections 2023-08-07 16:06:34 +02:00
drmortalwombat 0d95a74813 Add cartridge bank lookup for lables in asm file 2023-08-07 15:50:01 +02:00
drmortalwombat 1407d9d948 Add function default parameters 2023-08-06 15:21:11 +02:00
drmortalwombat 8161ff88a8 Fix crash on infinite macro expansion 2023-08-06 11:51:11 +02:00
drmortalwombat 1931f25475 Add struct member initializer 2023-08-05 21:52:44 +02:00
drmortalwombat 58ab6818ed Add alignment for functions 2023-08-03 13:34:23 +02:00
drmortalwombat eac12e4559 Fix cpp compare of two derived pointers 2023-08-02 22:29:10 +02:00
drmortalwombat f3eb6e19cf Fix linux build 2023-08-02 16:52:45 +02:00
drmortalwombat ec15336174 Fix stack allocation with false recursion with function pointers 2023-08-01 22:17:55 +02:00
drmortalwombat b1a42e5ecf Fix linux build 2023-08-01 15:50:11 +02:00
drmortalwombat 19ab2b8d38 Fix linux build 2023-08-01 13:46:30 +02:00
drmortalwombat fa218d8dd7 Fix adc to inx with wrong address mode 2023-07-31 22:53:55 +02:00
drmortalwombat 34c0df228b Bump version number 2023-07-30 14:46:32 +02:00
drmortalwombat 8a283cc43b Fix register conflict in short index forwarding 2023-07-30 13:57:15 +02:00
drmortalwombat e013142cb1 Cross block register optimizations 2023-07-30 11:24:19 +02:00
drmortalwombat 0b1d42b7d5 Expand global aliasing analysis 2023-07-29 22:15:00 +02:00
drmortalwombat ae21bbac09 Bump version number 2023-07-28 18:59:12 +02:00
drmortalwombat 3664645393 Merge branch 'main' of https://github.com/drmortalwombat/oscar64 2023-07-28 18:51:34 +02:00
drmortalwombat 02e7f15810 Improve outer loop optimizations 2023-07-28 18:51:29 +02:00
Stefan 312265c395
Support of more platforms
See http://aminet.net/package/dev/cross/oscar64
2023-07-27 13:00:07 +02:00
drmortalwombat 4c5a9c3b70 Fix over eager register promotion 2023-07-26 22:48:15 +02:00
drmortalwombat 2b9ae73795 Bump version number 2023-07-26 19:46:07 +02:00
drmortalwombat 551316fe59 Fix autotest assert 2023-07-26 18:02:22 +02:00
drmortalwombat d8f31b170d Mangle constructor name 2023-07-25 14:37:00 +02:00
drmortalwombat 07323b12f9 Static init of structs with base classes 2023-07-25 11:19:00 +02:00
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 6cfa24b8ad Fix over eager constant propagation 2023-07-24 19:03:34 +02:00
drmortalwombat b8a993aa34 Bump version number 2023-07-23 18:23:11 +02:00
drmortalwombat 893aa7effa Add late inlining step 2023-07-23 17:41:56 +02:00
drmortalwombat 33b7bee047 Fastcall for virtual functions 2023-07-23 13:51:24 +02:00
drmortalwombat 9b2d90ec58 Add autotest for string stream 2023-07-23 11:19:26 +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 66631c915b Prefix and inc operator overload 2023-07-09 10:52:11 +02:00
drmortalwombat 0bab98ccc6 Optimize short signed table access 2023-07-08 22:20:42 +02:00
drmortalwombat a46cf3a0d3 Add virtual destructor 2023-07-08 22:04:55 +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 0b79d44345 Fix location of error message of duplicate function definition 2023-07-03 22:39:24 +02:00
drmortalwombat 1e9e426758 Fix wrong enum type check 2023-07-03 16:44:47 +02:00
drmortalwombat 6c7347310b Init const copy construction 2023-07-02 20:48:46 +02:00
drmortalwombat ef0a79b8f0 Index operator overload 2023-07-02 18:21:40 +02:00
drmortalwombat 7f6cf654f6 Implemented new and delete operators 2023-07-02 16:34:17 +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 08adc7f1bd Bump version number 2023-07-01 10:06:08 +02:00
drmortalwombat c8fbc15c37 Copy propagation on struct return of functionr result 2023-07-01 09:27:03 +02:00
drmortalwombat 1b73df7e25 const member functions 2023-06-29 18:11:11 +02:00
drmortalwombat fa9aa9c2bb Visibility in base classes 2023-06-29 16:34:38 +02:00
drmortalwombat 3d6b60c9f4 Implement base class constructors 2023-06-28 22:14:29 +02:00
drmortalwombat 478f93922d Error on pointer/integer compare 2023-06-27 18:16:13 +02:00
drmortalwombat a41c3d445b Add class, public, private and protected keywords 2023-06-27 17:18:12 +02:00
drmortalwombat 63ebf6aa7c strlen optimization 2023-06-27 15:34:13 +02:00
drmortalwombat 8f39d736d5 Fixing member functions with includes 2023-06-27 08:12:20 +02:00
drmortalwombat 0b1b4a7d9b Array constructors 2023-06-25 22:24:13 +02:00
drmortalwombat 0f67f7150f Fix linux build 2023-06-25 16:16:26 +02:00
drmortalwombat 6b753c1418 Destructor tracking of temporary variables 2023-06-25 14:25:29 +02:00
drmortalwombat 56740b630d Member constructor and destructor 2023-06-22 19:17:45 +02:00
drmortalwombat a854133f8e Fix over eager global address progpagation 2023-06-22 14:04:18 +02:00
drmortalwombat 04eeedb0b9 Object destruction on break, continue and return 2023-06-21 22:30:28 +02:00
drmortalwombat 9bcec5bf17 Destructors when leaving scopes the normal way 2023-06-21 22:07:00 +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 f72048383a Access to member variables in member functions 2023-06-18 16:37:53 +02:00
drmortalwombat 9e92c2863a Add member functions in cpp mode 2023-06-18 14:41:23 +02:00
drmortalwombat 37416a61cb Add struct inheritance in cpp mode 2023-06-18 10:20:50 +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 fd391690b9 Add .cpp mode and namespace/using 2023-06-17 15:08:03 +02:00
drmortalwombat 433270f90f Fix global analyzer not following recursive structs 2023-06-16 16:29:08 +02:00
drmortalwombat 0f182d2d6d Fix over eager function parameter optimiztion 2023-06-16 15:21:30 +02:00
drmortalwombat c300f6c364 Bump version number 2023-06-14 17:19:48 +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 72687b7581 Add compound literals 2023-06-10 15:17:57 +02:00
drmortalwombat ab9ae6bf0e Fix error in intermediate code peephole optimizer 2023-06-09 21:21:35 +02:00
drmortalwombat 404e9ad998 Bump version number 2023-06-08 20:43:37 +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 373811f2bb Report error if void result used in condition 2023-06-03 18:23:35 +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 9175257bbc Fix function return source position with implicit return 2023-05-28 16:12:12 +02:00
drmortalwombat d6faefb5fc Propagate static stack usage through recursions 2023-05-28 14:30:46 +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 d58e74e19a Bump version number 2023-05-19 22:49:54 +02:00
drmortalwombat 2ac276458a Optimize loop invariants in single entry/exit loops 2023-05-19 21:25:29 +02:00
drmortalwombat f8d69f7945 Add "enter" and "leave" attributes to dbj for local variables 2023-05-17 18:27:09 +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 30c602d468 Fix missing enums in dbj files 2023-05-11 09:39:00 +02:00
drmortalwombat a9651a4f2e Optimize combining bits using shift 2023-05-07 20:55:35 +02:00
drmortalwombat 7b16d2c795 Bump version number 2023-05-07 18:03:08 +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 30b3ed610e Keep unused variable stores if optimization is turned off 2023-05-01 17:10:27 +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 2d2d030145 Fix dbj "member" name having a space 2023-04-16 14:51:35 +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 bb00b5af12 Add more generic cartridge support 2023-04-14 18:40:27 +02:00
drmortalwombat 6308f22f25 Fix warnings 2023-04-12 19:02:27 +02:00
drmortalwombat 4c8d7a08d0 Do not add optimized away local variables to dbj file 2023-04-11 20:45:47 +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 373ef6ca85 Add local variables to .dbj files 2023-04-09 10:05:01 +02:00
drmortalwombat 85df217c50 Add warning for const integer truncation 2023-04-09 09:45:13 +02:00
drmortalwombat d5c347da9b Add vera sprite image 2023-04-07 15:47:08 +02:00
drmortalwombat 6ff2038b0e Add commander X16 VERA library 2023-04-06 21:53:47 +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