|
1abdc79e5e
|
added additional logging to invalid mmu data access, needs a better exception
|
2021-04-24 21:48:53 +02:00 |
|
Anton Lydike
|
fa22d76f13
|
Added libstring and documentation for the general library
|
2021-04-24 18:32:43 +02:00 |
|
Anton Lydike
|
462639ade7
|
Added run_ins method to debugger to run an instruction
|
2021-04-24 18:24:42 +02:00 |
|
Anton Lydike
|
5d484f08cf
|
Minor fixes like imports and edge-case handling
|
2021-04-24 18:24:11 +02:00 |
|
Anton Lydike
|
f45a37e705
|
Added MMU.get_bin_containing
|
2021-04-24 18:23:12 +02:00 |
|
Anton Lydike
|
ff5ba9a7ef
|
made CPU.run_instruction public
|
2021-04-24 18:20:06 +02:00 |
|
Anton Lydike
|
da895f00cd
|
added stack field to cpu
|
2021-04-24 18:19:37 +02:00 |
|
Anton Lydike
|
f5f41f4e18
|
fixed errorneous license text in headers
|
2021-04-23 21:28:57 +02:00 |
|
Anton Lydike
|
242af5c7a3
|
implemented mmu.allocate_region and reworked how the stack works
|
2021-04-23 20:32:19 +02:00 |
|
Anton Lydike
|
bc8c061c6d
|
removed stack pref pseudo-op in preperation for real stack impl
|
2021-04-23 19:53:06 +02:00 |
|
Anton Lydike
|
0574766a81
|
lots more documentation cleanup
|
2021-04-23 18:44:42 +02:00 |
|
Anton Lydike
|
819d57e3c8
|
preparations for sphinx documentation generation
|
2021-04-22 15:47:11 +02:00 |
|
Anton Lydike
|
6e6ce90e9a
|
added lots more documentation and copyright notices
|
2021-04-22 14:29:10 +02:00 |
|
Anton Lydike
|
2a68f16e99
|
added lots of documentation in pydoc style
|
2021-04-22 13:57:13 +02:00 |
|
Anton Lydike
|
a1fe631844
|
improved debugging output on early exit and reformatted cpu file
|
2021-04-22 13:00:37 +02:00 |
|
Anton Lydike
|
21b974cfbd
|
prettier debug output (colorized)
|
2021-04-22 12:57:40 +02:00 |
|
Anton Lydike
|
41f5dd0730
|
better ascii dumps
|
2021-04-22 12:48:46 +02:00 |
|
Anton Lydike
|
ebfb3a0112
|
better formatted print outputs
|
2021-04-22 12:41:07 +02:00 |
|
Anton Lydike
|
18b5ea0570
|
added launch message where cpu starts execution
|
2021-04-22 12:40:28 +02:00 |
|
Anton Lydike
|
44ae0bac77
|
read syscall now behaves like readline instead of read
|
2021-04-22 11:22:05 +02:00 |
|
Anton Lydike
|
0d9960c01a
|
added add_accept_imm option flag to allow add rd, rs, imm instructions
|
2021-04-21 21:04:56 +02:00 |
|
|
5da0f8b0fa
|
fixed failure to launch with missing --instruction-sets flag
|
2021-04-21 20:41:35 +02:00 |
|
Anton Lydike
|
9afbd03733
|
added .word pseudo op
|
2021-04-21 20:36:26 +02:00 |
|
Anton Lydike
|
daed3a0205
|
added proper cpu exit handling
|
2021-04-21 20:36:10 +02:00 |
|
|
cd17c65ce7
|
Added instruction set selector to CLI
|
2021-04-19 12:51:43 +02:00 |
|
|
22a577da59
|
fixed formatting in verbose cpu output
|
2021-04-19 12:18:06 +02:00 |
|
|
39d5212d3d
|
added stepping functionality to the debugger
|
2021-04-19 12:10:24 +02:00 |
|
|
521cb73ad6
|
better dumping code in debugger
|
2021-04-19 11:27:31 +02:00 |
|
|
318b62431d
|
catching invalid immediate value now
|
2021-04-19 11:22:08 +02:00 |
|
|
97525bf8ab
|
fixed cpu __repr__ method
|
2021-04-19 11:16:05 +02:00 |
|
Anton Lydike
|
7aa67cd4e1
|
improved instruction parsing in RV32M
|
2021-04-19 09:48:06 +02:00 |
|
Anton Lydike
|
d8f46c781c
|
finished the RV32I instruction set
|
2021-04-19 09:00:45 +02:00 |
|
Anton Lydike
|
1abeab6f2d
|
added parse_rs_rs_imm method to InstructionSet, used for branch instructions
|
2021-04-19 08:53:35 +02:00 |
|
Anton Lydike
|
d40c80cb81
|
added unsigned options to instruction parsing
|
2021-04-19 08:37:16 +02:00 |
|
Anton Lydike
|
1957e11f62
|
added unified instruction parsing
|
2021-04-19 08:34:39 +02:00 |
|
Anton Lydike
|
2d378f2e0a
|
implemented remu, rem, divu div and mul in RV32M
|
2021-04-19 00:05:23 +02:00 |
|
Anton Lydike
|
157589548d
|
unified instruction parsing code
|
2021-04-19 00:04:51 +02:00 |
|
Anton Lydike
|
d3fe6cb1a9
|
fixed read syscall shadowing of len
|
2021-04-19 00:04:10 +02:00 |
|
Anton Lydike
|
38cb3f7669
|
renamed RVM to RV32M
|
2021-04-18 23:47:08 +02:00 |
|
Anton Lydike
|
7f3fb9b141
|
fixed bgeu, bltu and bge in RV32I
|
2021-04-18 23:45:11 +02:00 |
|
Anton Lydike
|
07f097202d
|
added lui instruction to RV32I
|
2021-04-18 23:44:18 +02:00 |
|
Anton Lydike
|
4c50b8bf06
|
added .space pseudo op, currently does nothing
|
2021-04-18 23:43:56 +02:00 |
|
Anton Lydike
|
c6b18dd152
|
fixed hex check in parse number code
|
2021-04-18 23:43:39 +02:00 |
|
Anton Lydike
|
d8d53da774
|
added scaffolding form RVM instruction set
|
2021-04-18 23:29:12 +02:00 |
|
Anton Lydike
|
3ce42079d4
|
refactored instruction sets to be modular
|
2021-04-18 23:14:53 +02:00 |
|
Anton Lydike
|
91a12fd2a8
|
fixed tokenizer hanging on unknown instruction
|
2021-04-18 20:36:13 +02:00 |
|
Anton Lydike
|
a3ab418858
|
fixed formatting in Registers.dump()
|
2021-04-18 20:32:25 +02:00 |
|
Anton Lydike
|
cd08cd4f70
|
added syscall interface to debug variables
|
2021-04-18 20:11:44 +02:00 |
|
Anton Lydike
|
bf4c705297
|
added symbol lookup helper MMU.symbol(name)
|
2021-04-18 20:10:08 +02:00 |
|
Anton Lydike
|
ce59d10a3b
|
fixed range selection for LoadedMemorySection.dump
|
2021-04-18 20:09:47 +02:00 |
|
Anton Lydike
|
4135ffdb32
|
syscall symbols now work as global symbols
|
2021-04-18 19:30:25 +02:00 |
|
Anton Lydike
|
8b4ba276a8
|
fixed saving reference to global_symbol_table in executable loader
|
2021-04-18 19:29:51 +02:00 |
|
Anton Lydike
|
a1b9cf7f22
|
provide global syscall symbols if flag is set
|
2021-04-18 19:19:28 +02:00 |
|
Anton Lydike
|
11568ec9b0
|
improved arguments, dropped support for no-color output
|
2021-04-18 19:18:17 +02:00 |
|
Anton Lydike
|
2c5655d65a
|
fixed registers keeping track of last accessed register
|
2021-04-18 18:56:39 +02:00 |
|
Anton Lydike
|
7cb29c5b89
|
added escape character deocoding for ascii and asciiz pseudo-ops
|
2021-04-18 18:49:27 +02:00 |
|
Anton Lydike
|
3bcabfbf78
|
fixed mmu bounds check for read
|
2021-04-18 18:48:55 +02:00 |
|
Anton Lydike
|
fc22d4b6a7
|
added better colors to MMU output
|
2021-04-18 18:39:48 +02:00 |
|
Anton Lydike
|
09844c8d38
|
fixed isinstance check in write syscall
|
2021-04-18 18:39:32 +02:00 |
|
Anton Lydike
|
d6e6856431
|
changed output color for syscall logs
|
2021-04-18 18:16:53 +02:00 |
|
|
45b82a3fa9
|
support for loading multiple executables
|
2021-04-18 12:59:40 +02:00 |
|
|
cb48d66400
|
stack allocation now fixed
|
2021-04-18 12:55:57 +02:00 |
|
|
2b87bbe270
|
reformat Exceptions.py
|
2021-04-18 12:12:00 +02:00 |
|
|
8fc519ee86
|
added global symbol support!
|
2021-04-18 12:09:38 +02:00 |
|
|
9aaaf7313f
|
added pseudo-op .set name val, and .global symb
|
2021-04-18 10:38:36 +02:00 |
|
|
db8cc9b00c
|
made instruction methods private to cpu class so not visible from debugger
|
2021-04-18 10:18:36 +02:00 |
|
|
c3faaaed02
|
better formatting in memory dump
|
2021-04-18 09:42:58 +02:00 |
|
|
f43c33b0d7
|
added __repr__ to MemoryFlags
|
2021-04-18 09:42:27 +02:00 |
|
|
c4a28c9d1b
|
added __repr__ to MMU and LoadedMemeorySection
|
2021-04-18 09:37:57 +02:00 |
|
|
4b26ab6774
|
added __repr__ to CPU class
|
2021-04-18 09:33:00 +02:00 |
|
|
d56dca3ff4
|
added better debugging environment
|
2021-04-18 09:32:37 +02:00 |
|
|
baaaa881bc
|
colored exception messages
|
2021-04-18 09:21:11 +02:00 |
|
|
34a44860e0
|
added name field to executables for easy debugging
|
2021-04-18 09:10:03 +02:00 |
|
Anton Lydike
|
64507a4e7e
|
added mmu dump to dump arbitrary section
|
2021-04-18 02:12:29 +02:00 |
|
Anton Lydike
|
30bcded998
|
beautiful section dumps
|
2021-04-18 02:08:47 +02:00 |
|
Anton Lydike
|
7f59ac9bca
|
better interative shell
|
2021-04-18 02:08:03 +02:00 |
|
Anton Lydike
|
8d39d79032
|
made module runnable
|
2021-04-18 00:43:39 +02:00 |
|
Anton Lydike
|
20db1e02ab
|
implemented instructions sll, slli, srl, srli, sra, srai
|
2021-04-18 00:25:53 +02:00 |
|
Anton Lydike
|
7d09cb209f
|
reworked memory instruction parsing
|
2021-04-18 00:24:47 +02:00 |
|
Anton Lydike
|
3c0e357ca0
|
minor bugfixes and missing members corrected
|
2021-04-18 00:09:26 +02:00 |
|
Anton Lydike
|
dd79c11b3b
|
implemented instructions and, or, slt, sltu
|
2021-04-17 23:53:47 +02:00 |
|
Anton Lydike
|
f8e595b46e
|
added instruction xor
|
2021-04-17 23:43:59 +02:00 |
|
Anton Lydike
|
99de083894
|
minor instruction fixes such as added assertions
|
2021-04-17 23:14:56 +02:00 |
|
Anton Lydike
|
5bdd866472
|
implemented instruction j, added cpu cycle counter
|
2021-04-17 23:08:09 +02:00 |
|
Anton Lydike
|
97d86108e8
|
added ebreak/scall aliases to sbreak/scall and replaced dbg with ebreak instruction
|
2021-04-17 23:05:01 +02:00 |
|
Anton Lydike
|
0aa42d0d1c
|
implemented instructions beq, bne, blt, bge, bltu, bgeu, improved unsigned number handling
|
2021-04-17 22:59:37 +02:00 |
|
Anton Lydike
|
88c0b77a16
|
implemented instructions jal, jalr, j, ret, nop
|
2021-04-17 22:51:28 +02:00 |
|
Anton Lydike
|
5a722c8cf1
|
implemented syscalls open, read, write, close, exit
|
2021-04-17 22:50:47 +02:00 |
|
Anton Lydike
|
a483db65c7
|
more work on syscalls
|
2021-04-17 21:28:05 +02:00 |
|
Anton Lydike
|
a69cc7d346
|
moved registers out of CPU file
|
2021-04-17 20:57:54 +02:00 |
|
Anton Lydike
|
feaf432645
|
fixed config dataclass
|
2021-04-17 20:57:21 +02:00 |
|
Anton Lydike
|
9710ed9b8b
|
added Executable.__repr__ and added return self to ExecutableParser.parse
|
2021-04-17 20:42:22 +02:00 |
|
Anton Lydike
|
93ff8d7186
|
added unsigned option for int_{from,to}_bytes
|
2021-04-17 20:28:34 +02:00 |
|
Anton Lydike
|
4159d1609b
|
added run config
|
2021-04-17 20:24:38 +02:00 |
|
|
6bc939572b
|
parsing and simple running works somewhat
|
2021-04-17 19:06:24 +02:00 |
|
|
da4ae7c4c1
|
parsing of tokenized asm into MemorySections works
|
2021-04-17 13:39:56 +02:00 |
|
Anton Lydike
|
2cee60a17c
|
initial commit
|
2021-04-16 23:52:13 +02:00 |
|