Skip to content

Update PSP VFPU1/VFPU4-1.3 instructions#256

Merged
Kingcom merged 1 commit into
Kingcom:masterfrom
tclamb:master
Jul 7, 2026
Merged

Update PSP VFPU1/VFPU4-1.3 instructions#256
Kingcom merged 1 commit into
Kingcom:masterfrom
tclamb:master

Conversation

@tclamb

@tclamb tclamb commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

I wrote a script to round-trip instructions in PPSSPP and ended up finding a few more irregular instructions.

  • removed invalid instructions vdet.s/t/q, vcrs.s/p/q, vdot.s, vhdp.s, vscl.s, vavg.s, vfad.s
  • unswapped output encodings for vdet.p & vcrs.t
  • fixed vd size for vdot.p/t/q (was: vdot.t C103,C201,C201, now: vdot.t S103,C201,C201)
  • fixed vd size for vhdp.p/t/q (was: vhdp.t C103,C201,C201, now: vhdp.t S103,C201,C201)
  • fixed vd size for vdet.p (was: vdet.p C103,C202,C212, now: vdet.p S103,C202,C212)
  • fixed vd size for vavg.p/t/q (was: vavg.t C103,C201,C201, now: vavg.t S103,C201,C201)
  • fixed vd size for vfad.p/t/q (was: vfad.t C103,C201,C201, now: vfad.t S103,C201,C201)

Used MWCC to generate expected output for added tests.

* removed invalid instructions `vdet.s/t/q`, `vcrs.s/p/q`, `vdot.s`, `vhdp.s`, `vscl.s`, `vavg.s`, `vfad.s`
* unswapped output encodings for `vdet.p` & `vcrs.t`
* fixed `vd` size for `vdot.p/t/q` (was: `vdot.t C103,C201,C201`, now: `vdot.t S103,C201,C201`)
* fixed `vd` size for `vhdp.p/t/q` (was: `vhdp.t C103,C201,C201`, now: `vhdp.t S103,C201,C201`)
* fixed `vd` size for `vdet.p` (was: `vdet.p C103,C202,C212`, now: `vdet.p S103,C202,C212`)
* fixed `vd` size for `vavg.p/t/q` (was: `vavg.t C103,C201,C201`, now: `vavg.t S103,C201,C201`)
* fixed `vd` size for `vfad.p/t/q` (was: `vfad.t C103,C201,C201`, now: `vfad.t S103,C201,C201`)

Used MWCC to generate expected output for added tests.
@Kingcom

Kingcom commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Thanks!

@Kingcom
Kingcom merged commit 2d7f351 into Kingcom:master Jul 7, 2026
5 checks passed
tclamb added a commit to tclamb/ppsspp that referenced this pull request Jul 8, 2026
Update armips for VFPU instruction parsing changes:
- Kingcom/armips#255
- Kingcom/armips#256

Remove brackets from VFPU instruction `vpfx*` params

Rename VFPU instruction `vuc2i.s` to `vuc2ifs.s`

Add brackets to VFPU instruction `vpfxd` saturation operations (i.e. [0:1] & [-1:1])

Rename FPU instructions `c.$OP` to `c.$OP.s`

Fix VFPU instruction `vuc2ifs.s` `vd` size in disassembly

Replace `CC[imm3]` with `imm3` in VFPU instructions `vcmov*` & `bv*` disassembly
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.

2 participants