"Kevin D. Kissell" wrote: > > > "Correct" usage would be to enable those three instructions > > with a "-mcpu=nevada", or better still, "-mcpu=r5200" (for > > consistency), and to enable the rest of the MIPS IV ISA > > with "-mips4" instead of the archaic r8000 hack. > > I should add "Correct", but not useful for 32-bit > kernels. "-mips32", once that percolates through > the gcc food chain, would be *almost* perfect > for 32-bit Nevada kernels. I say almost, because > while MIPS32 is 32-bit MIPS IV plus MADD, it also > has a handfull of instructions that are not supported > by the R52xx, of which it is wildly improbable but > theoretically possible that the multiply-subtracts > might somehow get emitted in compiled application > code. It should work just fine for kernel purposes, though. > > Meanwhile, try piping objdump of a "-mmad" kernel > through "grep -i mad". I'd be stunned if a single MADD > turned up. If it gains nothing, but breaks builds, then > for heaven's sake banish -mmad from the kernel > makefiles! I managed to compile a 2.4.2 kernel with our bleeding edge toolchain. I had to get rid of the -mmad from the Makefile though. The kernel boots and runs and I ran Bonnie over NFS as well as on an IDE hard disk. I tried some other tests as well, and they all passed. Without the -mmad flag, I see the following mad instructions below. No "madd" though, just madd.s, madd16, mad, etc. So, can we get rid of this flag in the Makefile? Pete 0000000080132690 <sys_madvise>: 801326dc: 1080fffc beqz $a0,801326d0 <sys_madvise+40> 801326e4: 04810004 bgez $a0,801326f8 <sys_madvise+68> 801326f8: 5440002e bnezl $v0,801327b4 <sys_madvise+124> 80132714: 54400027 bnezl $v0,801327b4 <sys_madvise+124> 8013271c: 12510024 beq $s2,$s1,801327b0 <sys_madvise+120> 80132734: 1200001e beqz $s0,801327b0 <sys_madvise+120> 80132744: 10400003 beqz $v0,80132754 <sys_madvise+c4> 80132758: 1440000c bnez $v0,8013278c <sys_madvise+fc> 80132764: 10400007 beqz $v0,80132784 <sys_madvise+f4> 80132770: 0c04c988 jal 80132620 <madvise_vma> 8013277c: 5660000d bnezl $s3,801327b4 <sys_madvise+124> 80132784: 0804c9ec j 801327b0 <sys_madvise+120> 80132790: 0c04c988 jal 80132620 <madvise_vma> 8013279c: 56600005 bnezl $s3,801327b4 <sys_madvise+124> 801327a8: 0804c9cd j 80132734 <sys_madvise+a4> 801327c8: 1080fffc beqz $a0,801327bc <sys_madvise+12c> 801327d0: 1c800004 bgtz $a0,801327e4 <sys_madvise+154> 80250590: 4d4d2030 nmadd.s $f0,$f10,$f4,$f13 80250a84: 4f4e2820 madd.s $f0,$f26,$f5,$f14 802517bc: 00000029 dmadd16 $zero,$zero 80253c94: 00000029 dmadd16 $zero,$zero 802555a4: 00000029 dmadd16 $zero,$zero 80256178: 00000029 dmadd16 $zero,$zero 80259804: 4d445b20 madd.s $f12,$f10,$f11,$f4 80259810: 4d445b20 madd.s $f12,$f10,$f11,$f4 8025981c: 4d445b20 madd.s $f12,$f10,$f11,$f4 8025aa34: 00000029 dmadd16 $zero,$zero 8025bbf0: 4c257830 nmadd.s $f0,$f1,$f15,$f5 802618a8: 4f2f4920 madd.s $f4,$f25,$f9,$f15 80262018: 4e203a70 nmadd.s $f9,$f17,$f7,$f0 802625c4: 4c554e20 madd.s $f24,$f2,$f9,$f21 80262700: 4c554e20 madd.s $f24,$f2,$f9,$f21 80264d5c: 4c545220 madd.s $f8,$f2,$f10,$f20 80264d64: 00000029 dmadd16 $zero,$zero 80265148: 4e203d21 madd.d $f20,$f17,$f7,$f0 80265194: 4e203d21 madd.d $f20,$f17,$f7,$f0 8026534c: 00000029 dmadd16 $zero,$zero 80265b50: 4f495020 madd.s $f0,$f26,$f10,$f9 80265f70: 4c554e20 madd.s $f24,$f2,$f9,$f21 80266294: 4e554c20 madd.s $f16,$f18,$f9,$f21 802670bc: 4c4c4120 madd.s $f4,$f2,$f8,$f12 80267690: 4d207361 madd.d $f13,$f9,$f14,$f0 80267f5c: 00000029 dmadd16 $zero,$zero 80268314: 00000029 dmadd16 $zero,$zero 80268abc: 00000029 dmadd16 $zero,$zero 80269cd4: 4d435020 madd.s $f0,$f10,$f10,$f3 8026a504: 00000029 dmadd16 $zero,$zero 8026df88: 4c4c5020 madd.s $f0,$f2,$f10,$f12 8026e01c: 4c502070 nmadd.s $f1,$f2,$f4,$f16 8026f6bc: 4c622020 madd.s $f0,$f3,$f4,$f2 8026f71c: 4e622020 madd.s $f0,$f19,$f4,$f2 8026f944: 4c622020 madd.s $f0,$f3,$f4,$f2 8026f9f0: 4d772020 madd.s $f0,$f11,$f4,$f23 802702f8: 4d203231 nmadd.d $f8,$f9,$f6,$f0 80273830: 00000029 dmadd16 $zero,$zero 80276a24: 4f6d7361 madd.d $f13,$f27,$f14,$f13 80277498: 4e203d21 madd.d $f20,$f17,$f7,$f0 80279c10: 4d202020 madd.s $f0,$f9,$f4,$f0 80279ea4: 4d434920 madd.s $f4,$f10,$f9,$f3 8027c588: 4f494520 madd.s $f20,$f26,$f8,$f9 80280048: 4d642520 madd.s $f20,$f11,$f4,$f4 802802c8: 4d4f5220 madd.s $f8,$f10,$f10,$f15 802a0e00: 4e414d20 madd.s $f20,$f18,$f9,$f1 802a2988: 4c4f5720 madd.s $f28,$f2,$f10,$f15 802a2a30: 00000029 dmadd16 $zero,$zero 802a2c14: 4f2f4920 madd.s $f4,$f25,$f9,$f15 802a336c: 4f2f4920 madd.s $f4,$f25,$f9,$f15 802a39e4: 00000029 dmadd16 $zero,$zero 802a3a00: 00000029 dmadd16 $zero,$zero 802a3a1c: 00000029 dmadd16 $zero,$zero 802a3a70: 00000029 dmadd16 $zero,$zero 802a3ac8: 00000029 dmadd16 $zero,$zero 802a3ad0: 4d353531 nmadd.d $f20,$f9,$f6,$f21 802a3b3c: 00000029 dmadd16 $zero,$zero 802a427c: 4f2f4920 madd.s $f4,$f25,$f9,$f15 802a50bc: 4d4f4320 madd.s $f12,$f10,$f8,$f15 802a5504: 4e414c20 madd.s $f16,$f18,$f9,$f1 802a57ec: 4c2e6920 madd.s $f4,$f1,$f13,$f14 802a5f18: 4f2f4920 madd.s $f4,$f25,$f9,$f15 802a6378: 4d544120 madd.s $f4,$f10,$f8,$f20 802a63b4: 4d207161 madd.d $f5,$f9,$f14,$f0 802a6d5c: 00000029 dmadd16 $zero,$zero 802a6ea8: 4f2f4920 madd.s $f4,$f25,$f9,$f15 802a6ebc: 4f2f4920 madd.s $f4,$f25,$f9,$f15 802a73c0: 4e414c20 madd.s $f16,$f18,$f9,$f1 802a74cc: 4e414c20 madd.s $f16,$f18,$f9,$f1 802a75a0: 4f505420 madd.s $f16,$f26,$f10,$f16 802a7994: 4d502031 nmadd.d $f0,$f10,$f4,$f16 802a7ac0: 4e414c20 madd.s $f16,$f18,$f9,$f1 802a7b54: 4e206870 nmadd.s $f1,$f17,$f13,$f0 802a7e8c: 4d502820 madd.s $f0,$f10,$f5,$f16 802a7f84: 4e5b2061 madd.d $f1,$f18,$f4,$f27 802a7f90: 4e5b2061 madd.d $f1,$f18,$f4,$f27 802a7f9c: 4e5b2061 madd.d $f1,$f18,$f4,$f27 802a7fa8: 4e5b2061 madd.d $f1,$f18,$f4,$f27 802a8068: 00000029 dmadd16 $zero,$zero 802a8290: 4d5b2030 nmadd.s $f0,$f10,$f4,$f27 802a8c94: 4f525020 madd.s $f0,$f26,$f10,$f18 802a9088: 4e207370 nmadd.s $f13,$f17,$f14,$f0 802a94ec: 4d544120 madd.s $f4,$f10,$f8,$f20 802a962c: 4d544120 madd.s $f4,$f10,$f8,$f20 802a9c10: 00000029 dmadd16 $zero,$zero 802a9d64: 00000029 dmadd16 $zero,$zero 802a9d80: 00000029 dmadd16 $zero,$zero 802a9e2c: 00000029 dmadd16 $zero,$zero 802ab81c: 00000029 dmadd16 $zero,$zero 802ac17c: 00000029 dmadd16 $zero,$zero 802ac65c: 4d207861 madd.d $f1,$f9,$f15,$f0 802ac740: 4d207861 madd.d $f1,$f9,$f15,$f0 802ac79c: 4c525320 madd.s $f12,$f2,$f10,$f18 802ad3e4: 4e206c61 madd.d $f17,$f17,$f13,$f0 802ad954: 4d202d20 madd.s $f20,$f9,$f5,$f0 802ae994: 4f2f4920 madd.s $f4,$f25,$f9,$f15 802af200: 4e415720 madd.s $f28,$f18,$f10,$f1 802b10cc: 4e414320 madd.s $f12,$f18,$f8,$f1 802b167c: 4e454420 madd.s $f16,$f18,$f8,$f5 802b1690: 4c554d20 madd.s $f20,$f2,$f9,$f21 802b1d88: 4d4f4320 madd.s $f12,$f10,$f8,$f15 802b1df0: 00000029 dmadd16 $zero,$zero 802b2428: 00000029 dmadd16 $zero,$zero 802b2458: 4d206e61 madd.d $f25,$f9,$f13,$f0 802b30e0: 00000029 dmadd16 $zero,$zero 802b3140: 00000029 dmadd16 $zero,$zero 802b3c68: 00000029 dmadd16 $zero,$zero 802b3ff8: 4f525020 madd.s $f0,$f26,$f10,$f18 802b4010: 4f525020 madd.s $f0,$f26,$f10,$f18 802b4120: 4d472030 nmadd.s $f0,$f10,$f4,$f7 802b453c: 4f2f4920 madd.s $f4,$f25,$f9,$f15 802b5d80: 00000029 dmadd16 $zero,$zero 802b6e38: 00000028 madd16 $zero,$zero 802b6e40: 00000029 dmadd16 $zero,$zero 802b7350: 00000028 madd16 $zero,$zero 802b80a8: 00000028 madd16 $zero,$zero 802b80b0: 00000029 dmadd16 $zero,$zero 802b81d8: 00000028 madd16 $zero,$zero 802b81e0: 00000029 dmadd16 $zero,$zero 802bdda4: 00000028 madd16 $zero,$zero 802bddd8: 00000028 madd16 $zero,$zero 802bde7c: 00000029 dmadd16 $zero,$zero 802bdeac: 00000028 madd16 $zero,$zero 802bdeb8: 00000028 madd16 $zero,$zero 802bdf14: 00000028 madd16 $zero,$zero 802be6d8: 00000028 madd16 $zero,$zero 802be764: 00000028 madd16 $zero,$zero 802c0578: 70000000 mad $zero,$zero 802c07f4: 72070000 mad $s0,$a3 802c1490: 00000028 madd16 $zero,$zero 802c957c: 00000029 dmadd16 $zero,$zero 802c96b0: 00000028 madd16 $zero,$zero 802ccdcc: 00000028 madd16 $zero,$zero 802cddb0: 00290028 madd16 $at,$t1 802cdfb0: 00290028 madd16 $at,$t1 802ce1b0: 00290028 madd16 $at,$t1 802ce6b8: 00290028 madd16 $at,$t1 802d4150: 4e534331 nmadd.d $f12,$f18,$f8,$f19 802d667c: 00000028 madd16 $zero,$zero 802d7614: 00290028 madd16 $at,$t1 802d9770: 00000028 madd16 $zero,$zero 802d9820: 00000029 dmadd16 $zero,$zero