=========================================================
======================== 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)

