From: Corinna Vinschen Date: Thu, 23 Oct 2003 09:43:20 +0000 (+0000) Subject: * sh.h (EF_SH4A, EF_SH4AL_DSP, EF_SH4_NOFPU, EF_SH4A_NOFPU): New. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=cfb48f10917356aea80f69bca4e1f98b29460b6c;p=pf3gnuchains%2Fpf3gnuchains3x.git * sh.h (EF_SH4A, EF_SH4AL_DSP, EF_SH4_NOFPU, EF_SH4A_NOFPU): New. (EF_SH_MERGE_MACH): Combine them. --- diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index dbf3297eb2..724ac712cf 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,9 @@ +2003-10-22 Alexandre Oliva , + Michael Snyder + + * sh.h (EF_SH4A, EF_SH4AL_DSP, EF_SH4_NOFPU, EF_SH4A_NOFPU): New. + (EF_SH_MERGE_MACH): Combine them. + 2003-10-18 Hans-Peter Nilsson * mmix.h (R_MMIX_PUSHJ_STUBBABLE): New reloc number. diff --git a/include/elf/sh.h b/include/elf/sh.h index 42862355a8..15d460d36b 100644 --- a/include/elf/sh.h +++ b/include/elf/sh.h @@ -27,13 +27,18 @@ #define EF_SH1 1 #define EF_SH2 2 #define EF_SH3 3 -#define EF_SH_HAS_DSP(flags) ((flags) & 4) +#define EF_SH_HAS_DSP(flags) (((flags) & EF_SH_MACH_MASK & ~3) == 4) #define EF_SH_DSP 4 #define EF_SH3_DSP 5 +#define EF_SH4AL_DSP 6 #define EF_SH_HAS_FP(flags) ((flags) & 8) #define EF_SH3E 8 #define EF_SH4 9 #define EF_SH2E 11 +#define EF_SH4A 12 + +#define EF_SH4_NOFPU 0x10 +#define EF_SH4A_NOFPU 0x11 /* This one can only mix in objects from other EF_SH5 objects. */ #define EF_SH5 10 @@ -56,6 +61,20 @@ : (((mach1) == EF_SH3E && (mach2) == EF_SH_UNKNOWN) \ || ((mach2) == EF_SH3E && (mach1) == EF_SH_UNKNOWN)) \ ? EF_SH4 \ + /* ??? SH4? Why not SH3E? */ \ + : ((((mach1) == EF_SH4_NOFPU || (mach1) == EF_SH4A_NOFPU) \ + && EF_SH_HAS_DSP (mach2)) \ + || (((mach2) == EF_SH4_NOFPU || (mach2) == EF_SH4A_NOFPU) \ + && EF_SH_HAS_DSP (mach1))) \ + ? EF_SH4AL_DSP \ + : ((mach1) == EF_SH4_NOFPU && EF_SH_HAS_FP (mach2)) \ + ? ((mach2) < EF_SH4A) ? EF_SH4 : (mach2) \ + : ((mach2) == EF_SH4_NOFPU && EF_SH_HAS_FP (mach1)) \ + ? ((mach1) < EF_SH4A) ? EF_SH4 : (mach1) \ + : ((mach1) == EF_SH4A_NOFPU && EF_SH_HAS_FP (mach2)) \ + ? ((mach2) <= EF_SH4A) ? EF_SH4A : (mach2) \ + : ((mach2) == EF_SH4A_NOFPU && EF_SH_HAS_FP (mach1)) \ + ? ((mach1) <= EF_SH4A) ? EF_SH4A : (mach1) \ : (((mach1) == EF_SH2E ? 7 : (mach1)) > ((mach2) == EF_SH2E ? 7 : (mach2)) \ ? (mach1) : (mach2)))