diff options
Diffstat (limited to 'gcc/config/bfin')
-rw-r--r-- | gcc/config/bfin/bfin-protos.h | 4 | ||||
-rw-r--r-- | gcc/config/bfin/bfin.c | 44 | ||||
-rw-r--r-- | gcc/config/bfin/bfin.h | 16 | ||||
-rw-r--r-- | gcc/config/bfin/elf.h | 2 | ||||
-rw-r--r-- | gcc/config/bfin/t-bfin-elf | 4 | ||||
-rw-r--r-- | gcc/config/bfin/t-bfin-linux | 4 | ||||
-rw-r--r-- | gcc/config/bfin/t-bfin-uclinux | 4 |
7 files changed, 75 insertions, 3 deletions
diff --git a/gcc/config/bfin/bfin-protos.h b/gcc/config/bfin/bfin-protos.h index b068bef..6d6ffd2 100644 --- a/gcc/config/bfin/bfin-protos.h +++ b/gcc/config/bfin/bfin-protos.h @@ -26,6 +26,10 @@ typedef enum bfin_cpu_type { BFIN_CPU_UNKNOWN, + BFIN_CPU_BF512, + BFIN_CPU_BF514, + BFIN_CPU_BF516, + BFIN_CPU_BF518, BFIN_CPU_BF522, BFIN_CPU_BF523, BFIN_CPU_BF524, diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c index 9af7fab..ccdd5bc 100644 --- a/gcc/config/bfin/bfin.c +++ b/gcc/config/bfin/bfin.c @@ -114,36 +114,62 @@ struct bfin_cpu struct bfin_cpu bfin_cpus[] = { + {"bf512", BFIN_CPU_BF512, 0x0000, + WA_SPECULATIVE_LOADS}, + + {"bf514", BFIN_CPU_BF514, 0x0000, + WA_SPECULATIVE_LOADS}, + + {"bf516", BFIN_CPU_BF516, 0x0000, + WA_SPECULATIVE_LOADS}, + + {"bf518", BFIN_CPU_BF518, 0x0000, + WA_SPECULATIVE_LOADS}, + + {"bf522", BFIN_CPU_BF522, 0x0002, + WA_SPECULATIVE_LOADS}, {"bf522", BFIN_CPU_BF522, 0x0001, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf522", BFIN_CPU_BF522, 0x0000, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf523", BFIN_CPU_BF523, 0x0002, + WA_SPECULATIVE_LOADS}, {"bf523", BFIN_CPU_BF523, 0x0001, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf523", BFIN_CPU_BF523, 0x0000, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf524", BFIN_CPU_BF524, 0x0002, + WA_SPECULATIVE_LOADS}, {"bf524", BFIN_CPU_BF524, 0x0001, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf524", BFIN_CPU_BF524, 0x0000, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf525", BFIN_CPU_BF525, 0x0002, + WA_SPECULATIVE_LOADS}, {"bf525", BFIN_CPU_BF525, 0x0001, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf525", BFIN_CPU_BF525, 0x0000, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf526", BFIN_CPU_BF526, 0x0002, + WA_SPECULATIVE_LOADS}, {"bf526", BFIN_CPU_BF526, 0x0001, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf526", BFIN_CPU_BF526, 0x0000, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf527", BFIN_CPU_BF527, 0x0002, + WA_SPECULATIVE_LOADS}, {"bf527", BFIN_CPU_BF527, 0x0001, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf527", BFIN_CPU_BF527, 0x0000, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf531", BFIN_CPU_BF531, 0x0006, + WA_SPECULATIVE_LOADS}, {"bf531", BFIN_CPU_BF531, 0x0005, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf531", BFIN_CPU_BF531, 0x0004, @@ -151,6 +177,8 @@ struct bfin_cpu bfin_cpus[] = {"bf531", BFIN_CPU_BF531, 0x0003, WA_SPECULATIVE_LOADS | WA_SPECULATIVE_SYNCS | WA_RETS}, + {"bf532", BFIN_CPU_BF532, 0x0006, + WA_SPECULATIVE_LOADS}, {"bf532", BFIN_CPU_BF532, 0x0005, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf532", BFIN_CPU_BF532, 0x0004, @@ -158,6 +186,8 @@ struct bfin_cpu bfin_cpus[] = {"bf532", BFIN_CPU_BF532, 0x0003, WA_SPECULATIVE_LOADS | WA_SPECULATIVE_SYNCS | WA_RETS}, + {"bf533", BFIN_CPU_BF533, 0x0006, + WA_SPECULATIVE_LOADS}, {"bf533", BFIN_CPU_BF533, 0x0005, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf533", BFIN_CPU_BF533, 0x0004, @@ -186,6 +216,8 @@ struct bfin_cpu bfin_cpus[] = {"bf537", BFIN_CPU_BF537, 0x0001, WA_SPECULATIVE_LOADS | WA_SPECULATIVE_SYNCS | WA_RETS}, + {"bf538", BFIN_CPU_BF538, 0x0005, + WA_SPECULATIVE_LOADS}, {"bf538", BFIN_CPU_BF538, 0x0004, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf538", BFIN_CPU_BF538, 0x0003, @@ -193,6 +225,8 @@ struct bfin_cpu bfin_cpus[] = {"bf538", BFIN_CPU_BF538, 0x0002, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf539", BFIN_CPU_BF539, 0x0005, + WA_SPECULATIVE_LOADS}, {"bf539", BFIN_CPU_BF539, 0x0004, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf539", BFIN_CPU_BF539, 0x0003, @@ -200,26 +234,36 @@ struct bfin_cpu bfin_cpus[] = {"bf539", BFIN_CPU_BF539, 0x0002, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf542", BFIN_CPU_BF542, 0x0002, + WA_SPECULATIVE_LOADS}, {"bf542", BFIN_CPU_BF542, 0x0001, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf542", BFIN_CPU_BF542, 0x0000, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf544", BFIN_CPU_BF544, 0x0002, + WA_SPECULATIVE_LOADS}, {"bf544", BFIN_CPU_BF544, 0x0001, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf544", BFIN_CPU_BF544, 0x0000, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf547", BFIN_CPU_BF547, 0x0002, + WA_SPECULATIVE_LOADS}, {"bf547", BFIN_CPU_BF547, 0x0001, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf547", BFIN_CPU_BF547, 0x0000, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf548", BFIN_CPU_BF548, 0x0002, + WA_SPECULATIVE_LOADS}, {"bf548", BFIN_CPU_BF548, 0x0001, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf548", BFIN_CPU_BF548, 0x0000, WA_SPECULATIVE_LOADS | WA_RETS}, + {"bf549", BFIN_CPU_BF549, 0x0002, + WA_SPECULATIVE_LOADS}, {"bf549", BFIN_CPU_BF549, 0x0001, WA_SPECULATIVE_LOADS | WA_RETS}, {"bf549", BFIN_CPU_BF549, 0x0000, diff --git a/gcc/config/bfin/bfin.h b/gcc/config/bfin/bfin.h index 4ac369f..a5ab7f5 100644 --- a/gcc/config/bfin/bfin.h +++ b/gcc/config/bfin/bfin.h @@ -45,6 +45,22 @@ extern int target_flags; \ switch (bfin_cpu_type) \ { \ + case BFIN_CPU_BF512: \ + builtin_define ("__ADSPBF512__"); \ + builtin_define ("__ADSPBF51x__"); \ + break; \ + case BFIN_CPU_BF514: \ + builtin_define ("__ADSPBF514__"); \ + builtin_define ("__ADSPBF51x__"); \ + break; \ + case BFIN_CPU_BF516: \ + builtin_define ("__ADSPBF516__"); \ + builtin_define ("__ADSPBF51x__"); \ + break; \ + case BFIN_CPU_BF518: \ + builtin_define ("__ADSPBF518__"); \ + builtin_define ("__ADSPBF51x__"); \ + break; \ case BFIN_CPU_BF522: \ builtin_define ("__ADSPBF522__"); \ builtin_define ("__ADSPBF52x__"); \ diff --git a/gcc/config/bfin/elf.h b/gcc/config/bfin/elf.h index 5d317cd..9a2ec01 100644 --- a/gcc/config/bfin/elf.h +++ b/gcc/config/bfin/elf.h @@ -12,6 +12,8 @@ crti%O%s crtbegin%O%s crtlibid%O%s" #undef LIB_SPEC #define LIB_SPEC "--start-group -lc %{msim:-lsim}%{!msim:-lnosys} --end-group \ %{!T*:%{!msim:%{!msdram: \ + %{mcpu=bf512*:-T bf512.ld%s}%{mcpu=bf514*:-T bf514.ld%s} \ + %{mcpu=bf516*:-T bf516.ld%s}%{mcpu=bf518*:-T bf518.ld%s} \ %{mcpu=bf522*:-T bf522.ld%s}%{mcpu=bf523*:-T bf523.ld%s} \ %{mcpu=bf524*:-T bf524.ld%s}%{mcpu=bf525*:-T bf525.ld%s} \ %{mcpu=bf526*:-T bf526.ld%s}%{mcpu=bf527*:-T bf527.ld%s} \ diff --git a/gcc/config/bfin/t-bfin-elf b/gcc/config/bfin/t-bfin-elf index 35fafd2..b5606e7 100644 --- a/gcc/config/bfin/t-bfin-elf +++ b/gcc/config/bfin/t-bfin-elf @@ -21,7 +21,9 @@ MULTILIB_OPTIONS=mcpu=bf532-none MULTILIB_OPTIONS+=mid-shared-library/msep-data/mfdpic mleaf-id-shared-library MULTILIB_DIRNAMES=bf532-none mid-shared-library msep-data mfdpic mleaf-id-shared-library -MULTILIB_MATCHES=mcpu?bf532-none=mcpu?bf522-none mcpu?bf532-none=mcpu?bf523-none +MULTILIB_MATCHES=mcpu?bf532-none=mcpu?bf512-none mcpu?bf532-none=mcpu?bf514-none +MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf516-none mcpu?bf532-none=mcpu?bf518-none +MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf522-none mcpu?bf532-none=mcpu?bf523-none MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf524-none mcpu?bf532-none=mcpu?bf525-none MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf526-none mcpu?bf532-none=mcpu?bf527-none MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf531-none mcpu?bf532-none=mcpu?bf533-none diff --git a/gcc/config/bfin/t-bfin-linux b/gcc/config/bfin/t-bfin-linux index 782d0ca..c8c03d6 100644 --- a/gcc/config/bfin/t-bfin-linux +++ b/gcc/config/bfin/t-bfin-linux @@ -20,7 +20,9 @@ TARGET_LIBGCC2_CFLAGS = -fpic MULTILIB_OPTIONS=mcpu=bf532-none MULTILIB_DIRNAMES=bf532-none -MULTILIB_MATCHES=mcpu?bf532-none=mcpu?bf522-none mcpu?bf532-none=mcpu?bf523-none +MULTILIB_MATCHES=mcpu?bf532-none=mcpu?bf512-none mcpu?bf532-none=mcpu?bf514-none +MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf516-none mcpu?bf532-none=mcpu?bf518-none +MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf522-none mcpu?bf532-none=mcpu?bf523-none MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf524-none mcpu?bf532-none=mcpu?bf525-none MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf526-none mcpu?bf532-none=mcpu?bf527-none MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf531-none mcpu?bf532-none=mcpu?bf533-none diff --git a/gcc/config/bfin/t-bfin-uclinux b/gcc/config/bfin/t-bfin-uclinux index 437666a..d075d6b 100644 --- a/gcc/config/bfin/t-bfin-uclinux +++ b/gcc/config/bfin/t-bfin-uclinux @@ -21,7 +21,9 @@ MULTILIB_OPTIONS=mcpu=bf532-none MULTILIB_OPTIONS+=mid-shared-library/msep-data mleaf-id-shared-library MULTILIB_DIRNAMES=bf532-none mid-shared-library msep-data mleaf-id-shared-library -MULTILIB_MATCHES=mcpu?bf532-none=mcpu?bf522-none mcpu?bf532-none=mcpu?bf523-none +MULTILIB_MATCHES=mcpu?bf532-none=mcpu?bf512-none mcpu?bf532-none=mcpu?bf514-none +MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf516-none mcpu?bf532-none=mcpu?bf518-none +MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf522-none mcpu?bf532-none=mcpu?bf523-none MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf524-none mcpu?bf532-none=mcpu?bf525-none MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf526-none mcpu?bf532-none=mcpu?bf527-none MULTILIB_MATCHES+=mcpu?bf532-none=mcpu?bf531-none mcpu?bf532-none=mcpu?bf533-none |