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