If i use the -char-size-8 switch then the compiler would be used MRB only if i switch to alternate (secondary) register set?
Am I correct?
I read CCES 2.9.0 C/C++ Compiler Manual for SHARC Processors. Remarks of Table 2-47: Callee-Preserved Registers and Table 2-48: Scratch Registers claim MRB can be Preserved Registers or Scratch Registers depending the value of the -char-size-8 switch.
When -char-size-8 is used, the MRF and MRB registers are defined as scratch registers. This means if they are modified in a function, their values are not restored on exit from the function. Therefore live values should not be kept in the MRF and MRB registers across a call to a function compiled with -char-size-8.
For Multiplier 64-bit Floating-Point Operations instruction uses MR register for intermediate computations. The MR register could be MRF or MRB depending on the REGF_MODE1.SRCU bit.
The data in MR register at the end of execution of this instruction is not valid.Hence, if the MR register contains a valid data which may be required later, the user must save the data in MR before executing the instruction.
Just to know whether you are facing any issue with these register's and please let us know the processor family you are using.