This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: mips cc1 spec vs. fp reg defines vs. assembly code


At 09 Jun 2002 12:57:46 -0700, Eric Christopher wrote:
> ps. Send me the changes that you made in config.gcc for mipsisa64...
> there might be a problem there as well.

at first i used only:

mipsisa64-*-elf*)
	tm_file="mips/isa3264.h mips/abi64.h"
	tmake_file=mips/t-isa3264
	;;

(which would set the compiled-in default ISA to mips32), and then
forced -mips64 on the cmd line.  I don't _think_ there should be harm
from having the default isa not match the target name, but anyway,
just in case i'm also now trying:

mipsisa64-*-elf*)
	tm_file="mips/isa64.h mips/isa3264.h mips/abi64.h"
	tmake_file=mips/t-isa3264
	;;

with "isa64.h" containing only:

#ifndef MIPS_ISA_DEFAULT
#define MIPS_ISA_DEFAULT 64
#endif

(!!! waiting for tm_defines; please don't try to apply this 8-).



chris

ps. i recently noticed some problems w/ some of the macros in mips.h,
which it looks like you've touched but not fixed.  I can send a patch
if you'd like, but it looks like it'll just cause you conflicts.  8-)

>  /* This is a catch all for the other new mips4 instructions: indexed load and
>     indexed prefetch instructions, the FP madd,msub,nmadd, and nmsub instructions,
>     and the FP recip and recip sqrt instructions */
> -#define ISA_HAS_FP4             (mips_isa == 4				\
> +#define ISA_HAS_FP4             (ISA_MIPS4				\
>   				 && ! TARGET_MIPS16)

this should be (ISA_MIPS4 || ISA_MIPS64) && ..., i believe.

also, use of nmadd / nmsub are actually conditionalized differently.


>  /* ISA has multiply-accumulate instructions, madd and msub.  */
> -#define ISA_HAS_MADD_MSUB       ((mips_isa == 32			\
> -				  || mips_isa == 64			\
> +#define ISA_HAS_MADD_MSUB       ((ISA_MIPS32				\
> +				  || ISA_MIPS64				\
>  				  ) && ! TARGET_MIPS16)

i added a comment here "integer", to differentiate from fp madd/msub
which is covered by ISA_HAS_FP4, and ISA_HAS_NMADD_NMSUB which does fp
nmadd/nmsub.


>  /* ISA has nmadd and nmsub instructions.  */
> -#define ISA_HAS_NMADD_NMSUB	(mips_isa == 4				\
> +#define ISA_HAS_NMADD_NMSUB	(ISA_MIPS4				\
>  				 && ! TARGET_MIPS16)

here, again, MIPS64, and added a comment "floating-point."  8-)




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]