-
bff9220fb1
Extend how interrupts are reported to the main execution loop
master
Alek Ratzloff
2020-03-12 16:56:20 -04:00
-
cb75bf59e0
Polish the VM exception definitions, add double faults, update exception order
Alek Ratzloff
2020-03-10 16:02:23 -04:00
-
28edfb6933
Remove dollar sign ($) from front of number tokens
Alek Ratzloff
2020-03-10 15:59:36 -04:00
-
7c9d4fe908
Update spec to reflect previous changes
Alek Ratzloff
2020-03-10 12:21:29 -04:00
-
85e5f7a2bf
Add INTERRUPT_ENABLE flag, fix bug with register preservation
Alek Ratzloff
2020-03-10 12:20:59 -04:00
-
3da72874f5
Add syntax for previous commit
Alek Ratzloff
2020-03-10 12:20:15 -04:00
-
551bd2c3f4
Add initial register states to meta section; remove entry directive
Alek Ratzloff
2020-03-10 12:18:31 -04:00
-
3522b3d0cd
Update spec and register offset for interrupts
Alek Ratzloff
2020-03-09 18:42:31 -04:00
-
8c4a9991fd
Fix dumb mistake in address calculation for interrupts, add more registers to interrupt call stack
Alek Ratzloff
2020-03-09 18:24:54 -04:00
-
9e82663b2a
Rename tests/call.asm -> tests/test_call.asm
Alek Ratzloff
2020-03-09 18:24:19 -04:00
-
219da3c3c2
Run rustfmt
Alek Ratzloff
2020-03-09 16:47:38 -04:00
-
d0f8d93edf
Run rustfmt
Alek Ratzloff
2020-03-09 16:47:30 -04:00
-
63c81f07f7
Fix alignment calculation and padding
Alek Ratzloff
2020-03-09 16:43:04 -04:00
-
4ae060c68d
Add rerun_except to root crate
Alek Ratzloff
2020-03-09 16:38:41 -04:00
-
65972fcbbe
Change instruction encodings to avoid null instructions
Alek Ratzloff
2020-03-09 15:11:32 -04:00
-
b697b000a4
Add updated Cargo.lock for new table generator package
Alek Ratzloff
2020-03-07 18:08:57 -05:00
-
90155b0cb3
Add alignment syntax, datasection pos/line iterator, disassembler
Alek Ratzloff
2020-03-07 18:01:31 -05:00
-
1f93732a7c
Reorganize instruction assembler logic (fixing a known bug), add interrupts to frontend
Alek Ratzloff
2020-03-06 12:53:07 -05:00
-
fbe2c529af
Add decoding of INT and IRET instructions
Alek Ratzloff
2020-03-06 12:52:46 -05:00
-
34b1147fe6
Add int and iret instruction definitions to the VM backend
Alek Ratzloff
2020-03-06 12:30:49 -05:00
-
1fb2a1df44
Add interrupts enabled flag to spec, add interrupt return actions to spec
Alek Ratzloff
2020-03-06 12:19:07 -05:00
-
58262eab40
Move examples to libvm source base and add symlink to root directory
Alek Ratzloff
2020-03-06 12:18:20 -05:00
-
b1f2de198e
Add interrupt definition syntax and interrupt handling in VM execution state
Alek Ratzloff
2020-03-06 12:17:05 -05:00
-
bf83601cdf
Add interrupt struct and IVT reader
Alek Ratzloff
2020-03-04 16:41:37 -05:00
-
ce352c000c
Add IVT register and interrupt module
Alek Ratzloff
2020-03-04 14:37:00 -05:00
-
bdd30274ed
Add interrupts draft to spec
Alek Ratzloff
2020-03-04 14:23:57 -05:00
-
711bfeb7f9
Squash some warnings
Alek Ratzloff
2020-03-03 19:34:41 -05:00
-
bac1b413dc
Remove structopt where appropriate
Alek Ratzloff
2020-03-03 19:33:55 -05:00
-
5ffca7bcf0
Second part of VM lib transition
Alek Ratzloff
2020-03-03 19:07:35 -05:00
-
2b8663037f
First part of libvm transition
Alek Ratzloff
2020-03-03 19:05:50 -05:00
-
74139b7c65
Remove defunct TODO from spec
Alek Ratzloff
2020-03-03 18:34:56 -05:00
-
ef03ea9137
Update assembler infrastructure to be more modular
Alek Ratzloff
2020-03-03 18:10:08 -05:00
-
ad7c22c168
Remove include_paths() methods from AsmSession
Alek Ratzloff
2020-02-28 15:08:17 -05:00
-
782a2ea4e9
Remove examples/constants.asm, update deadbeef.asm to not use it
Alek Ratzloff
2020-02-27 17:33:44 -05:00
-
4b96902831
Scrap preprocessor, add .include directive instead
Alek Ratzloff
2020-02-27 15:52:17 -05:00
-
0eb394ddf5
Update build.rs
Alek Ratzloff
2020-02-26 14:27:30 -05:00
-
381a59f5fe
Clean up main.rs some, add preprocessor
Alek Ratzloff
2020-02-26 14:24:30 -05:00
-
79d37a4e7b
Add documentation to the Source and Dest value_len() and len() functions
Alek Ratzloff
2020-02-26 10:26:18 -05:00
-
44dc34e52d
Update spec for push and pop operations
Alek Ratzloff
2020-02-26 10:25:46 -05:00
-
cd95011e7b
Add function call test
Alek Ratzloff
2020-02-26 10:19:26 -05:00
-
a4e1d43a74
Add factorial asm example
Alek Ratzloff
2020-02-26 10:16:38 -05:00
-
7a6c2d80ab
Add call/ret/push/pop instructions
Alek Ratzloff
2020-02-26 10:14:48 -05:00
-
bd34cdad63
Add compile and compile_out options, and extended input/output options
Alek Ratzloff
2020-02-25 18:12:28 -05:00
-
d11dbbcdf5
Add meta section len() and to_bytes()
Alek Ratzloff
2020-02-25 17:56:16 -05:00
-
86d46b2a50
Add data section names and conversion to object file format
Alek Ratzloff
2020-02-25 16:39:32 -05:00
-
700ea6c54f
Add section name to data section spec
Alek Ratzloff
2020-02-25 16:38:38 -05:00
-
461cf59bb0
Update intermediate object representation
Alek Ratzloff
2020-02-25 15:08:49 -05:00
-
ef83cf7ef3
Add max_mem and size parsing for arg parsing
Alek Ratzloff
2020-02-25 14:55:14 -05:00
-
b4637e2070
Comments in main.rs
Alek Ratzloff
2020-02-25 14:21:39 -05:00
-
07abfc96b5
Add structopt for arg parsing
Alek Ratzloff
2020-02-25 14:19:12 -05:00
-
bc4f59ecad
Add bitwise tests, squash all arithmetic tests into test_arithmetic
Alek Ratzloff
2020-02-25 14:10:21 -05:00
-
362590292a
Add some integration tests and runner
Alek Ratzloff
2020-02-25 13:48:03 -05:00
-
145739aee2
Add brackets to lexer in preparation for arrays
Alek Ratzloff
2020-02-25 13:47:28 -05:00
-
0ff189bc1b
Minor code cleanup and surpress warnings for unused inst and register constants
Alek Ratzloff
2020-02-25 13:46:38 -05:00
-
b8a769c80f
Add sized int value defs
Alek Ratzloff
2020-02-25 13:45:41 -05:00
-
1c05b3bb44
Update main to return the given status instead of printing the status out when halted
Alek Ratzloff
2020-02-25 13:45:04 -05:00
-
aff2da591b
Add rerun_except crate to prevent building when .asm files are changed
Alek Ratzloff
2020-02-25 13:44:15 -05:00
-
795a890502
Add IDiv instruction for signed integer division
Alek Ratzloff
2020-02-25 13:44:03 -05:00
-
5619c9dc87
Add address deref, syntax, and deref sizes
Alek Ratzloff
2020-02-25 12:07:24 -05:00
-
bdd08c6c5b
Fix bug when generating single-source instructions
Alek Ratzloff
2020-02-19 14:11:57 -05:00
-
2413f9f362
Remove LALRPOP parser
Alek Ratzloff
2020-02-18 17:55:11 -05:00
-
b0ef49bc2a
Add assembler and execution logic
Alek Ratzloff
2020-02-18 17:44:41 -05:00
-
0598bd1526
Rename vm::common -> vm::addr
Alek Ratzloff
2020-02-17 16:22:15 -05:00
-
bf6b0dfba9
Remove vm::obj::assemble mod
Alek Ratzloff
2020-02-17 16:17:55 -05:00
-
2c4b56e362
Use lrpar for parsing, big 'ol syntax overhaul
Alek Ratzloff
2020-02-17 16:15:06 -05:00
-
cf9ba376aa
Add value directives and strings
Alek Ratzloff
2020-02-11 17:49:17 -05:00
-
95d4eb0a60
Move test.asm -> examples directory
Alek Ratzloff
2020-02-11 13:57:33 -05:00
-
6feeeea028
Add binary number parsing
vm-strings
Alek Ratzloff
2020-02-10 19:10:17 -05:00
-
0ea3406b71
Add storeimm32 and storeimm64 syntax
Alek Ratzloff
2020-02-10 18:59:23 -05:00
-
15423502f3
Remove data section from test.asm example file
Alek Ratzloff
2020-02-10 18:03:50 -05:00
-
7504b81b2d
Require assembler sections to specify where in virtual memory they begin
Alek Ratzloff
2020-02-10 18:02:44 -05:00
-
a4a37b5a27
Add Disassemble, fix bug in position calculation
Alek Ratzloff
2020-02-10 16:31:08 -05:00
-
6c352396fa
Add instruction visitor, which traverses memory and choosing instructions
Alek Ratzloff
2020-02-10 13:22:54 -05:00
-
c982be553f
Add execution to VM via file, starting to iron out bugs
vm-bin-format
Alek Ratzloff
2020-02-09 15:43:07 -05:00
-
00027c4542
Add memory and register checking when required in the VM
Alek Ratzloff
2020-02-09 14:10:02 -05:00
-
f1ed41f98b
Rustfmt
Alek Ratzloff
2020-02-09 13:13:26 -05:00
-
1c16be650a
Start using 'symbol' in favor of 'name' or 'label'
Alek Ratzloff
2020-02-09 13:12:56 -05:00
-
e198da5825
Finish up parser and assembler with more-or-less complete syntax
Alek Ratzloff
2020-02-09 13:04:56 -05:00
-
329e61e087
Fix typos in some of the opcode binary layouts
Alek Ratzloff
2020-02-03 18:00:24 -05:00
-
214f0b8aed
Add object layout, object parsing, instruction layout
Alek Ratzloff
2020-02-03 17:56:32 -05:00
-
47ee61ca0d
Finish up the opcode ascii table layouts
Alek Ratzloff
2020-01-28 19:27:25 -05:00
-
e8b874a3c9
Implement ObjParser::parse_sections
Alek Ratzloff
2020-01-28 19:17:35 -05:00
-
2148fed5a5
Add opcodes and layout for most instructions
Alek Ratzloff
2020-01-28 19:16:52 -05:00
-
54f61101c6
Rename vm::bin -> vm::obj
Alek Ratzloff
2020-01-28 18:17:35 -05:00
-
785c0c6092
Update phrasing of 'Bin' and 'format' to 'object'
Alek Ratzloff
2020-01-28 18:15:07 -05:00
-
25f89bbc73
Initial binary object layout spec and matching impl (sans code)
Alek Ratzloff
2020-01-28 18:12:31 -05:00
-
f98a53654e
Update/add instructions in parser
Alek Ratzloff
2020-01-28 13:51:25 -05:00
-
7e6c621c2b
Update test.asm to conform to newest syntax
Alek Ratzloff
2020-01-27 19:08:36 -05:00
-
c4c196a136
Add lexer dump to main and fix a couple of bugs
Alek Ratzloff
2020-01-27 19:07:57 -05:00
-
a5388c8b86
Add more great ideas to the VM spec
Alek Ratzloff
2020-01-27 18:42:15 -05:00
-
b16974c7c4
Update registers to be constants, add instructions to parser
Alek Ratzloff
2020-01-27 18:41:33 -05:00
-
abf32665e2
Add allow(dead_code) to span
Alek Ratzloff
2020-01-27 18:41:13 -05:00
-
ae32403d1f
Remove syn::vm::pass
Alek Ratzloff
2020-01-27 18:40:33 -05:00
-
a5bd09d7d6
Add Not and Inv instructions to spec
Alek Ratzloff
2020-01-28 18:27:19 -05:00
-
f95c24ee95
Add/rename/implement instructions based on new spec
Alek Ratzloff
2020-01-26 11:18:53 -05:00
-
ce0ab273f0
Add "miscellaneous" instructions section, move Halt to there, add Nop
Alek Ratzloff
2020-01-26 11:17:21 -05:00
-
c8690e79bc
Add more notes, some other TODOs, STATUS register
Alek Ratzloff
2020-01-26 11:15:09 -05:00
-
6c96adddff
Add a few notes about numbers and arithmetic, rename Neg -> INeg
Alek Ratzloff
2020-01-26 10:59:25 -05:00
-
df950c6f63
Fix arithmetic instruction specs
Alek Ratzloff
2020-01-26 10:52:26 -05:00
-
976b0689ba
Add a modulo instruction.
Max Marrone
2020-01-25 21:06:43 -05:00