psx.wiki

Multiply and Divide Timing: Difference between revisions

Revision as of 05:11, 23 October 2026
RemmyLee
(Hardware tests: 72 more test pages, listed on the main page by area; RUN.toml no longer published)
Revision as of 05:18, 23 October 2026
RemmyLee
(Hardware tests: nine DMA, MDEC and BIOS test pages with part names for titles; join one-sentence paragraphs per voice.md)
Line 37:Line 37:
A second multiply issued while the first is still running waits for it. Two slow multiplies in a row took 13 cycles more than the baseline. A multiply followed by a divide took 36 cycles more, which is the time of the divide alone.[^run]A second multiply issued while the first is still running waits for it. Two slow multiplies in a row took 13 cycles more than the baseline. A multiply followed by a divide took 36 cycles more, which is the time of the divide alone.[^run]
−Writing LO or HI with MTLO or MTHI while a multiply is running stops the multiply at once and adds no time. The register that was written holds the new value, and the other register holds a partial result that is neither its old value nor the product. After MULT 12345678h by 12345678h followed by MTLO, HI read 00000000h where the product's high word is 014B66DCh. After MTHI, LO read 12345678h, which is the value of rs.[^run]+Writing LO or HI with MTLO or MTHI while a multiply is running stops the multiply at once and adds no time. The register that was written holds the new value, and the other register holds a partial result that is neither its old value nor the product. After MULT 12345678h by 12345678h followed by MTLO, HI read 00000000h where the product's high word is 014B66DCh. After MTHI, LO read 12345678h, which is the value of rs.[^run] When 32 NOPs separate the multiply from the MTLO, the multiply finishes first and HI holds the high word of the product.[^run]
−When 32 NOPs separate the multiply from the MTLO, the multiply finishes first and HI holds the high word of the product.[^run]
−
## Runs## Runs