Commit Graph

  • e740641ae8
    fix: reserve return pointer and RBP on stack for user func bodies asm-gen-arrays Gleb Koval 2025-02-27 16:02:39 +00:00
  • 82a3d6068b
    fix: zero-out sub-32 bit expressions Gleb Koval 2025-02-27 15:46:01 +00:00
  • 4ffe85be91
    fix: variable-sized values, heap-allocated arrays (and printCharArray) Gleb Koval 2025-02-27 14:48:24 +00:00
  • 691d989b92
    refactor: extract Stack, proper register naming and sizes Gleb Koval 2025-02-27 01:49:22 +00:00
  • 52ed404a73
    feat: almost implemented arrays Alex Ling 2025-02-26 21:12:50 +00:00
  • 18534a64a6 feat: Zero registers via XOR Jonny 2025-02-26 21:39:23 +00:00
  • 09df7af2ab
    fix: reset scope after all branching Gleb Koval 2025-02-26 20:25:27 +00:00
  • 2cf18a47a8
    fix: only push one item to stack on comparisons Gleb Koval 2025-02-26 20:00:42 +00:00
  • 631f9ddca5 feat: (maybe) tail call optimisation Jonny 2025-02-26 19:49:10 +00:00
  • 4fb399a5e1
    feat: generate microWacc for printing booleans Gleb Koval 2025-02-26 19:14:12 +00:00
  • 16de964f74
    refactor: do not append epilogue to user functions since they all return anyway Gleb Koval 2025-02-26 18:45:03 +00:00
  • c748a34e4c
    feat: user functions and calls Gleb Koval 2025-02-26 18:31:15 +00:00
  • 85190ce174
    refactor: make microWacc.ArrayElem recursive rather than flat Gleb Koval 2025-02-26 18:08:30 +00:00
  • 62df2c2244 fix: added dword in sizedir Alex Ling 2025-02-26 16:58:01 +00:00
  • fb91dc89ee Merge branch 'branch-fix' into asm-gen Guy C 2025-02-26 07:21:26 +00:00
  • 07c67dbef6 feat: add zero division error handling in asmGenerator Guy C 2025-02-26 07:13:12 +00:00
  • 39f88f6f8a
    test: disable parallel test execution to avoid race conditions Gleb Koval 2025-02-26 03:31:11 +00:00
  • fc2c58002e test: include variables tests in suite Guy C 2025-02-26 02:00:28 +00:00
  • f15530149e fix: fix sub instruction code gen Guy C 2025-02-26 01:43:12 +00:00
  • 9ca50540e6 fix: fixed implementation of if statement code gen Guy C 2025-02-26 01:10:14 +00:00
  • f76b7a9dc2 refactor: replace explicit loops and flatMap with foldMap Jonny 2025-02-25 22:46:48 +00:00
  • da0ef9ec24
    ci: checkout commitlint back to current commit Gleb Koval 2025-02-25 22:03:53 +00:00
  • 64b015e494
    ci: use JS commitlint configuration Gleb Koval 2025-02-25 21:49:23 +00:00
  • c9723f9359 feat: implements sign extension operation for division Guy C 2025-02-25 21:37:18 +00:00
  • 70e023f27a Local Mutable Chains Gleb Koval 2025-02-25 21:13:46 +00:00
  • 11c483439c
    fix: generate strDirs after prog, change += to + Gleb Koval 2025-02-25 21:05:21 +00:00
  • ebc65af981
    feat: extension method concatAll defined on Chain implemented Jonny 2025-02-25 19:53:31 +00:00
  • bd0eb76bec
    fix: alignment issue with stack in read Jonny 2025-02-25 19:43:43 +00:00
  • edbc03ee25
    feat: used local mutable Chains. Also implemented new LabelGenerator Jonny 2025-02-25 19:39:55 +00:00
  • 7953790f4d
    feat: used Chains instead of Lists Jonny 2025-02-25 18:44:11 +00:00
  • 7fd92b4212 refactor: passed exit and read tests Alex Ling 2025-02-25 18:25:34 +00:00
  • 87a239f37c fix: alignment issue with stack in read Alex Ling 2025-02-25 18:20:50 +00:00
  • 4f3596b48a
    ci: fix check commits Gleb Koval 2025-02-25 17:35:04 +00:00
  • efe9f91303
    refactor: use non-singleton labelgenerator (instead use class) Gleb Koval 2025-02-25 17:10:56 +00:00
  • 5f8b87221c
    fix: escape characters within assembly Gleb Koval 2025-02-25 17:07:21 +00:00
  • 8558733719
    style: scala format lexer Gleb Koval 2025-02-25 16:33:17 +00:00
  • f628d16d3d
    fix: always push a value onto stack on expr evaluation Gleb Koval 2025-02-25 16:27:47 +00:00
  • 3f76a2c5bf refactor: extract stack into seperate class Alex Ling 2025-02-25 04:44:08 +00:00
  • 8ed94e4df3 fix: initial exprs on stack Alex Ling 2025-02-25 03:17:05 +00:00
  • 58d280462e feat: enhance asmGenerator with additional registers and improve function call generation Guy C 2025-02-25 02:02:57 +00:00
  • f30cf42c4b style: improve code formatting and consistency in typeChecker and assemblyIR Guy C 2025-02-25 00:05:10 +00:00
  • 1488281223 feat: implements binary operators in asmGenerator Guy C 2025-02-25 00:00:12 +00:00
  • 668d7338ae feat: move default return out of functionEpilogue into main def Guy C 2025-02-24 19:47:06 +00:00
  • 9d78caf6d9 feat: add support for return statements in asmGenerator Guy C 2025-02-24 18:57:13 +00:00
  • 909114bdce feat: implement basic while loop generation in asmGenerator Guy C 2025-02-24 04:47:21 +00:00
  • 2bed722a4f style: improve code formatting and readability in asmGenerator Guy C 2025-02-24 02:04:21 +00:00
  • dc61b1e390 feat: implement label generation and basic conditional branching in asmGenerator Guy C 2025-02-24 02:00:35 +00:00
  • c59c28ecbd
    test: retrieve raw stdout in example tests, rather than lines Gleb Koval 2025-02-22 23:38:19 +00:00
  • 82230a5f66 refactor: remove unused import of IntLiter in Main.scala Guy C 2025-02-22 22:53:42 +00:00
  • 1255a2e74c feat: add initialization of AX register in function prologue Guy C 2025-02-22 22:53:17 +00:00
  • 24dddcadab feat: almost complete clib calls Alex Ling 2025-02-22 21:38:12 +00:00
  • 7f2870e340
    feat: generate assembly from main Gleb Koval 2025-02-21 23:30:17 +00:00
  • 1ce36dd8da refactor: unit tests now work with asm ir refactor Barf-Vader 2025-02-21 23:34:37 +00:00
  • de181d161d feat: merge master Ling, Alex 2025-02-21 23:09:13 +00:00
  • ee4109e9cd style: fix style Barf-Vader 2025-02-21 23:00:59 +00:00
  • 02e741c52e feat: implemented println and exit Barf-Vader 2025-02-21 22:53:20 +00:00
  • 0391b9deba
    fix: remove logging from Main Gleb Koval 2025-02-21 18:51:50 +00:00
  • ab28f0950a
    fix: main outputs to current dir Gleb Koval 2025-02-21 18:46:10 +00:00
  • 1c6ea16b6e feat: carrot mark + writer Gleb Koval 2025-02-21 18:35:06 +00:00
  • b2da8c2408
    ci: use x86 image for tests Gleb Koval 2025-02-21 18:30:33 +00:00
  • 42ff9c9e79
    test: backend tests Gleb Koval 2025-02-21 18:19:23 +00:00
  • 39c695b1bb
    feat: output backend files Gleb Koval 2025-02-21 18:19:03 +00:00
  • 87691902be
    feat: set wacc target to x86-64 Gleb Koval 2025-02-21 18:18:44 +00:00
  • eb7387b49c
    chore: update dependencies parsley-cats and os-lib Gleb Koval 2025-02-21 18:18:35 +00:00
  • 67f7e64b95 feat: add writer for assembly code Barf-Vader 2025-02-20 19:47:24 +00:00
  • 2a234f6db8 Assembly ir Gleb Koval 2025-02-20 19:02:47 +00:00
  • a8420ae45c Merge branch 'master' into assembly-ir Barf-Vader 2025-02-20 19:00:11 +00:00
  • b692982d73 refactor: gitignore .idea/ Barf-Vader 2025-02-20 18:57:41 +00:00
  • 006e85d0f8 style: improve formatting for Jump case class and condition toString method Guy C 2025-02-18 18:29:16 +00:00
  • 43682b902b test: add unit tests for register and instruction toString methods Guy C 2025-02-18 18:27:42 +00:00
  • d49c267d50 feat: extends IR for load/move instructions and generalised conditional jumps Guy C 2025-02-18 18:26:50 +00:00
  • bb090ad431 feat: microwacc type checker implementation Gleb Koval 2025-02-18 17:29:10 +00:00
  • 8991024d5d feat: initial microWacc definition Gleb Koval 2025-02-18 17:27:12 +00:00
  • 2c281066a8 refactor: used varargs instead of noOperand Barf-Vader 2025-02-17 18:07:36 +00:00
  • 27cc25cc0d
    feat: type-checker returns micro wacc Gleb Koval 2025-02-17 15:26:32 +00:00
  • 7525e523bb style: reformatted to pass stylecheck Barf-Vader 2025-02-16 18:02:02 +00:00
  • 4e58e41a2a refactor: abstracted operations, used trait Operand Barf-Vader 2025-02-16 17:58:35 +00:00
  • b7e442b269
    refactor: introduce exit-code guard against InternalError Gleb Koval 2025-02-13 23:39:07 +00:00
  • 756b42dd72
    refactor: remove implicit ast from type checker Gleb Koval 2025-02-13 23:12:41 +00:00
  • bc25f914ad
    fix: add uid to microWacc Ident Gleb Koval 2025-02-14 00:35:48 +00:00
  • 6a6aadbbeb
    fix: add nulliter to micro wacc Gleb Koval 2025-02-14 00:21:10 +00:00
  • 03999e00ef
    fix: add support for println in micro wacc Gleb Koval 2025-02-14 00:07:43 +00:00
  • d6aa83a2ea
    fix: add support for return types in micro wacc calls Gleb Koval 2025-02-13 23:54:46 +00:00
  • e23ef8da48
    feat: initial microWacc definition Gleb Koval 2025-02-13 17:19:15 +00:00
  • 32622cdd7e feat: incomplete initial implementation of assemblyIR Barf-Vader 2025-02-13 17:42:50 +00:00
  • 41ed06f91c refactor: moved frontend files into dedicated folder Guy C 2025-02-11 21:36:06 +00:00
  • 5fce2babc0 fix: removed expired todo in parser Guy C 2025-02-07 18:48:34 +00:00
  • 2a4c2bc993 refactor: comment non-trivial code in typeChecker.scala Gleb Koval 2025-02-07 18:45:50 +00:00
  • 84932edb69
    refactor: change typo in Unweakenable Gleb Koval 2025-02-07 18:43:30 +00:00
  • 9da2744cb9
    refactor: comment non-trivial code in typeChecker.scala Gleb Koval 2025-02-07 18:41:16 +00:00
  • 585ba6958a feat: reduce appearances of unknown-type, catch illegal function calls Gleb Koval 2025-02-07 18:14:33 +00:00
  • 5ea3ca5a03
    fix: display function type on incorrect number of args Gleb Koval 2025-02-07 18:09:18 +00:00
  • 4d25d7a730
    fix: make int binary operators and char binary operators errors consistent Gleb Koval 2025-02-07 18:02:31 +00:00
  • 8a7b37e05f
    fix: check both sides are unknown for assign error message Gleb Koval 2025-02-07 17:32:24 +00:00
  • 3d2725be8d feat: catch indirect function calls Barf-Vader 2025-02-07 17:22:54 +00:00
  • b5e72660b7
    fix: make free error message more clear Gleb Koval 2025-02-07 17:19:16 +00:00
  • e87e61b152
    feat: explicitly disallow non-assigned direct function calls Gleb Koval 2025-02-07 17:16:23 +00:00
  • 4631f4370e
    Revert "fix: catch function call without keyword with parenscheck" Gleb Koval 2025-02-07 17:13:06 +00:00
  • 2ff7fff7eb Scaladocs Connolly, Guy 2025-02-07 16:50:12 +00:00
  • c92ae5a707 Merge branch 'master' into 'scaladocs' Connolly, Guy 2025-02-07 16:47:59 +00:00