ClassiCube/misc/dreamcast/sh4_notes.txt

32 lines
1.7 KiB
Plaintext

=========================================================
======================== PROCESSOR INFO =================
=========================================================
The SH4 can dual issue (i.e. parallel execution) two instructions
as long as the groups of the two instructions are different:
* LS - most ALU and FPU register load/stores
* EX - most ALU arithmetic instructions
* MT - TST, CMP, NOP, MOV Rm,Rn (NOTE: Can execute in parallel with other MT)
* FE - most FPU arithmetic instructions
* CO - other instructions (NOTE: Cannot never execute in parallel)
The following general aspects of instructions are important to note per the SH4 manual:
* Issue rate: Interval between the issue of an instruction and that of the next instruction
* Latency: Interval between the issue of an instruction and the generation of its result (completion)
* Latency is also the interval between the execution of two instructions with an interdependent relationship.
(although different cases may either increase or decrease Latency)
=========================================================
======================== REGISTER USAGES ================
=========================================================
SH4 C ABI:
- R0 to R3 are return values (can be overwritten)
- R4 to R7 are input arguments (can be overwritten)
- R8 to R13 are non-volatile (must be restored at end)
- R14 is the frame pointer (must be restored at end)
- R15 is the stack pointer (must be restored at end)
- FR0 to FR3 are return values (can be overwritten)
- FR4 to FR11 are input arguments (can be overwritten)
- FR12 to FR13 are non-volatile (must be restored at end)