1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2024-12-30 15:31:17 +00:00

Commit Graph

  • ee45642927 Merge branch '#823-65C02-STZ-BRA' into 'master' Sven Van de Velde 2024-08-16 22:34:21 +0000
  • 6c71731e1d Merge branch 'master-libraries-merge-master' into 'master' Sven Van de Velde 2024-08-06 09:50:55 +0000
  • 1b2cfa6648 Merge branch 'fix-inline-function-asm-code-blocks-using-constants' into 'master' Sven Van de Velde 2024-08-04 21:51:54 +0000
  • ce803776e2 - Added missing reference files for libraries. Flight_Control 2024-08-03 14:15:02 +0200
  • bd8f2414a2 - Fixed STZ compilation issue. The issue was a missing fragment, that caused a path dump. The path dump on windows is different than when compiled in the deployment chain, which causes a ref mismatch. Needs to be further investigated! Flight_Control 2024-08-03 13:50:14 +0200
  • 32e5bca3c5 - Trying to get the reason of error displayed in the log on the deployment chain at origin. Flight_Control 2024-08-03 12:50:18 +0200
  • 17ae556440 - Trying to get the reason of error displayed in the log on the deployment chain at origin. Flight_Control 2024-08-03 12:33:32 +0200
  • 541fd50065 - Fixed issue with reference files. Flight_Control 2024-08-03 12:07:58 +0200
  • 4862971a2b - Adjusted kickc output with more information of the steps, to increase user friendliness. - Adjusted the path string output to standard linux, to ensure higher level of standardization in output. Flight_Control 2024-08-03 09:52:52 +0200
  • 957a92f0f6 - Removing support for the STZ instruction for the csg65ce02 CPU. Although the CPU has an STZ instruction, it serves a much richer purpose, but supports backward compatibility with the wsd65c02 cpu. The z register is initialized to zero at startup, achieving in this way the backward compatibility. So a 0 value cannot be assume for the STZ instruction in the csg65ce02 cpu. Flight_Control 2024-07-28 11:53:45 +0200
  • 1a067c1d38 - Trying to understand why it fails. The reference errors are printed on stderr instead of stdout. Flight_Control 2024-07-28 08:58:07 +0200
  • 25bd0f15ac - Implementing the BRA instruction for the wdc65c02 or the csg65ce02. - This BRA implementation has been tested with the Equinoxe game. It works wonderfully. - Test cases, also added back the ones that failed previously for an unknown reason. The diff of the ref files with the origin branch said that the files were different on CRLF. All the other files were identical. Flight_Control 2024-07-28 08:41:55 +0200
  • e12a957eec Merge remote-tracking branch 'origin/#823-65C02-STZ-BRA' into #823-65C02-STZ-BRA Flight_Control 2024-07-28 08:40:55 +0200
  • bd33f9b828 - Implementing the BRA instruction for the wdc65c02 or the csg65ce02. - This BRA implementation has been tested with the Equinoxe game. It works wonderfully. - Test cases, also added back the ones that failed previously for an unknown reason. The diff of the ref files with the origin branch said that the files were different on CRLF. All the other files were identical. Flight_Control 2024-07-28 08:36:51 +0200
  • 306b6ea4af - Implementing the BRA instruction for the wdc65c02 or the csg65ce02. - This BRA implementation has been tested with the Equinoxe game. It works wonderfully. - Test cases, also added back the ones that failed previously for an unknown reason. The diff of the ref files with the origin branch said that the files were different on CRLF. All the other files were identical. Flight_Control 2024-07-28 08:36:51 +0200
  • 56ddf63eff - Removed new files with issues and tests. - Will add them again later. Flight_Control 2024-07-28 04:39:47 +0200
  • 1d8ff61467 - Removed underscore. Maybe that was the issue. Flight_Control 2024-07-27 18:07:18 +0200
  • 9b3b635b1f Merge remote-tracking branch 'origin/#823-65C02-STZ-BRA' into #823-65C02-STZ-BRA Flight_Control 2024-07-27 17:30:20 +0200
  • 13bb1f2895 Merge remote-tracking branch 'origin/#823-65C02-STZ-BRA' into #823-65C02-STZ-BRA Flight_Control 2024-07-27 17:26:48 +0200
  • 12f9694625 Merge remote-tracking branch 'origin/#823-65C02-STZ-BRA' into #823-65C02-STZ-BRA Flight_Control 2024-07-27 17:26:48 +0200
  • 321ad5b2e2 - New mechanism to support the STZ instruction for the WDC65C02 and the CSG65CE02. - Fragment signature adds a =0 instead of a cn for assignment instructions that need to be set to 0 value. - And a lot of new fragments for the CPUs. - Retested with test cases. - Improved test case program. - Retested with Equinoxe game (in progress) for CX16 resulting in a lot of new fragment requirements. Flight_Control 2024-07-27 16:14:18 +0200
  • c078c0ecbf - handling the -fragment option better for the library implementation. Flight_Control 2024-07-27 16:33:35 +0200
  • f5528eef7d - New mechanism to support the STZ instruction for the WDC65C02 and the CSG65CE02. - Fragment signature adds a =0 instead of a cn for assignment instructions that need to be set to 0 value. - And a lot of new fragments for the CPUs. - Retested with test cases. - Improved test case program. - Retested with Equinoxe game (in progress) for CX16 resulting in a lot of new fragment requirements. Flight_Control 2024-07-27 16:14:18 +0200
  • 47c83fc75f - Added fragments to initialize xx, yy and zz to 0. Flight_Control 2024-07-26 13:20:51 +0200
  • c322bbf2d8 - STZ instruction implemented for for byte, word and dword values signed and unsigned in zero-page and mem. - The new fragment signature keyword c0 represents a "0" constant value but with a typed and signed signature, in analogy with the whole signature system. - Implemented for the csg65ce02 and the wdc65c02 CPUs. - Added test case. Flight_Control 2024-07-26 12:35:22 +0200
  • fa33d09d30 Merge branch '#833-correct-data-segment-for-string-constants' into 'master' Sven Van de Velde 2024-07-26 06:38:13 +0000
  • c38f176a20 Merge branch '#836-volatile-problem' into 'master' Sven Van de Velde 2024-07-26 06:35:05 +0000
  • 81107fc123 - Fixing the unwanted elimination of initialized global variables declared as volatile by the optimizer. See issue #836. Flight_Control 2024-07-26 08:15:08 +0200
  • 976d2ec1b3 Merge branch 'segmented-string-consolidation' into 'master' Sven Van de Velde 2024-07-25 13:12:44 +0000
  • d9ad52bf2b Merge branch 'master-mermaid' into 'master' Sven Van de Velde 2024-07-25 13:12:26 +0000
  • ca1bf7e255 Merge branch 'master' into 'master' Sven Van de Velde 2024-07-25 13:07:24 +0000
  • 7ca51b59fc - Reference file updates to make deployment working. Flight_Control 2024-07-25 15:06:20 +0200
  • 2697761df8 - Updates on the manual and set the baseline for other manual updates in other branches. Flight_Control 2024-07-25 10:26:19 +0200
  • f0034b6fc7 Merge branch 'master-fast-coalesce' into 'master' Sven Van de Velde 2024-07-22 08:46:44 +0000
  • dc6e440415 - Fixed issue where now exported library functions are not removed by the optimizer. Especially the _start functions, as these are essential for the library to initialize by the main program. - Header file stdio.h defines printf.h and sprintf.h header files, according C99. - Fixed issue with time stamp check of .c with corresponding .o file for batch compiles. - Preparing for coalesce issue resolvement of main memory cross procedure coalesce. - Fixed one important .asm fragment defect, building my CX16 game. - All test cases recompiled and retested. Updated references. - Tested the print-lib library test case in detail manually. Fixed the issue with the deploy_model not properly used, and also fixed issue with stack model. - Added test case for cross procedure coalesce for testing the library coalesce issue later on. - Fixed issue using the #pragma lib_export(variable) for global variable exports. Now it works again. This is necessary because there should be no lib_export used on KickC out-of-the-box .c sources contained in the include and lib folders. Flight_Control 2024-07-22 10:33:02 +0200
  • 994ebcadd3 Added two missing fragments master Jesper Gravgaard 2024-07-22 08:55:08 +0200
  • d9fa81d48f - Fixed a mistake I did with the approach for hardcoded zeropage addresses within the linker. Fixed now. - Also made the error message more clear, for stack far calls in banked mode not being supported. Flight_Control 2024-07-11 15:55:03 +0200
  • b3858b2adb - Fixed bug with zp allocation. - Fixing path formatting issue in library header file verbose. - New test case 20. - Fixed issue with hardcoded zero-page duplicate allocation. - Only adding called procedures when the result is not null. - Fixed issue with calling convention far call for varcall calling protocol. - Updated all test cases. Verified manually the most important ones. Flight_Control 2024-07-11 10:27:24 +0200
  • 026c1050cf - Fixed bug with zp allocation. - Fixing path formatting issue in library header file verbose. - New test case 20. - Fixed issue with hardcoded zero-page duplicate allocation. - Only adding called procedures when the result is not null. - Fixed issue with calling convention far call for varcall calling protocol. Flight_Control 2024-07-11 05:23:47 +0200
  • c6c39a76af - Improved the way how single library compiles are done. No more prg generated for single library compiles or where the target (first c file in the batch) is a library. - Added test case 4 that now tests the above for a correct compile and link. - Added test case 5 to test library re-use in various scenarios. - Improved the segment definition for libraries, now by default only code and data .segmentdef are defined, when the output is a library and there is no custom link script defined or included. So the default linker script is not used for libraries. - Tested again the inclusion of C source library constructor functions includes in the exported list. It works. Flight_Control 2024-07-10 09:11:00 +0200
  • 1684c9fc96 - Fixed a fragment issue, moving a word into a long through stack pulling. Flight_Control 2024-07-07 07:40:33 +0200
  • 175eeec43c - Fixed issue in library test automation. Now I delete the .o file before a new compile is done. The .o of the previous compile was skipping the current compile. - Logging output compare issues to err instead of out. Flight_Control 2024-07-07 07:19:19 +0200
  • 5601962345 - Libraries test cases finished! - Libraries test automation finished! Check the TestLibraries.java. Flight_Control 2024-07-06 10:14:19 +0200
  • bf55e107c4 - Manual further development. - Further documentation of the test cases. - Removed obscolete and internal library test cases. I keep them in a separate library. Flight_Control 2024-07-05 16:25:35 +0200
  • 6d11d8b8fa - Manual further development. Flight_Control 2024-07-05 08:25:59 +0200
  • 65bb8198a6 - Documented and finished more tests. Flight_Control 2024-07-04 23:02:39 +0200
  • 8b3e1f531d - Fixing a search issue in the linker. If the file including the path does not find the object file for linkage, the search is done with the pure file name. - Documented and finished more tests. - Now all test cases should pass. Flight_Control 2024-07-04 22:46:53 +0200
  • 11033db3c7 - Removed the .asm library term. Just kept library. - Replaced asm_library with lib_configure - Replaced adm_import with lib_import - Replaced asm_export with lib_export - lib_export now also supports calling conventions as a parameter. The scope of the calling convension is within the #pragma lib_export definition. The current calling convention is not influenced. - Did a lot of renames in texts, comments, strings. Still need to fix the variable names in the code. That is the next step. - Worked further on test cases. - Fixed the linker as such that when searching, it uses the filename without path. (bugfix). Flight_Control 2024-07-04 18:35:06 +0200
  • 042308c4d6 Merge branch 'refs/heads/master-manual' into master-libraries Flight_Control 2024-07-04 11:26:33 +0200
  • 3cfe837d2c -Updated the manual with the new functions and libraries. Flight_Control 2024-07-04 11:23:00 +0200
  • b83150c8dd - Further creation of the test cases. Flight_Control 2024-07-03 17:54:30 +0200
  • fee442fecc - Further creation of the test cases. Flight_Control 2024-07-03 15:52:44 +0200
  • 24e7c701af - Fixed coalesce for memory based variables. - Reworked further the code for procedures and libraries. Flight_Control 2024-07-03 13:27:57 +0200
  • 841cc3dd26 - Reworked the naming of procedure library configuration methods to it becomes more clear. - Added validations to ensure a proper library configuration is always set for procedures. Flight_Control 2024-07-03 11:29:32 +0200
  • 6c66020a93 - Removed any reference to Import and Export libraries from Scope. Flight_Control 2024-07-03 09:59:39 +0200
  • e0a2e6e476 - Library test cases - work in progress Flight_Control 2024-07-03 09:52:04 +0200
  • 63056e6c66 - Reworked the canCoalesce function to ensure faster performance! - Added more test cases on libraries + started with detailed funny test cases. - Started to build test cases using combinations zp-varcall, zp-stackcall, mem-varcall, mem-stackcall. - Reworked the canCoalesce function to ensure faster performance! Flight_Control 2024-07-02 16:17:11 +0200
  • a10d9ff513 Merge remote-tracking branch 'origin/master-libraries' into master-libraries Flight_Control 2024-07-02 12:27:44 +0200
  • 4eceaef4a9 - Added -vinclude option to log the file include sequence. - Fine-tuning of file path logs. Flight_Control 2024-07-02 11:54:48 +0200
  • dd9f019c1c - Added -vinclude option to log the file include sequence. - Fine-tuning of file path logs. Flight_Control 2024-07-02 11:54:48 +0200
  • 9d09ea2031 - Added meta-data sets (cache) to speed up performance of coalesce, avoiding loops and long-lasting searches. - Reworked the coalesce import and export logic, using the meta-data sets. - Reworked the coalesce of volatile, using the meta-data sets. - Added program to LiveRangeEquivalenceClass. Flight_Control 2024-07-02 11:41:23 +0200
  • 853836409e - Cleaned up the mistake i made earlier attaching import properties to registers. Import properties are attached to variables in equivalence classes, not to registers. Completely undone the import code within registers. - Added a test for equivalence that coalesce is only allowed if the registers are not imported. Otherwise reject any coalesce. Variables in the main program should not coalesce with imported variables. - Optimized the code for coalesce. - Did various optimizations of the library functions in the compiler model. Still need to do a through review! VariableBuilder now accepts the import and export compiler library, which is important for various further steps. Now these libraries are consistently propagated into variables using Build. The phi versions also inherit the library properties. - Changed the makefile option to -m and -make - Added some file parsing for the makefile. A # is a comment. Each file must end with a .c or a .o. - Added trace of the included files during compilation, which is necesssary because .h files include .c files! Things can get confusing. - Change _asm.h to .p. Changes .asm files of compilation results to .a files, not to confuse with the .asm file as a result of the compilation. - Added more test cases for libraries. - Removed #importonce when generating assembler during compilation in pass 4. - Removed #import sections when generating assembler during compilation in pass 4. - Ensure that all imported procedure variables are considered part of the liverange in PassNCalcLiveRangeVariables.java. Flight_Control 2024-07-01 21:04:17 +0200
  • 5672831a28 - Removed code to generate #importonce. Not needed anmore. - Documented code to generate stub code for assembler library code. - Removed the -A option, not needed anymore. The -L option specifies where .o files or .c files are searched to be included. - Removed all references from the code to asmLibDir Path. Flight_Control 2024-06-29 21:13:50 +0200
  • 36c0594b22 A target C source file compiled as a library generates one assembler library. Just one. - Replaced the AsmExportLibraries collection with an AsmExportLibrary singleton. - Fixed all references to support this. Flight_Control 2024-06-29 19:53:52 +0200
  • 48f477cde6 - Code cleanup of the linker code. Flight_Control 2024-06-29 18:03:25 +0200
  • b077385952 - Merge of the master remote branch of jesper kickc to the latest version. Flight_Control 2024-06-29 11:57:05 +0200
  • bd600591fd Merge branch 'refs/heads/master' into master-libraries-merge-master Flight_Control 2024-06-29 10:22:03 +0200
  • 3e1c7af552 Merge remote-tracking branch 'origin/master-libraries' into master-libraries Flight_Control 2024-06-29 09:36:43 +0200
  • 73b7986bf2 - Trying to fix the log consistency being kept with multiple root procedures. svenv 2024-06-29 08:32:31 +0200
  • 3adfa4c930 - Trying to fix the log consistency being kept with multiple root procedures. svenv 2024-06-29 08:32:31 +0200
  • 53e6b90480 -Updated logic, removing Set and HashSet usages to have some level of predictability. Flight_Control 2024-06-27 14:59:01 +0200
  • 23d08b8e55 - New ref file for irq-local-var-overlap.c Flight_Control 2024-06-26 22:01:01 +0200
  • 46c7539952 - All test cases passed. - Fixed error message test approach for linkage errors conflicting zero page addresses with hardcoded zero page variable addresses. - Fixed issue with a printf test case due to the rework of printf. Flight_Control 2024-06-26 21:30:25 +0200
  • f1cb668819 - All test cases passed. - Fixed error message test approach for linkage errors conflicting zero page addresses with hardcoded zero page variable addresses. - Fixed issue with a printf test case due to the rework of printf. Flight_Control 2024-06-26 21:28:53 +0200
  • 5a4f4c80dd Merge remote-tracking branch 'origin/master-libraries' into master-libraries Flight_Control 2024-06-26 18:30:18 +0200
  • b8bbe0756c - Ensures that all call graphs of all root procedures are used by the linker. (Interrupt handlers, other ...). Root procedures are those that aren't called by main or __start. These can also be interrupts or procedures called by pointer reference. - Further creation of the manual. - Correct handling of resource files. - Fine tuning of logging, to ensure that logs are comparable. - Added a lot of modified logic to the test automation process. - Added the linker - Compiler now works file per file. - Had to comment 2 categories of tests, because the requires a different approach. - Removed the hardcoding to capture cputc (it now works correctly as it should). - Fixed a couple of bugs. - Tested a lot of existing test cases manually and checked the results in C64. - There are still pending unresolved tests, due to conceptual issues because of different approach of linking (zeropage related). Flight_Control 2024-06-24 08:11:44 +0200
  • 086d943bed - Ensures that all call graphs of all root procedures are used by the linker. (Interrupt handlers, other ...). - Further creation of the manual. Flight_Control 2024-06-24 08:11:44 +0200
  • 8b7cbf7fbe - Fixed the issue of exported variables in conio. - C64 seems to have issues with address $0 and $1 (interrupt vector). I added those to the c64.tgt by default to be reserved. Flight_Control 2024-06-23 18:20:18 +0200
  • 9e5ed581ad - Added the logic to handle hardcoded zero page properly. Flight_Control 2024-06-23 12:47:40 +0200
  • 4b6dbbdb70 - Improved the _asm.h header file generation. Removed the (#number) from __zp(#number) Flight_Control 2024-06-23 10:07:22 +0200
  • 80722014d9 - Corrected the sort order of the linker logging procedure levels. Flight_Control 2024-06-23 09:53:25 +0200
  • 03a8365c1d - Code cleaning and code optimizations. - Documentation improvements. - Renamed classes to proper names. - Moved the Linker model to the kickc/linker folder. - Working on the manual. Flight_Control 2024-06-23 09:17:16 +0200
  • 03dd2cd90f - Code cleaning and code optimizations. Flight_Control 2024-06-22 22:35:20 +0200
  • 22237d7b43 - Documentation generated by chatgpt 4o. Flight_Control 2024-06-22 22:04:43 +0200
  • bced6d7735 -Restructured and removed LinkLibraryGlobals and LinkLibraryProcedures. Flight_Control 2024-06-22 21:36:03 +0200
  • ee64f0f994 - Added improved functionality to start the compilation batch in reverse, this to resolve dependencies. Flight_Control 2024-06-22 18:28:31 +0200
  • 009c351827 - IT IS WORKING !!! DIFFERENT LIBRARIES MERGE!!! - All libraries compiled with -Ocoalesce and -Ouplift=100 Flight_Control 2024-06-22 14:48:02 +0200
  • 24f985fa96 - first incomplete version of coalesced procedure zero page allocation. Flight_Control 2024-06-21 12:14:48 +0200
  • 7d8173ae23 - New logic to build a complete program from multiple c sources or o object files. - New option -makefile which contains the multiple c sources or object files. - Fixed some bugs in assembler generation. - Fixed the test programs (some); - Optimized the way how the callgraph is built. - Flight_Control 2024-06-17 17:09:58 +0200
  • 259d6a6783 - Completely solved the recursion and circular reference problem building the levelled procedure stack list. - Fixed bugs for the definition of asm library import procedures using directives. - Added a clear circular reference test case (18). Flight_Control 2024-06-16 15:38:12 +0200
  • c90d703b7d - Removed the #include logic for .asm file generation, and replaced it with dummary procedures with dummy variables. This works better! - Removed the dependency or requirement to have .asm files when using asm_libraries. Removed completely the .asm resource file dependencies for both export and import .asm libraries. - Improved the test programs. Added a program to demonstrate cross library dependencies for the linker. Flight_Control 2024-06-16 11:19:08 +0200
  • 11a191fba7 I've started to test how to move towards supporting more regular C. I want to improve the prototyping of library headers, being generated and remove the dependency if circular library references are being used in the code. This is a big topic. Flight_Control 2024-06-16 07:09:46 +0200
  • 774e4e3321 - Small fix, improvement of zeropage allocation. - Removed zeropage reservation from asm header generation for globals and procedures. Not needed anymore. Flight_Control 2024-06-15 16:57:39 +0200
  • 542dc113f8 - Working linker, but with all compile optimizations off! Flight_Control 2024-06-15 16:17:26 +0200
  • a77484f3be Preparing to rework the logic for linkage for internal procedures. Flight_Control 2024-06-12 15:47:10 +0200
  • 2f48f65cc9 - Fixed bugs. - There is still an issue with putc. Cannot resolve it (yet). Flight_Control 2024-06-10 20:24:45 +0200
  • d668e72069 - Completely reworked the assembler generation method to also allow the assembler optimizations to be performed on pass5 of the compile. Now the logic uses the flat asm chunk collection, and searches through the chunks for the relevant chunks to be added in the object files. Flight_Control 2024-06-10 19:33:39 +0200
  • cb23995fd1 First prototype to generate object .o files and use those .o files to create a linked .prg! Flight_Control 2024-06-09 09:15:51 +0200
  • 39b2ee0545 - Fixed bug with export library priority during asm generation. - Added #pragma once to sort out header files in vscode intellisense and syntax check. Flight_Control 2024-05-12 15:22:14 +0300
  • 9645d18e78 - Only compile full main programs to .prg. - Asm library C sources don't generate a .prg file. Flight_Control 2024-05-04 06:52:12 +0300