Files
reverse-engineering-anything/tests/conformance/psp/probe.S
T
Jay-Alexander Elliot dc9f329764 test(ghidra): verify PSP VFPU prefix and vector decoding (#8614)
* test(psp): add source-owned VFPU prefix and vadd sequence

* test(psp): assert VFPU prefix and consumer decode facts

* test(psp): verify VFPU prefixes and consumers through public Ghidra MCP

* docs(psp): delimit VFPU prefix/consumer conformance coverage

* test(psp): preserve unknown when Ghidra omits high-pcode data

* style(psp): apply pinned oxfmt output to verify-real-ghidra-mips.mjs

* style(psp): apply pinned oxfmt output to psp-fixture.mjs
2026-11-06 15:14:24 +08:00

41 lines
1.1 KiB
ArmAsm

/* Source-owned Allegrex decoding probe. This fixture is never executed. */
.set noreorder
.text
.align 2
.globl rea_psp_probe
.type rea_psp_probe, @function
.ent rea_psp_probe
rea_psp_probe:
addiu $v0, $zero, 0x1234
bitrev $v0, $v0
jr $ra
nop
.end rea_psp_probe
.size rea_psp_probe, .-rea_psp_probe
/* Source-owned VFPU prefix/consumer sequence. Never executed.
* Encodings match the independent Allegrex headless conformance fixture;
* this tests static decoding, not numerical lane or prefix correctness.
*/
.align 2
.globl rea_psp_vfpu_probe
.type rea_psp_vfpu_probe, @function
.ent rea_psp_vfpu_probe
rea_psp_vfpu_probe:
.word 0xd8800000 /* lv.q */
.word 0xd8a40000 /* lv.q */
.word 0xdc0000e4 /* vpfxs, identity source */
.word 0xdd0000e4 /* vpfxt, identity target */
.word 0xde000000 /* vpfxd */
.word 0x60048090 /* vadd.q */
.word 0xf8d00000 /* sv.q */
.word 0xdc0000c6 /* vpfxs, swizzled source */
.word 0x60048090 /* vadd.q */
.word 0xf8d00010 /* sv.q */
.word 0x60048090 /* vadd.q with no new prefix */
.word 0xf8d00020 /* sv.q */
jr $ra
nop
.end rea_psp_vfpu_probe
.size rea_psp_vfpu_probe, .-rea_psp_vfpu_probe