add PowerISA decoder #7

Merged
programmerjake merged 35 commits from programmerjake/cpu:add-powerisa-decoder into master 2026-01-29 02:22:14 +00:00

35 commits

Author SHA1 Message Date
f88346ea37
implement decoding mtspr/mfspr/mftb
All checks were successful
/ test (pull_request) Successful in 31m50s
/ test (push) Successful in 32m14s
2026-01-28 17:35:09 -08:00
a42b76b468
implement decoding all rotate instructions
Some checks failed
/ test (pull_request) Failing after 27m11s
2026-01-27 19:18:27 -08:00
130c1b2892
change CommonMOp to directly contain a generic immediate type 2026-01-27 17:03:14 -08:00
167bc4b6a6
implement decoding extswsli[.] 2026-01-26 19:18:44 -08:00
faa8dde774
reduce the number of wires to have one per form/field pair instead of one per insn/field pair
All checks were successful
/ test (pull_request) Successful in 30m9s
2026-01-26 16:11:03 -08:00
1db65ae753
implement decoding shifts: s[lr][wd][.] and sra[wd][i][.] 2026-01-26 15:14:26 -08:00
59874b9b29
add shift/rotate MOp definition
All checks were successful
/ test (pull_request) Successful in 29m25s
2026-01-25 20:34:38 -08:00
2ad469e331
simplify getting IMM_WIDTH for LogicalFlagsMOpImm 2026-01-25 20:25:25 -08:00
0824b63d31
implement decoding 8/16/32/64-bit store instructions -- all of Power ISA v3.1c Book I 3.3.3
All checks were successful
/ test (pull_request) Successful in 27m59s
2026-01-25 15:06:14 -08:00
706d54ae0d
implement decoding 8/16/32/64-bit load instructions -- all of Power ISA v3.1C Book I 3.3.2
All checks were successful
/ test (pull_request) Successful in 28m7s
2026-01-23 16:06:16 -08:00
d361a2b578
make LogicalFlagsMOp also copy the dest PRegValue.flags into PRegValue.int_fp
All checks were successful
/ test (pull_request) Successful in 27m15s
2026-01-23 12:13:06 -08:00
aa07e24c78
make check-copyright.sh also handle other tests/.../expected/... files 2026-01-23 12:13:06 -08:00
29757a568c
implement decoding mcrf
Some checks failed
/ test (pull_request) Failing after 17s
2026-01-23 11:47:06 -08:00
33529a2296
implement decoding condition register logical instructions 2026-01-23 11:27:48 -08:00
5e9d0957f6
reorder the decoder test cases to match the PowerISA v3.1C PDF 2026-01-23 09:46:29 -08:00
fc8a6cd959
split up tests/simple_power_isa_decoder into separate modules 2026-01-23 09:38:45 -08:00
87112c681a
move simple_power_isa_decoder integration test into its own folder 2026-01-23 08:46:28 -08:00
e6f876f9af
fix & clean up MOp definitions and ensure_reg_fields_are_in_the_same_place
All checks were successful
/ test (pull_request) Successful in 28m22s
2026-01-22 08:28:02 -08:00
9b8d99e9af
implement decoding mcrxrx
Some checks failed
/ test (pull_request) Failing after 18m41s
2026-01-22 07:34:53 -08:00
ffc3d4283c
refactor PRegFlags to use view structs instead of a long list of accessor methods 2026-01-20 19:07:46 -08:00
0433e4f8f1
mark .vcd files as generated
All checks were successful
/ test (pull_request) Successful in 27m0s
2026-01-20 16:20:40 -08:00
a93dca25ac
extract lut out into separate Lut4 type and add test 2026-01-20 16:03:28 -08:00
85ada6e55a
add tests for and fix decoding branch instructions
All checks were successful
/ test (pull_request) Successful in 27m1s
2026-01-19 22:38:48 -08:00
2e05329c36
add branch instructions, no tests yet
All checks were successful
/ test (pull_request) Successful in 27m31s
2026-01-19 20:09:21 -08:00
1fc56e02f9
decode exts[bhw][.] and pnop 2026-01-19 15:41:56 -08:00
aa85ecab01
simplify tests/simple_power_isa_decoder::test_cases somewhat 2026-01-19 14:16:00 -08:00
62a330ed4d
update reg_alloc.vcd
All checks were successful
/ test (pull_request) Successful in 27m28s
2026-01-18 23:23:54 -08:00
c9a3de19b7
add test that UnitMOp has all the register fields aligned across the different variants
Some checks failed
/ test (pull_request) Failing after 27m1s
2026-01-18 22:50:38 -08:00
7ebcd5de1e
decode bitwise logic instructions; also nop and mr special cases 2026-01-18 19:12:48 -08:00
3a35a698e2
decode fixed-point compare instructions 2026-01-18 16:37:00 -08:00
a4b052f5f3
decode all fixed-point add/sub instructions other than addex 2026-01-18 15:02:15 -08:00
62512960c3
decode some more add instructions 2026-01-15 16:10:03 -08:00
b7b6a02777
decodes an addi instruction 2026-01-14 21:41:25 -08:00
6d40eaadb3
WIP adding simple power isa decoder 2026-01-12 07:10:58 -08:00
305d7b0ae6
rename src/powerisa.rs -> src/powerisa_instructions_xml.rs 2026-01-12 03:31:06 -08:00