diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2003-10-23 09:43:20 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2003-10-23 09:43:20 +0000 |
commit | 34dd9dbc047a6aa8547d1c6c2f04154d272ee76f (patch) | |
tree | c733897d654397c8d30f3b297064246b768aa5c6 /include | |
parent | f49c14a197251128fa882d7daaef0d5d95891fdc (diff) | |
download | cygnal-34dd9dbc047a6aa8547d1c6c2f04154d272ee76f.tar.gz cygnal-34dd9dbc047a6aa8547d1c6c2f04154d272ee76f.tar.bz2 cygnal-34dd9dbc047a6aa8547d1c6c2f04154d272ee76f.zip |
* sh.h (EF_SH4A, EF_SH4AL_DSP, EF_SH4_NOFPU, EF_SH4A_NOFPU): New.
(EF_SH_MERGE_MACH): Combine them.
Diffstat (limited to 'include')
-rw-r--r-- | include/elf/ChangeLog | 6 | ||||
-rw-r--r-- | include/elf/sh.h | 21 |
2 files changed, 26 insertions, 1 deletions
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog index dbf3297eb..724ac712c 100644 --- a/include/elf/ChangeLog +++ b/include/elf/ChangeLog @@ -1,3 +1,9 @@ +2003-10-22 Alexandre Oliva <aoliva@redhat.com>, + Michael Snyder <msnyder@redhat.com> + + * 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 <hp@bitrange.com> * mmix.h (R_MMIX_PUSHJ_STUBBABLE): New reloc number. diff --git a/include/elf/sh.h b/include/elf/sh.h index 42862355a..15d460d36 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))) |