54f61101c6
Rename vm::bin -> vm::obj
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-28 18:35:41 -05:00
785c0c6092
Update phrasing of 'Bin' and 'format' to 'object'
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-28 18:35:41 -05:00
25f89bbc73
Initial binary object layout spec and matching impl (sans code)
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-28 18:35:41 -05:00
f98a53654e
Update/add instructions in parser
...
* StoreImm just uses a u64 instead of u32 - we'll figure out the layout
later
* Jmp implementation added (can't believe I forgot this)
* Add Inst AST item, whose immediates don't have to be a u64 right away
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-28 18:35:41 -05:00
7e6c621c2b
Update test.asm to conform to newest syntax
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-28 18:35:41 -05:00
c4c196a136
Add lexer dump to main and fix a couple of bugs
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-28 18:35:41 -05:00
a5388c8b86
Add more great ideas to the VM spec
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-28 18:35:41 -05:00
b16974c7c4
Update registers to be constants, add instructions to parser
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-28 18:35:41 -05:00
abf32665e2
Add allow(dead_code) to span
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-28 18:35:41 -05:00
ae32403d1f
Remove syn::vm::pass
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-28 18:35:41 -05:00
a5bd09d7d6
Add Not and Inv instructions to spec
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-28 18:27:19 -05:00
f95c24ee95
Add/rename/implement instructions based on new spec
...
* Add Mod instruction
* Rename Neg -> INeg
* Rename Copy -> MemCopy
* Add RegCopy
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-26 11:18:53 -05:00
ce0ab273f0
Add "miscellaneous" instructions section, move Halt to there, add Nop
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-26 11:17:21 -05:00
c8690e79bc
Add more notes, some other TODOs, STATUS register
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-26 11:15:09 -05:00
6c96adddff
Add a few notes about numbers and arithmetic, rename Neg -> INeg
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-26 10:59:25 -05:00
df950c6f63
Fix arithmetic instruction specs
...
Originally, arithmetic instructions were in the form of
REG2 = REG1 (OP) REG2
but then I started storing the result in REG1 (both in implementation,
and later defs of the arth instructions). So I'm updating it to match
what was actually in my head.
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-26 10:52:26 -05:00
Max Marrone
976b0689ba
Add a modulo instruction.
2020-01-25 21:06:43 -05:00
Max Marrone
b7aa2d7ce7
Rename Copy to MemCopy and also add RegCopy.
2020-01-25 21:02:32 -05:00
ddfcec0427
Initial commit
...
Signed-off-by: Alek Ratzloff <alekratz@gmail.com >
2020-01-25 19:17:39 -05:00