Commit Graph

43 Commits

Author SHA1 Message Date
9e6b121918 cpu/thumb: fix pc relative load
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2024-06-11 23:22:34 +05:30
15c4802838 cpu/{arm|thumb}(chore): change how branch disassembly happens
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2024-06-11 23:21:39 +05:30
0062ad424b chore: stage bunch of size_t to uint32_t
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2024-06-11 22:58:09 +05:30
028c80f6cb comeback(?)
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2024-06-11 22:46:48 +05:30
174008f60c memory: bus and rom should not be writeable
so fix tests and shit

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-10-05 00:21:18 +05:30
e0f7f32699 refactor: reorganize everything
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-10-04 01:41:38 +05:30
36d71a4ee2 thumb: add execution of instructions
also arm: fix some instructions

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-30 01:31:09 +05:30
03dbb7052f nix: bump
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-30 01:30:44 +05:30
0f09874929 cpu: get rid of the test workaround
now can we remove the pimpl?

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-27 22:43:50 +05:30
03ebc6378a clang: make linter happy
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-27 17:36:25 +05:30
5ec5e6dddc thumb: add disassembler
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-27 17:31:00 +05:30
208527b7f8 thumb: initialise instruction formats
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-27 01:36:05 +05:30
6822e1255a meson: make disassembler feature true by default
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-27 01:33:51 +05:30
bd91112509 refactor: make disassembler optional
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-27 01:31:32 +05:30
1baebd72f6 refactor: make cpu-impl private when not testing
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-27 01:25:47 +05:30
b55f6ee16b refactor: replace fmt ostreams with stringify
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-27 01:24:32 +05:30
ed01ed80cd tests: add tests for memory
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-24 18:04:28 +05:30
8e26cadc9a chore: revert util/crypto
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-24 17:45:19 +05:30
6e56828dfd tests/arm/exec: test conditions
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-24 17:38:11 +05:30
5fcc75bc9a tests: add tests for internal utilities
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-24 17:36:38 +05:30
560bd5bfa1 tests: add tests for bus
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-23 23:20:05 +05:30
9cdfa90acc memory: remove unused functions
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-23 21:58:41 +05:30
91a82eec7c log: encapsulate logger
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-23 21:09:44 +05:30
c3bf8b0ae8 nix: add support to build with GCC
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-23 16:07:05 +05:30
6c33c77ef3 restructure: get rid of cpu/utility
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-23 14:15:23 +05:30
1e8966553f chore: enclose everything in namespace matar
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-21 10:52:40 +05:30
1eb4a9545b tests: complete exec tests (for now)
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-19 08:58:11 +05:30
fa96a4d09f tests: add execution tests
all but data processing

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-18 18:23:52 +05:30
dd9dd5f116 tests: complete disassembler tests
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-17 09:50:32 +05:30
be7deb349a tests: [WIP] add unit tests for some of the instructions
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-15 14:07:23 +05:30
aa96237c37 shifts are always immediate in single data transfer
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-15 10:24:23 +05:30
7fc6876264 [UNTESTED] complete initial disassembler structure for ARM
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-15 05:23:07 +05:30
169723275e replace symlinks
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-14 11:25:44 +05:30
81afd67e0b delete symlinks
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-14 11:14:36 +05:30
0b674c7c64 [UNTESTED] refactor how instructions are parsed
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-14 10:16:03 +05:30
3cf5cbd024 refactor: make linter happy
also add a few unused coprocessor instructions

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-14 01:19:41 +05:30
387f3c8f07 chore: minor changes
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-13 04:15:16 +05:30
8a04eade92 add a basic structure for disassembler + executor
Instructions added
Branch and Exchange (BX)
Branch and Link (B)
Multiply and Accumulate (MUL, MLA)
Multiply Long and Accumulate (SMULL, SMLAL, UMULL, UMLAL)
Single data swap (SWP)
[WIP] Halfword Transfer (STRH, LDRH)

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-13 03:44:36 +05:30
904e2b698e add libfmt to replace current logging mechanism
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-13 03:43:24 +05:30
332f0b87d6 initialise a memory structure or smth
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-09-11 10:53:32 +05:30
84c68a4e00 initial cpu structure :thonk:
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-08-27 21:43:09 +05:30
ad64b1e8d1 add readme
kms

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-08-16 05:58:50 +05:30
fe255f97f4 initial commit: set up a template
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2023-08-15 14:59:53 +05:30