Commit Graph

261 Commits

Author SHA1 Message Date
Andrew Morris
57b3a6b543 Implement typescript param props 2023-07-06 16:30:24 +10:00
Andrew Morris
262ac430f4 Simplify get_pattern_register 2023-07-06 14:17:52 +10:00
Andrew Morris
2952d69698 Fix this params 2023-07-06 14:06:51 +10:00
Andrew Morris
9000487b2f Fix switch tests 2023-07-06 10:27:41 +10:00
Andrew Morris
ced2b3cee6 Implement switch 2023-07-06 10:22:05 +10:00
Andrew Morris
5b7626735d Remove mov where arg and dst are the same 2023-07-05 12:24:45 +10:00
Andrew Morris
70102961c6 Fix test 2023-07-05 12:22:17 +10:00
Andrew Morris
3f63091e07 Use return register when a variable is always returned 2023-07-05 11:44:14 +10:00
Andrew Morris
d38abb7377 Collapse jump to jump 2023-07-04 22:50:13 +10:00
Andrew Morris
063ab365a7 Remove unused registers 2023-07-04 11:01:07 +10:00
Andrew Morris
0366d098c0 Remove redundant ends, fix next_instruction_index 2023-07-03 12:19:51 +10:00
Andrew Morris
07e299614f Simplify jumps 2023-07-03 11:59:04 +10:00
Andrew Morris
eca2cda3d5 Use half indentation for labels 2023-07-03 11:16:34 +10:00
Andrew Morris
9b9b342110 Use 4 space indentation for assembly 2023-07-03 11:15:36 +10:00
Andrew Morris
ca01d8169d Remove empty lines before labels 2023-07-03 11:12:19 +10:00
Andrew Morris
d89103de79 Optimize after removing unused labels 2023-07-03 10:48:57 +10:00
Andrew Morris
b7d5101bf4 Remove unused labels 2023-07-03 10:45:20 +10:00
Andrew Morris
29835bf732 Replace negate+jmpif with jmpif_not 2023-07-03 09:56:00 +10:00
Andrew Morris
d217f60967 Add jmpif_not instruction 2023-07-03 09:33:47 +10:00
Andrew Morris
adce30305f jmpif true label -> jmp label 2023-07-02 09:55:38 +10:00
Andrew Morris
571c5760a4 Allow sub instructions to be simplified to mov 2023-07-02 09:20:59 +10:00
Andrew Morris
74ed734847 Fix missed substitution bug 2023-07-02 08:59:49 +10:00
Andrew Morris
edecfeeb1f Do some repeated optimization 2023-07-01 17:57:18 +10:00
Andrew Morris
0f9c10f07c Run simplify twice 2023-07-01 17:56:46 +10:00
Andrew Morris
ff8defcf9f Simplify eg op+ 1 2 %dst to mov 3 %dst 2023-07-01 17:44:47 +10:00
Andrew Morris
42c314eccf Put constants in Kal 2023-07-01 17:29:47 +10:00
Andrew Morris
dada0cb779 Extract constants later so that simplify has more information 2023-07-01 17:12:41 +10:00
Andrew Morris
530c025864 Basic subscripting for Kal 2023-07-01 16:33:11 +10:00
Andrew Morris
98441e8070 Make name consistent 2023-07-01 16:04:23 +10:00
Andrew Morris
c91c86ecd6 Kal (refactor) 2023-07-01 16:01:28 +10:00
Andrew Morris
e3f611cf59 Simplify and improve handle_releases_impl 2023-07-01 10:03:32 +10:00
Andrew Morris
4a79be29d1 Release after throw 2023-07-01 08:56:29 +10:00
Andrew Morris
f985698724 Release registers upon return 2023-07-01 08:24:42 +10:00
Andrew Morris
52f42334b3 Imply release on assignment 2023-06-30 18:33:33 +10:00
Andrew Morris
264b8dee40 remove_noops 2023-06-30 17:19:28 +10:00
Andrew Morris
25ba1d97eb remove_meta_lines 2023-06-30 14:36:55 +10:00
Andrew Morris
6ee59518cf Take registers and remove unused movs 2023-06-30 14:12:27 +10:00
Andrew Morris
3720a2b563 Fix non-deterministic assembly ordering 2023-06-30 13:12:20 +10:00
Andrew Morris
9453b69f9e Simplify simplify_line 2023-06-30 12:52:36 +10:00
Andrew Morris
2c6faa0289 Simplify instruction_needs_mutable_this 2023-06-30 12:39:30 +10:00
Andrew Morris
3e5aea5ba3 visit_registers_mut_rev 2023-06-30 12:19:36 +10:00
Andrew Morris
f20cbc9a36 Use register for this argument of Apply, SubCall, ThisSubCall 2023-06-30 11:47:18 +10:00
Andrew Morris
98c7839d68 Use single impl 2023-06-30 10:57:43 +10:00
Andrew Morris
d668433339 Move Instruction to its own file 2023-06-30 10:57:05 +10:00
Andrew Morris
3d5dada476 move (release ..) to after usage 2023-06-30 10:47:13 +10:00
Andrew Morris
da94fcb947 Add release pseudo-instruction 2023-06-30 10:04:08 +10:00
Andrew Morris
4005510bf2 Remove .take() from compiler first pass 2023-06-30 09:47:31 +10:00
Andrew Morris
ae4c0a5be2 Don't extract empty arrays and objects 2023-06-30 09:36:36 +10:00
Andrew Morris
ebf4ca9ae4 Fix bugs 2023-06-29 19:26:42 +10:00
Andrew Morris
842ad083b5 wip 2023-06-29 18:39:02 +10:00