1
0
mirror of https://gitlab.com/camelot/kickc.git synced 2026-01-22 18:16:12 +00:00

Commit Graph

  • c9720722ad Working on #372 varcall. Fixed problem with returning a struct by value. jespergravgaard 2023-04-01 19:30:19 +02:00
  • 7e5b2caa37 Optimized logic for speed Flight_Control 2023-04-01 07:00:58 +02:00
  • fb77d7629d - Optimized the speed of the compilation by reducing the zp coalesce to only zeropage allocated registers. - All mem[x] type allocated memory or registers is ignored. Flight_Control 2023-03-29 07:00:14 +02:00
  • 4706611564 - Mem[x] parameters in a banked function are always allocated in main memory. - Mem[x] return value(s) in banked functions are always allocated in main memory. - Mem[x] intermediate value(s) in banked functions are always placed in the designated data segment. Flight_Control 2023-03-27 21:42:52 +02:00
  • b650ba99a9 - Fix far call kernal servicing address! It was wrong! Now it's fixed! Flight_Control 2023-03-26 18:31:47 +02:00
  • 2513e59266 - Inline code can never be banked. Flight_Control 2023-03-26 18:30:53 +02:00
  • f81c5ce040 Adding the fix code segment in far call bank. Added the currentBankLocation to the procedure definition. Flight_Control 2023-03-26 18:30:09 +02:00
  • 944fbd3021 - removed gen files Flight_Control 2023-03-26 10:30:23 +02:00
  • 19b8de78a4 Merge commit 'db49ca6aabe96f0ca9ec355f33a4fadf33324f93' into far-call-isolated Flight_Control 2023-03-26 09:52:14 +02:00
  • 7098b28cb2 Merge branch 'error-handling' into 'master' Jesper Balman Gravgaard 2023-02-18 18:48:24 +00:00
  • addfe05454 Merge branch 'fix-procedure-code-segment-updates' into 'master' Jesper Balman Gravgaard 2023-02-18 18:47:36 +00:00
  • 5fefeac7b6 Fixes functions declared in header files not assigned the correct code segment. So the declarations of the functions receive also the currentCodeSegment, but only when the function is defined, the currentCodeSegment is to be assigned to the function (procedure!). During declaration of functions the code segment is likely Code ... Flight_Control 2022-11-21 20:11:25 +01:00
  • db49ca6aab Major changes: Flight_Control 2022-11-21 18:17:35 +01:00
  • 1a63d437a0 - Refactored far call logic during parsing. The pragmaFarSegs hash table has been removed from the Pass0GenerateStatementSequence. Instead, a currentFarSegment is controlling the #pragma logic. - Refactored pragmaCodeSegs HashMap, which has been removed from Pass0GenerateStatementSequence and moved to Program. It controls which code segment have been defined, and a validation is implemented in the far_seg pragmas. - Refactored __far() to use the code segments, in analogy to far_seg pragmas. - Refactored Procedure, which implements functions to use the FarSegment to decide on far declaration and far bank retrieval. - refactored CallingConvention. Removed earlier quick implementation of bankFar variable as a local property, and declaredFar in the Procedure class. Now everyting is controlled through the farSegment. - Refactored Procedure, the removal of FAR_CALL calling convention. It is wrong to implement FAR_CALL calling convention, because far and near calls can be stack calls, phi calls and even a varcall can be near of far. - Removed the Pass1ProcedureFar because far and near implementation is not defined in statement level, it is defined on procedure level. But I've kept Pass1ProcedureFar to suppor the logic for inline prepare, execute, finalize routines during further implementation. - Refactored directive FAR to match the directive far_seg() structure. - Refactored complete logic during Pass4CodeGeneration to process statement call fragment generation to decide on near or far calls within the logic, taking into account the calling convention used. - Added new fragments call_far[platform]_prepare.asm, call_far[platform]_execute.asm, call_far[platform]_finalize.asm and deleted call_far[platform]_entry.asm, call_far[platform]_exit.asm - Renamed pragmas far_seg and near_seg to simply far and near respectively. Updated test cases with this change. - Added test cases. Flight_Control 2022-11-20 09:56:10 +01:00
  • d19c005d79 Fine tune of the phi-far-4 example to clearly illustrate #pragma near_seg utilization. Flight_Control 2022-11-19 08:19:18 +01:00
  • d7a135aaee Implementation of #pragma near_seg without prameters. There was a change needed to update the parameter parsing main algorithm, to make parameters optional instead of mandatory. Flight_Control 2022-11-19 08:06:52 +01:00
  • 1ef785a254 Parsing implementation of #pragma far_seg(segment, bank, call_prepare, call_execute, call_finalize) with variable parameters, other option is: #pragma far_seg(segment, bank) Flight_Control 2022-11-19 07:45:07 +01:00
  • 2f2028f3a1 far calls Flight_Control 2022-11-17 07:43:08 +01:00
  • 379a3c1999 Catching a RunTimeException only when there is no UnknownFragmentException ... and throw either - Compile Error - UnknownFragmentException (passing through). Flight_Control 2022-11-16 22:30:37 +01:00
  • 8801a3e5e2 Fixing bugs: - far calls are now ALL iterated and flagged with a bank! - procedure objects are taken as the base for far call asm generation, not the call objects anymore (too tricky). But i have kept the call objects to be also updated with the bank for any reference later! Flight_Control 2022-11-16 22:17:48 +01:00
  • d7405d8669 Fixing bugs: - far calls are now ALL iterated and flagged with a bank! - procedure objects are taken as the base for far call asm generation, not the call objects anymore (too tricky). But i have kept the call objects to be also updated with the bank for any reference later! Flight_Control 2022-11-16 22:17:29 +01:00
  • f948ce0571 far call test cases. Sven Van de Velde 2022-11-16 17:41:25 +01:00
  • 4a4d6f72d0 far calls for __stackcall calling convention functions. Sven Van de Velde 2022-11-16 17:11:18 +01:00
  • 828e38a8b3 far calls Flight_Control 2022-11-15 17:32:04 +01:00
  • 152832fd4e Merge branch '807-fix-multiplication-bug' into 'master' Jesper Balman Gravgaard 2022-11-13 10:23:23 +00:00
  • 63932ef555 Closes #807 bug when rewriting multiplication with power of 2, where the constant is the left operand. 807-fix-multiplication-bug jespergravgaard 2022-11-13 11:11:27 +01:00
  • 95aa5ec6c4 Fixed problem where the compiler sometimes deletes a resource file when called. Closes #775 807-bug-in-power-of-2-multiplication-optimization jespergravgaard 2022-06-19 09:14:21 +02:00
  • 13a7063df0 Added some fragments. jespergravgaard 2022-05-12 18:27:55 +02:00
  • e15c02839d Added some fragments. jespergravgaard 2022-04-02 10:24:24 +02:00
  • 03150c83c3 Working on ASM fragment template interface and implementation. Currently synthesizing even simple fragments uses up all memory. 742-typed-signature jespergravgaard 2022-04-02 08:27:34 +02:00
  • 7234060c41 Working on ASM fragment template interface and implementation. jespergravgaard 2022-03-29 01:32:47 +02:00
  • 7ba1e7830d refactoring towards ASM fragment interfaces. jespergravgaard 2022-03-27 10:24:41 +02:00
  • 8a22531a1f added AdmFragmentTemplate interface jespergravgaard 2022-03-26 14:23:44 +01:00
  • b8aba3d0b0 improved Asm Fragment system UML jespergravgaard 2022-03-20 12:45:01 +01:00
  • 81f50c731a Asm Fragment UML jespergravgaard 2022-03-20 12:25:36 +01:00
  • 69c76fdcb7 Merged newest master into fragment branch. jespergravgaard 2022-03-05 10:27:32 +01:00
  • d4b68806f8 Added PoC script for creating executable on MacOs using jpackage. #757 jespergravgaard 2022-02-20 21:14:26 +01:00
  • d9d7f2cf03 touching fragment cache. 0.8.6 jespergravgaard 2022-02-18 10:46:49 +01:00
  • 46f66c5499 Merge remote-tracking branch 'origin/master' jespergravgaard 2022-02-18 09:18:17 +01:00
  • c7550fbd37 Updated version jespergravgaard 2022-02-18 09:18:08 +01:00
  • 5463e6022f Updated version 770-update-45gs02-to-reflect-changed-z-indexing-when-doing-ldq jespergravgaard 2022-02-18 09:15:44 +01:00
  • 4c23b4ad9f Merge branch '770-update-45gs02-to-reflect-changed-z-indexing-when-doing-ldq' into 'master' Jesper Balman Gravgaard 2022-02-13 21:48:03 +00:00
  • e867c3a1d0 Updated LDQ z-indexing. jespergravgaard 2022-02-13 22:35:08 +01:00
  • 230776a2da Merge branch '766-add-huc6280-tst-instruction-addressing-modes' into 'master' Jesper Balman Gravgaard 2022-02-13 11:05:44 +00:00
  • dec47ab811 merged master. 766-add-huc6280-tst-instruction-addressing-modes jespergravgaard 2022-02-13 11:52:34 +01:00
  • 2791a0e099 Finished implementing support for huc6280 transfer instructions with abs,abs,abs addressing mode. jespergravgaard 2022-02-13 11:49:02 +01:00
  • 49abe6cdb7 Merge branch '766-add-huc6280-tst-instruction-addressing-modes' into 'master' Jesper Balman Gravgaard 2022-02-12 07:22:16 +00:00
  • 42e31f6e69 Finished implementing support for huc6280 TST #imm.zp / #imm,abs / #imm,zp,x / #imm,abs,x. jespergravgaard 2022-02-12 07:35:59 +01:00
  • ad48dfb7cf fixed test. jespergravgaard 2022-02-10 21:16:39 +01:00
  • 9c28ee4615 Made immediate word and relative word addressing modes explicit. Improved opcode-guesser to include search for these modes. jespergravgaard 2022-02-09 07:14:19 +01:00
  • 0b4a53ae12 Fixed new addressing modes. jespergravgaard 2022-02-04 07:06:02 +01:00
  • 34d258c3c5 Merge branch '767-problem-with-z-register-on-cpu-huc6280' into 'master' Jesper Balman Gravgaard 2022-02-04 05:59:13 +00:00
  • 48ed6891aa Removed Z register from huc6280 767-problem-with-z-register-on-cpu-huc6280 jespergravgaard 2022-02-04 06:46:25 +01:00
  • 517b2af6d5 Added support for CPU HUC6280. jespergravgaard 2022-01-30 21:41:50 +01:00
  • ec3120fc1d Merge branch 'jespergravgaard-master-patch-82001' into 'master' Jesper Balman Gravgaard 2022-01-24 08:26:29 +00:00
  • 66205f3a99 Fixed mkdir problem. jespergravgaard-master-patch-82001 Jesper Balman Gravgaard 2022-01-24 08:19:42 +00:00
  • 0685e974db Merge branch '758-add-support-for-cpu-huc6280' into 'master' Jesper Balman Gravgaard 2022-01-24 00:17:33 +00:00
  • 77d21270fb Added support for CPU HUC6280. 758-add-support-for-cpu-huc6280 jespergravgaard 2022-01-24 01:04:31 +01:00
  • 7b06467064 collapsed build&test. fixed doxygen. jespergravgaard 2022-01-23 23:41:54 +01:00
  • d9aca64c45 Merge branch '761-improve-gitlab-pipeline' into 'master' Jesper Balman Gravgaard 2022-01-23 21:51:48 +00:00
  • c9284e7ede moved fragment cache to target folder. generated during test stage. 761-improve-gitlab-pipeline jespergravgaard 2022-01-23 22:31:55 +01:00
  • c9ec085ad2 testing with ASM cache jespergravgaard 2022-01-23 21:30:53 +01:00
  • 1ec22515e1 pipeline work-in-progress jespergravgaard 2022-01-23 21:24:59 +01:00
  • 5c8aec6d9b pipeline work-in-progress jespergravgaard 2022-01-23 21:07:44 +01:00
  • 00b6414146 pipeline work-in-progress jespergravgaard 2022-01-23 20:55:21 +01:00
  • bd55231f6f pipeline work-in-progress jespergravgaard 2022-01-23 20:50:27 +01:00
  • 14f3445669 pipeline work-in-progress jespergravgaard 2022-01-23 20:44:24 +01:00
  • d44a56fa77 Merge branch 'IcePic-master-patch-13431' into 'master' Jesper Balman Gravgaard 2022-01-23 18:49:55 +00:00
  • 8246784a54 ignoring kickc.iml jespergravgaard 2022-01-22 17:34:25 +01:00
  • 4d521217dd Postponed zeropage overflow to main memory until the final allocation (after uplift and optimization). Closes #753 jespergravgaard 2022-01-09 11:04:24 +01:00
  • b446d4d64b added missing fragments. closes #751 jespergravgaard 2022-01-08 13:50:11 +01:00
  • 514171a803 added missing fragments. closes #750 jespergravgaard 2022-01-08 13:44:39 +01:00
  • 46f6690b6d added missing fragments. closes #749 jespergravgaard 2022-01-08 13:41:11 +01:00
  • c70a44edc8 added missing fragments. #749 jespergravgaard 2022-01-08 13:33:43 +01:00
  • 76d5ad3f44 added missing fragment. jespergravgaard 2022-01-08 13:14:27 +01:00
  • 62a1f1cec4 Add function to clear pixels in c64-bitmap.c. Janne Johansson 2022-01-06 18:04:34 +00:00
  • bd3fad6bb1 Better code quality jespergravgaard 2022-01-03 21:26:46 +01:00
  • cac9e8ad7c Fixed problem where mixing stack calls and phi calls mixes up variable versions. Closes #745 jespergravgaard 2022-01-02 22:06:22 +01:00
  • 991dbafc98 added test demonstrating problem with optimization. jespergravgaard 2022-01-02 18:01:10 +01:00
  • 6ddcb9e358 Added commandline option to disable long branch fixing. Closes #744 jespergravgaard 2022-01-02 11:51:16 +01:00
  • 1662d491a3 added missing fragment jespergravgaard 2022-01-02 11:22:44 +01:00
  • 6eef019511 added thorough fragments. #742 jespergravgaard 2021-12-31 00:11:35 +01:00
  • 86c43f76ed optimized synthesizer memory usage. #742 jespergravgaard 2021-12-30 23:22:21 +01:00
  • 385794ae99 Added javadoc to #pragmas. jespergravgaard 2021-12-30 14:29:58 +01:00
  • 7c77be79bd #742 Working on typed ASM fragment signature in synthesis. jespergravgaard 2021-12-30 13:01:32 +01:00
  • 9652931592 Added missing operators jespergravgaard 2021-12-30 12:58:12 +01:00
  • 1ab03df908 Moved signature parser to source. jespergravgaard 2021-12-29 17:47:52 +01:00
  • 08d935877c Implemented an ASM fragment signature parser. jespergravgaard 2021-12-29 17:39:02 +01:00
  • 24049a12c1 separated synthesis from fragment tempaltes. jespergravgaard 2021-12-28 20:39:51 +01:00
  • 36936efe80 improved javadoc jespergravgaard 2021-12-28 17:52:59 +01:00
  • c36526194a added support for multiple sub-fragments in synthesis rules. jespergravgaard 2021-12-28 17:29:55 +01:00
  • 8a627325fc simplified synthesis rules for pointer treated like unsigned int. jespergravgaard 2021-12-28 16:32:40 +01:00
  • 657537eb0d simplified synthesis rules for pointer treated like unsigned int. jespergravgaard 2021-12-28 16:21:38 +01:00
  • 4964a44660 turned fragment synthesis into interface. jespergravgaard 2021-12-28 14:41:00 +01:00
  • 8cf120b665 updated cache. jespergravgaard 2021-12-28 13:24:55 +01:00
  • 28e819dcbf Added fragment syntax helper file. jespergravgaard 2021-12-27 23:52:03 +01:00
  • 5b6465372b Added missing fragment for @CheekyBug jespergravgaard 2021-12-27 23:47:53 +01:00
  • 88bdd8c5a9 Removed more ALU subsystem. jespergravgaard 2021-12-27 09:14:27 +01:00
  • 9da2aca338 Removed more ALU subsystem. jespergravgaard 2021-12-27 08:32:21 +01:00
  • 40919842e2 Removed the ALU subsystem. It was providing too little value for the complexity. jespergravgaard 2021-12-27 01:16:04 +01:00