diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2013-07-22 21:41:44 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2013-07-22 21:41:44 +0000 |
commit | 38ae58ca9fd17ebf4fe679fe7a91472f5d6c37b1 (patch) | |
tree | 456e7a0274b3b7a7b98769954c1ec28425700400 /gcc/config.gcc | |
parent | 16a1d8fe2955c301ae61a13c4cbf8bd2c83d17f0 (diff) | |
download | gcc-38ae58ca9fd17ebf4fe679fe7a91472f5d6c37b1.zip gcc-38ae58ca9fd17ebf4fe679fe7a91472f5d6c37b1.tar.gz gcc-38ae58ca9fd17ebf4fe679fe7a91472f5d6c37b1.tar.bz2 |
config.gcc (sparc*-*-*): Accept leon3 processor.
* config.gcc (sparc*-*-*): Accept leon3 processor.
(sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
* doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
* config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
* config/sparc/sparc.opt (enum processor_type): Add leon3.
(mfix-ut699): Adjust comment.
* config/sparc/sparc.h (TARGET_CPU_leon3): New define.
(CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
(CPP_CPU_SPEC): Likewise.
(ASM_CPU_SPEC): Likewise.
* config/sparc/sparc.c (leon3_cost): New constant.
(sparc_option_override): Add leon3 support.
(mem_ref): New function.
(sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
(sparc_do_work_around_errata): Look into the instruction in the delay
slot and adjust accordingly. Add fix for the data cache nullify issues
of the UT699. Change insertion position for the NOP.
* config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
(leon3_load): New reservation.
(leon_store): Bump latency to 2.
(grfpu): New automaton.
(grfpu_alu): New unit.
(grfpu_ds): Likewise.
(leon_fp_alu): Adjust.
(leon_fp_mult): Delete.
(leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
(leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
* config/sparc/sparc.md (cpu): Add leon3.
* config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
(swapsi): Likewise.
(atomic_test_and_set): Likewise.
(ldstub): Likewise.
From-SVN: r201147
Diffstat (limited to 'gcc/config.gcc')
-rw-r--r-- | gcc/config.gcc | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc index 1a398a7..94c21c0 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -3662,7 +3662,7 @@ case "${target}" in case ${val} in "" | sparc | sparcv9 | sparc64 \ | v7 | cypress \ - | v8 | supersparc | hypersparc | leon \ + | v8 | supersparc | hypersparc | leon | leon3 \ | sparclite | f930 | f934 | sparclite86x \ | sparclet | tsc701 \ | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \ @@ -3819,15 +3819,6 @@ case ${target} in cxx_target_objs="${cxx_target_objs} sh-c.o" ;; - sparc-leon*-*) - if test x$with_tune = x ; then - with_tune=leon; - fi - - # The SPARC port checks this value at compile-time. - target_cpu_default2="TARGET_CPU_$with_cpu" - ;; - sparc*-*-*) # Some standard aliases. case x$with_cpu in @@ -3839,6 +3830,17 @@ case ${target} in ;; esac + if test x$with_tune = x ; then + case ${target} in + *-leon-*) + with_tune=leon + ;; + *-leon[3-9]*) + with_tune=leon3 + ;; + esac + fi + # The SPARC port checks this value at compile-time. target_cpu_default2="TARGET_CPU_$with_cpu" ;; |