Skip to content

Update additional PSP VFPU instructions - #257

Open
tclamb wants to merge 1 commit into
Kingcom:masterfrom
tclamb:master
Open

Update additional PSP VFPU instructions#257
tclamb wants to merge 1 commit into
Kingcom:masterfrom
tclamb:master

Conversation

@tclamb

@tclamb tclamb commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

In the PR updating PPSSPP to use the latest armips commit, @Nemoumbra pointed out a missing opcode from pspautotests. I pulled all vfpu instructions from the binaries in pspautotests for test cases.

  • fixed transposed matrix row/column register encoding
  • removed invalid instructions vwbn.p/t/q
  • fixed immediate size for vwbn.s
  • fixed vd size for vsocp.s/p (was: vsocp.s S002,S103, now: vsocp.s C002,S103)
  • fixed vhtfm2.p/vhtfm3.t encodings
  • added missing instruction vhtfm4.q

Used MWCC to generated expected output.

* fixed transposed matrix row/column register encoding
* removed invalid instructions `vwbn.p/t/q`
* fixed immediate size for `vwbn.s`
* fixed `vd` size for `vsocp.s/p` (was: `vsocp.s S002,S103`, now: `vsocp.s C002,S103`)
* fixed `vhtfm2.p`/`vhtfm3.t` encodings
* added missing instruction `vhtfm4.q`

Extracted test instructions from hrydgard/pspautotests binaries. Used MWCC to generated expected output.
tclamb added a commit to tclamb/ppsspp that referenced this pull request Jul 23, 2026
Update armips for VFPU instruction parsing changes (Kingcom/armips#257)
- fix transposed matrix register encodings (e.g. `vmidt.p E220` was assembling to `vmidt.p E202`)
- fix immediate size for `vwbn.s` (is 8 bits, was limited to 5 bits)
- fix `vd` register size for `vsocp.s/p`
- fix `vhtfm2.p` and `vhtfm3.t` encoding
- add missing instruction `vhtfm4.q`

Fix `v(h)tfmX` disassembly (handle irregular vector size encoding)

Fix `vsocp.s/p` disassembly (`vd` is double the size of `vs`)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant