From b91a266ce9ad05c25ded978062fe68c365f4b461 Mon Sep 17 00:00:00 2001 From: eager Date: Mon, 13 Apr 2009 22:49:18 +0000 Subject: [PATCH] Add configuration-specific options for --target=powerpc-xilinx-eabi. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146016 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 8 ++++++++ gcc/config.gcc | 8 +------- gcc/config/rs6000/rs6000-c.c | 20 ++++++++++++++++++++ 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6301567..3e08e2b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2009-04-13 Michael Eager + + * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu: + _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL + * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi + * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file, + remove duplicate config + 2009-04-13 Dwarakanath Rajagopal * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump diff --git a/gcc/config.gcc b/gcc/config.gcc index 21f4920..ac2fcc1 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1775,7 +1775,7 @@ powerpc-*-eabialtivec*) use_gcc_stdint=wrap ;; powerpc-xilinx-eabi*) - tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h" + tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h rs6000/xfpu.h rs6000/xilinx.h" extra_options="${extra_options} rs6000/sysv4.opt" tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" use_gcc_stdint=wrap @@ -1899,12 +1899,6 @@ powerpcle-*-eabi*) extra_options="${extra_options} rs6000/sysv4.opt" use_gcc_stdint=wrap ;; -powerpc-xilinx-eabi*) - tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h rs6000/xfpu.h" - extra_options="${extra_options} rs6000/sysv4.opt" - tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" - use_gcc_stdint=wrap - ;; rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*) tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h" tmake_file=rs6000/t-aix43 diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c index 3aa1714..79c96ac 100644 --- a/gcc/config/rs6000/rs6000-c.c +++ b/gcc/config/rs6000/rs6000-c.c @@ -347,6 +347,26 @@ rs6000_cpu_cpp_builtins (cpp_reader *pfile) /* Let the compiled code know if 'f' class registers will not be available. */ if (TARGET_SOFT_FLOAT || !TARGET_FPRS) builtin_define ("__NO_FPRS__"); + + /* Generate defines for Xilinx FPU. */ + if (rs6000_xilinx_fpu) + { + builtin_define ("_XFPU"); + if (rs6000_single_float && ! rs6000_double_float) + { + if (rs6000_simple_fpu) + builtin_define ("_XFPU_SP_LITE"); + else + builtin_define ("_XFPU_SP_FULL"); + } + if (rs6000_double_float) + { + if (rs6000_simple_fpu) + builtin_define ("_XFPU_DP_LITE"); + else + builtin_define ("_XFPU_DP_FULL"); + } + } } -- 2.7.4