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 |
|
Andrew Morris
|
bbb0a9ffaf
|
Split into simplify and apply
|
2023-06-29 16:22:20 +10:00 |
|
Andrew Morris
|
76bc24f4fb
|
Comment instead of empty
|
2023-06-29 16:09:08 +10:00 |
|
Andrew Morris
|
4d7e9a2e5c
|
Remove redundant require_mutable_this
|
2023-06-29 16:01:19 +10:00 |
|
Andrew Morris
|
76995eaf2d
|
Split out optimization dir
|
2023-06-29 15:22:06 +10:00 |
|
Andrew Morris
|
f5fa17ed25
|
Fix pointer ordering, extract constant arrays and objects
|
2023-06-29 15:03:21 +10:00 |
|
Andrew Morris
|
b315f07903
|
Extract optimize.rs
|
2023-06-29 12:03:43 +10:00 |
|
Andrew Morris
|
4642f22344
|
Make todos more descriptive
|
2023-06-28 15:59:17 +10:00 |
|
Andrew Morris
|
b798304070
|
Implement cond expressions
|
2023-06-28 15:49:44 +10:00 |
|
Andrew Morris
|
e49b1ff3da
|
Implement yield* instruction
|
2023-06-27 14:38:42 +10:00 |
|
Andrew Morris
|
fb7f925bfb
|
Use module constants in richards.ts
|
2023-06-23 16:11:22 +10:00 |
|
Andrew Morris
|
50369d18f3
|
Partial support for module constants
|
2023-06-23 15:41:16 +10:00 |
|
Andrew Morris
|
9135181634
|
Mark most module statements as not supported
|
2023-06-23 14:17:10 +10:00 |
|
Andrew Morris
|
a03aecedac
|
Add static eval for literals
|
2023-06-23 14:10:37 +10:00 |
|
Andrew Morris
|
c880dda7c9
|
Extract string constants
|
2023-06-23 13:48:58 +10:00 |
|
Andrew Morris
|
540b25225a
|
Compile static methods
|
2023-06-23 10:02:32 +10:00 |
|
Andrew Morris
|
41a6a20573
|
Include static in class assembly and bytecode
|
2023-06-23 09:47:12 +10:00 |
|
Andrew Morris
|
b3b5887d8b
|
methods -> prototype
|
2023-06-23 09:23:48 +10:00 |
|
Andrew Morris
|
fdae0c5ff4
|
Use take on iter_res
|
2023-06-22 19:49:54 +10:00 |
|