On Fri, Mar 16, 2001 at 07:46:23PM +0100, Kevin D. Kissell wrote:
> > GCC to schedule instructions for a certain processor xxx. This does not
> > enable the full use of it's instruction set. Back in time when I choose
> > these options I choose because GCC didn't know -mcpu=r5000 but the R8000
> > was supported and it was the closest fit. Gcc 1.1.2 knows this option
> > so I just changed all instances of -mcpu=r8000 into -mcpu=r5000.
>
> As I understand it, the original intention behind -mcpu was to optimise
> instruction scheduling, but it got perverted over time to enable
> instructions as well. In any case, the R5000 and R8000 have the
> same ISA, but the pipelines are radically different. The R8K is
> 4-way superscalar, with a 2-cycle branch penalty and branch
> prediction. The R5K is two way supercalar (Int/FP pairs only)
> with classic MIPS branch behavior, etc.
Gcc's knowledge about MIPS architecture is so limited that an R5000 isn't
very much different from an R8000 ...
> > Unfortunately true but there is a reason that QED's manual marks it as an
> > proprietary extension ...
>
> Yup. The quesiton is, does gcc's -mmad option actually
> select based on -mcpu or some other variable which
> semantics to use, or does it assume R4650 semantics
If you have a collection which of the CPUs have implemented mmad in what
way I'd like to use that to put it into gcc.
> (I had the impression that it was the R4650 that drove
> the implementation of MIPS madd's into gcc - correct
> me if I'm wrong).
Guess that's right.
Ralf
|