Commit 78f5898b by Aldy Hernandez Committed by David Edelsohn

config.gcc: Add .opt magic for the rs6000 ports.

2005-05-05  Aldy Hernandez  <aldyh@redhat.com>

        * config.gcc: Add .opt magic for the rs6000 ports.

        * doc/invoke.texi: Document -mabi= option properly.  Document
        -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
        -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
        -misel=.

        * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
        SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
        TARGET_XL_COMPAT.

        * config/rs6000/aix.opt: New.
        * config/rs6000/aix41.opt: New.
        * config/rs6000/aix64.opt: New.
        * config/rs6000/darwin.opt: New.
        * config/rs6000/linux64.opt: New.
        * config/rs6000/rs6000.opt: New.
        * config/rs6000/sysv4.opt: New.

        * config/rs6000/sysv4.h: Delete definitions of MASK_* and
        associated TARGET_*.  Remove SUBTARGET_OPTIONS,
        SUBTARGET_SWITCHES.
        Define TARGET_USES_SYSV4_OPT.
        * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
        * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
        TARGET_USES_AIX64_OPT.
        * config/rs6000/aix51.h: Same.
        * config/rs6000/aix52.h: Same.
        * config/rs6000/darwin.h: Remove
        SUBTARGET_SWITCHES.  Use TARGET_ALTIVEC_VRSAVE instead of
        rs6000_altivec_vrsave.
        * config/rs6000/linux64.h: Use
        rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.

        * config/rs6000/rs6000.c: Remove definitions of
        rs6000_sched_restricted_insns_priority,
        rs6000_long_double_size_string, rs6000_altivec_vrsave,
        rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
        rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
        rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
        rs6000_alignment_string.  Define rs6000_explicit_options.
        (rs6000_parse_abi_options): Remove.
        (rs6000_parse_alignment_option): Remove.
        (rs6000_parse_float_gprs_option): Remove.
        (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
        TARGET_DEFAULT_TARGET_FLAGS.
        (rs6000_override_options): Revamp to use new .opt machinery.

        * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
        of new .opt machinery.  Remove target_flags.  Redefine
        TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
        SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
        rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
        rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
        rs6000_longcall_switch, rs6000_default_long_calls,
        rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
        rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
        TARGET_ALTIVEC_VRSAVE.

From-SVN: r99284
parent 7f9a7fc3
2005-05-05 Aldy Hernandez <aldyh@redhat.com>
* config.gcc: Add .opt magic for the rs6000 ports.
* doc/invoke.texi: Document -mabi= option properly. Document
-misel and -mno-sel. Document -mspe and -mno-spe. Document
-mvrsave and -mno-vrsave. Document deprecation of -mspe= and
-misel=.
* config/rs6000/aix.h: Remove XL_COMPAT stuff. Remove
SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES. Define
TARGET_XL_COMPAT.
* config/rs6000/aix.opt: New.
* config/rs6000/aix41.opt: New.
* config/rs6000/aix64.opt: New.
* config/rs6000/darwin.opt: New.
* config/rs6000/linux64.opt: New.
* config/rs6000/rs6000.opt: New.
* config/rs6000/sysv4.opt: New.
* config/rs6000/sysv4.h: Delete definitions of MASK_* and
associated TARGET_*. Remove SUBTARGET_OPTIONS,
SUBTARGET_SWITCHES.
Define TARGET_USES_SYSV4_OPT.
* config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
* config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES. Define
TARGET_USES_AIX64_OPT.
* config/rs6000/aix51.h: Same.
* config/rs6000/aix52.h: Same.
* config/rs6000/darwin.h: Remove
SUBTARGET_SWITCHES. Use TARGET_ALTIVEC_VRSAVE instead of
rs6000_altivec_vrsave.
* config/rs6000/linux64.h: Use
rs6000_explicit_options. Remove EXTRA_SUBTARGET_SWITCHES.
* config/rs6000/rs6000.c: Remove definitions of
rs6000_sched_restricted_insns_priority,
rs6000_long_double_size_string, rs6000_altivec_vrsave,
rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
rs6000_alignment_string. Define rs6000_explicit_options.
(rs6000_parse_abi_options): Remove.
(rs6000_parse_alignment_option): Remove.
(rs6000_parse_float_gprs_option): Remove.
(rs6000_handle_option): New. Define TARGET_HANDLE_OPTION. Define
TARGET_DEFAULT_TARGET_FLAGS.
(rs6000_override_options): Revamp to use new .opt machinery.
* config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
of new .opt machinery. Remove target_flags. Redefine
TARGET_MFCRF and TARGET_POWERPC64. Remove TARGET_SWITCHES,
SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
rs6000_longcall_switch, rs6000_default_long_calls,
rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
TARGET_ALTIVEC_VRSAVE.
2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org> 2005-05-05 Ralf Corsepius <ralf.corsepius@rtems.org>
* config.gcc (hppa1.1-*-rtems*): Remove. * config.gcc (hppa1.1-*-rtems*): Remove.
......
...@@ -1581,10 +1581,12 @@ powerpc64-*-linux*) ...@@ -1581,10 +1581,12 @@ powerpc64-*-linux*)
test x$with_cpu != x || cpu_is_64bit=yes test x$with_cpu != x || cpu_is_64bit=yes
test x$cpu_is_64bit != xyes || tm_file="${tm_file} rs6000/default64.h" test x$cpu_is_64bit != xyes || tm_file="${tm_file} rs6000/default64.h"
tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h" tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h"
extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
tmake_file="rs6000/t-fprules ${tmake_file} rs6000/t-ppccomm rs6000/t-linux64" tmake_file="rs6000/t-fprules ${tmake_file} rs6000/t-ppccomm rs6000/t-linux64"
;; ;;
powerpc64-*-gnu*) powerpc64-*-gnu*)
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux64.h rs6000/gnu.h" tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux64.h rs6000/gnu.h"
extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-gnu rs6000/t-linux64" tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-gnu rs6000/t-linux64"
;; ;;
powerpc-*-beos*) powerpc-*-beos*)
...@@ -1596,6 +1598,7 @@ powerpc-*-beos*) ...@@ -1596,6 +1598,7 @@ powerpc-*-beos*)
powerpc-*-darwin*) powerpc-*-darwin*)
tm_file="${tm_file} rs6000/darwin.h" tm_file="${tm_file} rs6000/darwin.h"
tmake_file="${tmake_file} rs6000/t-darwin" tmake_file="${tmake_file} rs6000/t-darwin"
extra_options="${extra_options} rs6000/darwin.opt"
case ${target} in case ${target} in
*-darwin1[0-9]*) tmake_file="${tmake_file} rs6000/t-darwin8" ;; *-darwin1[0-9]*) tmake_file="${tmake_file} rs6000/t-darwin8" ;;
*-darwin[0-7]*) ;; *-darwin[0-7]*) ;;
...@@ -1606,14 +1609,17 @@ powerpc-*-darwin*) ...@@ -1606,14 +1609,17 @@ powerpc-*-darwin*)
powerpc*-*-freebsd*) powerpc*-*-freebsd*)
tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h" tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;; ;;
powerpc-*-netbsd*) powerpc-*-netbsd*)
tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h" tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
tmake_file="${tmake_file} rs6000/t-netbsd" tmake_file="${tmake_file} rs6000/t-netbsd"
extra_options="${extra_options} rs6000/sysv4.opt"
;; ;;
powerpc-*-chorusos*) powerpc-*-chorusos*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h chorus.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h chorus.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
case ${enable_threads} in case ${enable_threads} in
yes | posix) yes | posix)
thread_file='posix' thread_file='posix'
...@@ -1623,43 +1629,53 @@ powerpc-*-chorusos*) ...@@ -1623,43 +1629,53 @@ powerpc-*-chorusos*)
;; ;;
powerpc-*-eabispe*) powerpc-*-eabispe*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabispe.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabispe.h"
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-spe rs6000/t-ppccomm" tmake_file="rs6000/t-spe rs6000/t-ppccomm"
;; ;;
powerpc-*-eabisimaltivec*) powerpc-*-eabisimaltivec*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h"
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
;; ;;
powerpc-*-eabisim*) powerpc-*-eabisim*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h"
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
;; ;;
powerpc-*-elf*) powerpc-*-elf*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
use_fixproto=yes use_fixproto=yes
;; ;;
powerpc-*-eabialtivec*) powerpc-*-eabialtivec*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h"
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
;; ;;
powerpc-*-eabi*) powerpc-*-eabi*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h"
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
;; ;;
powerpc-*-rtems*) powerpc-*-rtems*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/rtems.h rtems.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/rtems.h rtems.h"
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-fprules rs6000/t-rtems t-rtems rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-rtems t-rtems rs6000/t-ppccomm"
;; ;;
powerpc-*-linux*altivec*) powerpc-*-linux*altivec*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h"
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
;; ;;
powerpc-*-linux*spe*) powerpc-*-linux*spe*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxspe.h"
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
;; ;;
powerpc-*-linux*) powerpc-*-linux*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
case ${enable_targets}:${cpu_is_64bit} in case ${enable_targets}:${cpu_is_64bit} in
*powerpc64* | all:* | *:yes) *powerpc64* | all:* | *:yes)
...@@ -1676,6 +1692,7 @@ powerpc-*-linux*) ...@@ -1676,6 +1692,7 @@ powerpc-*-linux*)
;; ;;
powerpc-*-gnu-gnualtivec*) powerpc-*-gnu-gnualtivec*)
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h" tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h"
extra_options="${extra_options} rs6000/sysv4.opt"
tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
if test x$enable_threads = xyes; then if test x$enable_threads = xyes; then
thread_file='posix' thread_file='posix'
...@@ -1684,6 +1701,7 @@ powerpc-*-gnu-gnualtivec*) ...@@ -1684,6 +1701,7 @@ powerpc-*-gnu-gnualtivec*)
powerpc-*-gnu*) powerpc-*-gnu*)
tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/gnu.h" tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/gnu.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcos t-slibgcc-elf-ver t-gnu rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
if test x$enable_threads = xyes; then if test x$enable_threads = xyes; then
thread_file='posix' thread_file='posix'
fi fi
...@@ -1694,11 +1712,13 @@ powerpc-wrs-vxworks*) ...@@ -1694,11 +1712,13 @@ powerpc-wrs-vxworks*)
tm_file="rs6000/rs6000.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h" tm_file="rs6000/rs6000.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
tm_file="${tm_file} vxworks.h rs6000/vxworks.h" tm_file="${tm_file} vxworks.h rs6000/vxworks.h"
tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks" tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
extra_options="${extra_options} rs6000/sysv4.opt"
extra_headers=ppc-asm.h extra_headers=ppc-asm.h
;; ;;
powerpc-wrs-windiss*) # Instruction-level simulator for VxWorks. powerpc-wrs-windiss*) # Instruction-level simulator for VxWorks.
tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/windiss.h" tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/windiss.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
thread_file="" thread_file=""
use_fixproto=yes use_fixproto=yes
;; ;;
...@@ -1706,6 +1726,7 @@ powerpc-*-lynxos*) ...@@ -1706,6 +1726,7 @@ powerpc-*-lynxos*)
xm_defines=POSIX xm_defines=POSIX
tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h" tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
tmake_file="t-lynx rs6000/t-lynx" tmake_file="t-lynx rs6000/t-lynx"
extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
extra_options="${extra_options} lynx.opt" extra_options="${extra_options} lynx.opt"
thread_file=lynx thread_file=lynx
...@@ -1715,32 +1736,39 @@ powerpc-*-lynxos*) ...@@ -1715,32 +1736,39 @@ powerpc-*-lynxos*)
powerpcle-*-sysv*) powerpcle-*-sysv*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
use_fixproto=yes use_fixproto=yes
;; ;;
powerpcle-*-elf*) powerpcle-*-elf*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
use_fixproto=yes use_fixproto=yes
;; ;;
powerpcle-*-eabisim*) powerpcle-*-eabisim*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;; ;;
powerpcle-*-eabi*) powerpcle-*-eabi*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;; ;;
powerpc-*-kaos*) powerpc-*-kaos*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h kaos.h rs6000/kaos-ppc.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h kaos.h rs6000/kaos-ppc.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;; ;;
powerpcle-*-kaos*) powerpcle-*-kaos*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h kaos.h rs6000/kaos-ppc.h" tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h kaos.h rs6000/kaos-ppc.h"
tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;; ;;
rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*) rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*)
tm_file="${tm_file} rs6000/aix.h rs6000/aix41.h rs6000/xcoff.h" tm_file="${tm_file} rs6000/aix.h rs6000/aix41.h rs6000/xcoff.h"
tmake_file="rs6000/t-fprules rs6000/t-newas" tmake_file="rs6000/t-fprules rs6000/t-newas"
extra_options="${extra_options} rs6000/aix.opt rs6000/aix41.opt"
use_collect2=yes use_collect2=yes
extra_headers= extra_headers=
use_fixproto=yes use_fixproto=yes
...@@ -1748,12 +1776,14 @@ rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*) ...@@ -1748,12 +1776,14 @@ rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*)
rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*) rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h" tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h"
tmake_file=rs6000/t-aix43 tmake_file=rs6000/t-aix43
extra_options="${extra_options} rs6000/aix.opt rs6000/aix64.opt"
use_collect2=yes use_collect2=yes
thread_file='aix' thread_file='aix'
extra_headers= extra_headers=
;; ;;
rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*) rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h" tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h"
extra_options="${extra_options} rs6000/aix.opt rs6000/aix64.opt"
tmake_file=rs6000/t-aix43 tmake_file=rs6000/t-aix43
use_collect2=yes use_collect2=yes
thread_file='aix' thread_file='aix'
...@@ -1762,6 +1792,7 @@ rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*) ...@@ -1762,6 +1792,7 @@ rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h" tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h"
tmake_file=rs6000/t-aix52 tmake_file=rs6000/t-aix52
extra_options="${extra_options} rs6000/aix.opt rs6000/aix64.opt"
use_collect2=yes use_collect2=yes
thread_file='aix' thread_file='aix'
extra_headers= extra_headers=
......
...@@ -195,17 +195,8 @@ ...@@ -195,17 +195,8 @@
#define JUMP_TABLES_IN_TEXT_SECTION 1 #define JUMP_TABLES_IN_TEXT_SECTION 1
/* Enable AIX XL compiler calling convention breakage compatibility. */ /* Enable AIX XL compiler calling convention breakage compatibility. */
#undef TARGET_XL_COMPAT #undef TARGET_XL_COMPAT
#define MASK_XL_COMPAT 0x40000000 #define TARGET_XL_COMPAT has_xl_compat_option
#define TARGET_XL_COMPAT (target_flags & MASK_XL_COMPAT)
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
{"xl-compat", MASK_XL_COMPAT, \
N_("Conform more closely to IBM XLC semantics") }, \
{"no-xl-compat", - MASK_XL_COMPAT, \
N_("Default GCC semantics that differ from IBM XLC") }, \
SUBSUBTARGET_SWITCHES
#define SUBSUBTARGET_SWITCHES
/* Define any extra SPECS that the compiler needs to generate. */ /* Define any extra SPECS that the compiler needs to generate. */
#undef SUBTARGET_EXTRA_SPECS #undef SUBTARGET_EXTRA_SPECS
......
; AIX options.
;
; Copyright (C) 2005 Free Software Foundation, Inc.
; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 2, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
; License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING. If not, write to the Free
; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
; 02111-1307, USA.
mxl-compat
Target Var(has_xl_compat_option)
Conform more closely to IBM XLC semantics
...@@ -22,11 +22,6 @@ ...@@ -22,11 +22,6 @@
Free Software Foundation, 59 Temple Place - Suite 330, Boston, Free Software Foundation, 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA. */ MA 02111-1307, USA. */
#undef SUBSUBTARGET_SWITCHES
#define SUBSUBTARGET_SWITCHES \
{"pe", 0, \
N_("Support message passing with the Parallel Environment") },
#undef ASM_SPEC #undef ASM_SPEC
#define ASM_SPEC "-u %(asm_cpu)" #define ASM_SPEC "-u %(asm_cpu)"
......
; Options for AIX4.1.
;
; Copyright (C) 2005 Free Software Foundation, Inc.
; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 2, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
; License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING. If not, write to the Free
; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
; 02111-1307, USA.
mpe
Target Report RejectNegative Var(internal_nothing_1)
Support message passing with the Parallel Environment
...@@ -21,17 +21,6 @@ ...@@ -21,17 +21,6 @@
Free Software Foundation, 59 Temple Place - Suite 330, Boston, Free Software Foundation, 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA. */ MA 02111-1307, USA. */
/* AIX 4.3 and above support 64-bit executables. */
#undef SUBSUBTARGET_SWITCHES
#define SUBSUBTARGET_SWITCHES \
{"aix64", MASK_64BIT | MASK_POWERPC64 \
| MASK_POWERPC | MASK_PPC_GFXOPT, \
N_("Compile for 64-bit pointers") }, \
{"aix32", - (MASK_64BIT | MASK_POWERPC64), \
N_("Compile for 32-bit pointers") }, \
{"pe", 0, \
N_("Support message passing with the Parallel Environment") },
/* Sometimes certain combinations of command options do not make sense /* Sometimes certain combinations of command options do not make sense
on a particular target machine. You can define a macro on a particular target machine. You can define a macro
`OVERRIDE_OPTIONS' to take account of this. This macro, if `OVERRIDE_OPTIONS' to take account of this. This macro, if
...@@ -184,3 +173,6 @@ do { \ ...@@ -184,3 +173,6 @@ do { \
.set directives. We handle this by deferring the output of .set .set directives. We handle this by deferring the output of .set
directives to the end of the compilation unit. */ directives to the end of the compilation unit. */
#define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) true #define TARGET_DEFERRED_OUTPUT_DEFS(DECL,TARGET) true
/* This target uses the aix64.opt file. */
#define TARGET_USES_AIX64_OPT 1
...@@ -20,17 +20,6 @@ ...@@ -20,17 +20,6 @@
Free Software Foundation, 59 Temple Place - Suite 330, Boston, Free Software Foundation, 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA. */ MA 02111-1307, USA. */
/* AIX V5 and above support 64-bit executables. */
#undef SUBSUBTARGET_SWITCHES
#define SUBSUBTARGET_SWITCHES \
{"aix64", MASK_64BIT | MASK_POWERPC64 \
| MASK_POWERPC | MASK_PPC_GFXOPT, \
N_("Compile for 64-bit pointers") }, \
{"aix32", - (MASK_64BIT | MASK_POWERPC64), \
N_("Compile for 32-bit pointers") }, \
{"pe", 0, \
N_("Support message passing with the Parallel Environment") },
/* Sometimes certain combinations of command options do not make sense /* Sometimes certain combinations of command options do not make sense
on a particular target machine. You can define a macro on a particular target machine. You can define a macro
`OVERRIDE_OPTIONS' to take account of this. This macro, if `OVERRIDE_OPTIONS' to take account of this. This macro, if
...@@ -193,3 +182,5 @@ do { \ ...@@ -193,3 +182,5 @@ do { \
#undef TARGET_C99_FUNCTIONS #undef TARGET_C99_FUNCTIONS
#define TARGET_C99_FUNCTIONS 1 #define TARGET_C99_FUNCTIONS 1
/* This target uses the aix64.opt file. */
#define TARGET_USES_AIX64_OPT 1
...@@ -20,17 +20,6 @@ ...@@ -20,17 +20,6 @@
Free Software Foundation, 59 Temple Place - Suite 330, Boston, Free Software Foundation, 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA. */ MA 02111-1307, USA. */
/* AIX V5 and above support 64-bit executables. */
#undef SUBSUBTARGET_SWITCHES
#define SUBSUBTARGET_SWITCHES \
{"aix64", MASK_64BIT | MASK_POWERPC64 \
| MASK_POWERPC | MASK_PPC_GFXOPT, \
N_("Compile for 64-bit pointers") }, \
{"aix32", - (MASK_64BIT | MASK_POWERPC64), \
N_("Compile for 32-bit pointers") }, \
{"pe", 0, \
N_("Support message passing with the Parallel Environment") },
/* Sometimes certain combinations of command options do not make sense /* Sometimes certain combinations of command options do not make sense
on a particular target machine. You can define a macro on a particular target machine. You can define a macro
`OVERRIDE_OPTIONS' to take account of this. This macro, if `OVERRIDE_OPTIONS' to take account of this. This macro, if
...@@ -188,3 +177,6 @@ do { \ ...@@ -188,3 +177,6 @@ do { \
#ifndef _AIX52 #ifndef _AIX52
extern long long int atoll(const char *); extern long long int atoll(const char *);
#endif #endif
/* This target uses the aix64.opt file. */
#define TARGET_USES_AIX64_OPT 1
; Options for the 64-bit flavor of AIX.
;
; Copyright (C) 2005 Free Software Foundation, Inc.
; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 2, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
; License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING. If not, write to the Free
; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
; 02111-1307, USA.
maix64
Target Report RejectNegative Mask(64BIT)
Compile for 64-bit pointers
maix32
Target Report RejectNegative InverseMask(64BIT)
Compile for 32-bit pointers
mpe
Target Report RejectNegative Var(internal_nothing_1)
Support message passing with the Parallel Environment
...@@ -63,25 +63,13 @@ ...@@ -63,25 +63,13 @@
while (0) while (0)
/* */
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
{ "64", MASK_64BIT | MASK_POWERPC64, \
N_("Generate 64-bit code") }, \
{ "32", - (MASK_64BIT | MASK_POWERPC64), \
N_("Generate 32-bit code") }, \
{"dynamic-no-pic", MASK_MACHO_DYNAMIC_NO_PIC, \
N_("Generate code suitable for executables (NOT shared libs)")}, \
{"no-dynamic-no-pic", -MASK_MACHO_DYNAMIC_NO_PIC, ""},
/* The Darwin ABI always includes AltiVec, can't be (validly) turned /* The Darwin ABI always includes AltiVec, can't be (validly) turned
off. */ off. */
#define SUBTARGET_OVERRIDE_OPTIONS \ #define SUBTARGET_OVERRIDE_OPTIONS \
do { \ do { \
rs6000_altivec_abi = 1; \ rs6000_altivec_abi = 1; \
rs6000_altivec_vrsave = 1; \ TARGET_ALTIVEC_VRSAVE = 1; \
if (DEFAULT_ABI == ABI_DARWIN) \ if (DEFAULT_ABI == ABI_DARWIN) \
{ \ { \
if (MACHO_DYNAMIC_NO_PIC_P) \ if (MACHO_DYNAMIC_NO_PIC_P) \
......
; Darwin options for PPC port.
;
; Copyright (C) 2005 Free Software Foundation, Inc.
; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 2, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
; License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING. If not, write to the Free
; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
; 02111-1307, USA.
m64
Target RejectNegative Mask(64BIT)
Generate 64-bit code
m32
Target RejectNegative InverseMask(64BIT)
Generate 32-bit code
mdynamic-no-pic
Target Report Mask(MACHO_DYNAMIC_NO_PIC)
Generate code suitable for executables (NOT shared libs)
...@@ -78,7 +78,7 @@ extern int dot_symbols; ...@@ -78,7 +78,7 @@ extern int dot_symbols;
#define SUBSUBTARGET_OVERRIDE_OPTIONS \ #define SUBSUBTARGET_OVERRIDE_OPTIONS \
do \ do \
{ \ { \
if (rs6000_alignment_string == 0) \ if (!rs6000_explicit_options.alignment) \
rs6000_alignment_flags = MASK_ALIGN_NATURAL; \ rs6000_alignment_flags = MASK_ALIGN_NATURAL; \
if (TARGET_64BIT) \ if (TARGET_64BIT) \
{ \ { \
...@@ -214,14 +214,6 @@ extern int dot_symbols; ...@@ -214,14 +214,6 @@ extern int dot_symbols;
account for arg save/restore code added just for _mcount. */ account for arg save/restore code added just for _mcount. */
#define TARGET_PROFILE_KERNEL (target_flags & MASK_PROFILE_KERNEL) #define TARGET_PROFILE_KERNEL (target_flags & MASK_PROFILE_KERNEL)
/* Override sysv4.h. */
#undef EXTRA_SUBTARGET_SWITCHES
#define EXTRA_SUBTARGET_SWITCHES \
{"profile-kernel", MASK_PROFILE_KERNEL, \
N_("Call mcount for profiling before a function prologue") }, \
{"no-profile-kernel", -MASK_PROFILE_KERNEL, \
N_("Call mcount for profiling after a function prologue") },
/* We use glibc _mcount for profiling. */ /* We use glibc _mcount for profiling. */
#define NO_PROFILE_COUNTERS TARGET_64BIT #define NO_PROFILE_COUNTERS TARGET_64BIT
#define PROFILE_HOOK(LABEL) \ #define PROFILE_HOOK(LABEL) \
......
; Options for 64-bit PowerPC Linux.
;
; Copyright (C) 2005 Free Software Foundation, Inc.
; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 2, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
; License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING. If not, write to the Free
; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
; 02111-1307, USA.
mprofile-kernel
Target Report Mask(PROFILE_KERNEL)
Call mcount for profiling before a function prologue
; Options for the rs6000 port of the compiler
;
; Copyright (C) 2005 Free Software Foundation, Inc.
; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 2, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
; License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING. If not, write to the Free
; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
; 02111-1307, USA.
mpower
Target Report RejectNegative Mask(POWER)
Use POWER instruction set
mno-power
Target Report RejectNegative
Do not use POWER instruction set
mpower2
Target Report Mask(POWER2)
Use POWER2 instruction set
mpowerpc
Target Report RejectNegative Mask(POWERPC)
Use PowerPC instruction set
mno-powerpc
Target Report RejectNegative
Do not use PowerPC instruction set
mpowerpc64
Target Report Mask(POWERPC64)
Use PowerPC-64 instruction set
maltivec
Target Report Mask(ALTIVEC)
Use AltiVec instructions
mnew-mnemonics
Target Report RejectNegative Mask(NEW_MNEMONICS)
Use new mnemonics for PowerPC architecture
mold-mnemonics
Target Report RejectNegative InverseMask(NEW_MNEMONICS)
Use old mnemonics for PowerPC architecture
mno-fp-in-toc
Target Report RejectNegative Mask(NO_FP_IN_TOC)
Do not place floating point constants in TOC
mfp-in-toc
Target Report RejectNegative InverseMask(NO_FP_IN_TOC)
Place floating point constants in TOC
mno-sum-in-toc
Target RejectNegative Mask(NO_SUM_IN_TOC)
Do not place symbol+offset constants in TOC
msum-in-toc
Target RejectNegative InverseMask(NO_SUM_IN_TOC)
Place symbol+offset constants in TOC
;; ?? Where should we put documentation like this ??
;;
; Output only one TOC entry per module. Normally linking fails if
; there are more than 16K unique variables/constants in an executable. With
; this option, linking fails only if there are more than 16K modules, or
; if there are more than 16K unique variables/constant in a single module.
;
; This is at the cost of having 2 extra loads and one extra store per
; function, and one less allocable register.
mminimal-toc
Target Report Mask(MINIMAL_TOC)
Use only one TOC entry per procedure
msoft-float
Target Report RejectNegative Mask(SOFT_FLOAT)
Do not use hardware floating point
mhard-float
Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT)
Use hardware floating point
mmultiple
Target Report Mask(MULTIPLE)
Generate load/store multiple instructions
mstring
Target Report Mask(STRING)
Generate string instructions for block moves
mno-update
Target Report RejectNegative Mask(NO_UPDATE)
Do not generate load/store with update instructions
mupdate
Target Report RejectNegative InverseMask(NO_UPDATE, UPDATE)
Generate load/store with update instructions
mno-fused-madd
Target Report RejectNegative Mask(NO_FUSED_MADD)
Do not generate fused multiply/add instructions
mfused-madd
Target Report RejectNegative InverseMask(NO_FUSED_MADD, FUSED_MADD)
Generate fused multiply/add instructions
msched-prolog
Target Report Mask(SCHED_PROLOG)
Schedule the start and end of the procedure
msched-epilog
Target Undocumented Mask(SCHED_PROLOG) MaskExists
maix-struct-return
Target Report Mask(AIX_STRUCT_RET)
Return all structures in memory (AIX default)
msvr4-struct-return
Target Report InverseMask(AIX_STRUCT_RET)
Return small structures in registers (SVR4 default)
mmfcrf
Target Report Mask(MFCRF)
Generate single field mfcr instruction
mpowerpc-gpopt
Target Report Mask(PPC_GPOPT)
Use PowerPC General Purpose group optional instructions
mpowerpc-gfxopt
Target Report Mask(PPC_GFXOPT)
Use PowerPC Graphics group optional instructions
mfull-toc
Target Report
Put everything in the regular TOC
mvrsave
Target Report Var(TARGET_ALTIVEC_VRSAVE)
Generate VRSAVE instructions when generating AltiVec code
mvrsave=
Target RejectNegative Joined
-mvrsave=yes/no Deprecated option. Use -mvrsave/-mno-vrsave instead.
misel
Target Var(rs6000_isel)
Generate isel instructions
misel=
Target RejectNegative Joined
-misel=yes/no Deprecated option. Use -misel/-mno-isel instead
mspe
Target Var(rs6000_spe)
Generate SPE SIMD instructions on E500
mspe=
Target RejectNegative Joined
-mspe=yes/no Deprecated option. Use -mspe/-mno-spe instead
mdebug=
Target RejectNegative Joined
-mdebug= Enable debug output
mabi=
Target RejectNegative Joined
-mabi= Specify ABI to use
mcpu=
Target RejectNegative Joined
-mcpu= Use features of and schedule code for given CPU
mtune=
Target RejectNegative Joined
-mtune= Schedule code for given CPU
mtraceback=
Target RejectNegative Joined
-mtraceback= Select full, part, or no traceback table
mlongcall
Target Report Var(rs6000_default_long_calls)
Avoid all range limits on call instructions
mwarn-altivec-long
Target Var(rs6000_warn_altivec_long) Init(1)
Warn about deprecated 'vector long ...' AltiVec type usage
mfloat-gprs=
Target RejectNegative Joined
-mfloat-gprs= Select GPR floating point method.
mlong-double-
Target RejectNegative Joined UInteger
-mlong-double-<n> Specify size of long double (64 or 128 bits)
msched-costly-dep=
Target RejectNegative Joined
Determine which dependences between insns are considered costly
minsert-sched-nops=
Target RejectNegative Joined
Specify which post scheduling nop insertion scheme to apply
malign-
Target RejectNegative Joined
Specify alignment of structure fields default/natural
mprioritize-restricted-insns=
Target RejectNegative Joined Uinteger Var(rs6000_sched_restricted_insns_priority)
Specify scheduling priority for dispatch slot restricted insns
...@@ -47,24 +47,6 @@ enum rs6000_sdata_type { ...@@ -47,24 +47,6 @@ enum rs6000_sdata_type {
extern enum rs6000_sdata_type rs6000_sdata; extern enum rs6000_sdata_type rs6000_sdata;
/* V.4/eabi switches. */
#define MASK_NO_BITFIELD_TYPE 0x40000000 /* Set PCC_BITFIELD_TYPE_MATTERS to 0. */
#define MASK_STRICT_ALIGN 0x20000000 /* Set STRICT_ALIGNMENT to 1. */
#define MASK_RELOCATABLE 0x10000000 /* GOT pointers are PC relative. */
#define MASK_EABI 0x08000000 /* Adhere to eabi, not System V spec. */
#define MASK_LITTLE_ENDIAN 0x04000000 /* Target is little endian. */
#define MASK_REGNAMES 0x02000000 /* Use alternate register names. */
#define MASK_PROTOTYPE 0x01000000 /* Only prototyped fcns pass variable args. */
#define MASK_NO_BITFIELD_WORD 0x00800000 /* Bitfields cannot cross word boundaries */
#define TARGET_NO_BITFIELD_TYPE (target_flags & MASK_NO_BITFIELD_TYPE)
#define TARGET_STRICT_ALIGN (target_flags & MASK_STRICT_ALIGN)
#define TARGET_RELOCATABLE (target_flags & MASK_RELOCATABLE)
#define TARGET_EABI (target_flags & MASK_EABI)
#define TARGET_LITTLE_ENDIAN (target_flags & MASK_LITTLE_ENDIAN)
#define TARGET_REGNAMES (target_flags & MASK_REGNAMES)
#define TARGET_PROTOTYPE (target_flags & MASK_PROTOTYPE)
#define TARGET_NO_BITFIELD_WORD (target_flags & MASK_NO_BITFIELD_WORD)
#define TARGET_TOC ((target_flags & MASK_64BIT) \ #define TARGET_TOC ((target_flags & MASK_64BIT) \
|| ((target_flags & (MASK_RELOCATABLE \ || ((target_flags & (MASK_RELOCATABLE \
| MASK_MINIMAL_TOC)) \ | MASK_MINIMAL_TOC)) \
...@@ -77,87 +59,12 @@ extern enum rs6000_sdata_type rs6000_sdata; ...@@ -77,87 +59,12 @@ extern enum rs6000_sdata_type rs6000_sdata;
#define TARGET_NO_TOC (! TARGET_TOC) #define TARGET_NO_TOC (! TARGET_TOC)
#define TARGET_NO_EABI (! TARGET_EABI) #define TARGET_NO_EABI (! TARGET_EABI)
/* Strings provided by SUBTARGET_OPTIONS */
extern const char *rs6000_abi_name; extern const char *rs6000_abi_name;
extern const char *rs6000_sdata_name; extern const char *rs6000_sdata_name;
extern const char *rs6000_tls_size_string; /* For -mtls-size= */ extern const char *rs6000_tls_size_string; /* For -mtls-size= */
/* Override rs6000.h definition. */
#undef SUBTARGET_OPTIONS
#define SUBTARGET_OPTIONS \
{ "call-", &rs6000_abi_name, N_("Select ABI calling convention"), 0}, \
{ "sdata=", &rs6000_sdata_name, N_("Select method for sdata handling"), 0}, \
{ "tls-size=", &rs6000_tls_size_string, \
N_("Specify bit size of immediate TLS offsets"), 0 }
#define SDATA_DEFAULT_SIZE 8 #define SDATA_DEFAULT_SIZE 8
/* Note, V.4 no longer uses a normal TOC, so make -mfull-toc, be just
the same as -mminimal-toc. */
/* Override rs6000.h definition. */
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
{ "bit-align", -MASK_NO_BITFIELD_TYPE, \
N_("Align to the base type of the bit-field") }, \
{ "no-bit-align", MASK_NO_BITFIELD_TYPE, \
N_("Don't align to the base type of the bit-field") }, \
{ "strict-align", MASK_STRICT_ALIGN, \
N_("Don't assume that unaligned accesses are handled by the system") }, \
{ "no-strict-align", -MASK_STRICT_ALIGN, \
N_("Assume that unaligned accesses are handled by the system") }, \
{ "relocatable", MASK_RELOCATABLE | MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC, \
N_("Produce code relocatable at runtime") }, \
{ "no-relocatable", -MASK_RELOCATABLE, \
N_("Don't produce code relocatable at runtime") }, \
{ "relocatable-lib", MASK_RELOCATABLE | MASK_MINIMAL_TOC | MASK_NO_FP_IN_TOC, \
N_("Produce code relocatable at runtime") }, \
{ "no-relocatable-lib", -MASK_RELOCATABLE, \
N_("Don't produce code relocatable at runtime") }, \
{ "little-endian", MASK_LITTLE_ENDIAN, \
N_("Produce little endian code") }, \
{ "little", MASK_LITTLE_ENDIAN, \
N_("Produce little endian code") }, \
{ "big-endian", -MASK_LITTLE_ENDIAN, \
N_("Produce big endian code") }, \
{ "big", -MASK_LITTLE_ENDIAN, \
N_("Produce big endian code") }, \
{ "no-toc", 0, N_("no description yet") }, \
{ "toc", MASK_MINIMAL_TOC, N_("no description yet") }, \
{ "full-toc", MASK_MINIMAL_TOC, N_("no description yet") }, \
{ "prototype", MASK_PROTOTYPE, N_("no description yet") }, \
{ "no-prototype", -MASK_PROTOTYPE, N_("no description yet") }, \
{ "no-traceback", 0, N_("no description yet") }, \
{ "eabi", MASK_EABI, N_("Use EABI") }, \
{ "no-eabi", -MASK_EABI, N_("Don't use EABI") }, \
{ "bit-word", -MASK_NO_BITFIELD_WORD, "" }, \
{ "no-bit-word", MASK_NO_BITFIELD_WORD, \
N_("Do not allow bit-fields to cross word boundaries") }, \
{ "regnames", MASK_REGNAMES, \
N_("Use alternate register names") }, \
{ "no-regnames", -MASK_REGNAMES, \
N_("Don't use alternate register names") }, \
{ "sdata", 0, N_("no description yet") }, \
{ "no-sdata", 0, N_("no description yet") }, \
{ "sim", 0, \
N_("Link with libsim.a, libc.a and sim-crt0.o") }, \
{ "ads", 0, \
N_("Link with libads.a, libc.a and crt0.o") }, \
{ "yellowknife", 0, \
N_("Link with libyk.a, libc.a and crt0.o") }, \
{ "mvme", 0, \
N_("Link with libmvme.a, libc.a and crt0.o") }, \
{ "emb", 0, \
N_("Set the PPC_EMB bit in the ELF flags header") }, \
{ "windiss", 0, N_("Use the WindISS simulator") }, \
{ "shlib", 0, N_("no description yet") }, \
{ "64", MASK_64BIT | MASK_POWERPC64 \
| MASK_POWERPC | MASK_PPC_GFXOPT, \
N_("Generate 64-bit code") }, \
{ "32", - (MASK_64BIT | MASK_POWERPC64), \
N_("Generate 32-bit code") }, \
EXTRA_SUBTARGET_SWITCHES \
{ "newlib", 0, N_("no description yet") },
/* This is meant to be redefined in the host dependent files. */ /* This is meant to be redefined in the host dependent files. */
#define EXTRA_SUBTARGET_SWITCHES #define EXTRA_SUBTARGET_SWITCHES
...@@ -1371,3 +1278,6 @@ ncrtn.o%s" ...@@ -1371,3 +1278,6 @@ ncrtn.o%s"
/* Generate entries in .fixup for relocatable addresses. */ /* Generate entries in .fixup for relocatable addresses. */
#define RELOCATABLE_NEEDS_FIXUP 1 #define RELOCATABLE_NEEDS_FIXUP 1
/* This target uses the sysv4.opt file. */
#define TARGET_USES_SYSV4_OPT 1
; SYSV4 options for PPC port.
;
; Copyright (C) 2005 Free Software Foundation, Inc.
; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 2, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
; License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING. If not, write to the Free
; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
; 02111-1307, USA.
mcall-
Target RejectNegative Joined
Select ABI calling convention
msdata=
Target RejectNegative Joined
Select method for sdata handling
mtls-size=
Target RejectNegative Joined
Specify bit size of immediate TLS offsets
mbit-align
Target Report Mask(NO_BITFIELD_TYPE)
Align to the base type of the bit-field
mstrict-align
Target Report Mask(STRICT_ALIGN)
Align to the base type of the bit-field
Don't assume that unaligned accesses are handled by the system
mrelocatable
Target Report Mask(RELOCATABLE)
Produce code relocatable at runtime
mrelocatable-lib
Target
Produce code relocatable at runtime
mlittle-endian
Target Report RejectNegative Mask(LITTLE_ENDIAN)
Produce little endian code
; FIXME: Need a way to specify an alias.
;mlittle
;Target Report RejectNegative Mask(LITTLE_ENDIAN)
;Produce little endian code
mbig-endian
Target Report RejectNegative InverseMask(LITTLE_ENDIAN)
Produce big endian code
mbig
Target Report RejectNegative InverseMask(LITTLE_ENDIAN)
Produce big endian code
;; FIXME: This does nothing. What should be done?
mno-toc
Target RejectNegative
no description yet
mtoc
Target RejectNegative
no description yet
mprototype
Target Mask(PROTOTYPE)
no description yet
;; FIXME: Does nothing.
mno-traceback
Target RejectNegative
no description yet
meabi
Target Report Mask(EABI)
Use EABI
mbit-word
Target Report Mask(NO_BITFIELD_WORD)
Allow bit-fields to cross word boundaries
mrenames
Target Mask(REGNAMES)
Use alternate register names
;; FIXME: Does nothing.
msdata
Target
no description yet
msim
Target RejectNegative
Link with libsim.a, libc.a and sim-crt0.o
mads
Target RejectNegative
Link with libads.a, libc.a and crt0.o
myellowknife
Target RejectNegative
Link with libyk.a, libc.a and crt0.o
mmvme
Target RejectNegative
Link with libmvme.a, libc.a and crt0.o
memb
Target RejectNegative
Set the PPC_EMB bit in the ELF flags header
mwindiss
Target RejectNegative
Use the WindISS simulator
mshlib
Target RejectNegative
no description yet
m64
Target Report RejectNegative Mask(64BIT)
Generate 64-bit code
m32
Target Report RejectNegative InverseMask(64BIT)
Generate 32-bit code
mnewlib
Target RejectNegative
no description yet
...@@ -630,10 +630,12 @@ See RS/6000 and PowerPC Options. ...@@ -630,10 +630,12 @@ See RS/6000 and PowerPC Options.
-minsert-sched-nops=@var{scheme} @gol -minsert-sched-nops=@var{scheme} @gol
-mcall-sysv -mcall-netbsd @gol -mcall-sysv -mcall-netbsd @gol
-maix-struct-return -msvr4-struct-return @gol -maix-struct-return -msvr4-struct-return @gol
-mabi=altivec -mabi=no-altivec @gol -mabi=@var{abi-type} @gol
-mabi=spe -mabi=no-spe @gol -misel -mno-isel @gol
-misel=yes -misel=no @gol -misel=yes -misel=no @gol
-mspe -mno-spe @gol
-mspe=yes -mspe=no @gol -mspe=yes -mspe=no @gol
-mvrsave -mno-vrsave @gol
-mfloat-gprs=yes -mfloat-gprs=no -mfloat-gprs=single -mfloat-gprs=double @gol -mfloat-gprs=yes -mfloat-gprs=no -mfloat-gprs=single -mfloat-gprs=double @gol
-mprototype -mno-prototype @gol -mprototype -mno-prototype @gol
-msim -mmvme -mads -myellowknife -memb -msdata @gol -msim -mmvme -mads -myellowknife -memb -msdata @gol
...@@ -10649,6 +10651,12 @@ the AltiVec instruction set. You may also need to set ...@@ -10649,6 +10651,12 @@ the AltiVec instruction set. You may also need to set
@option{-mabi=altivec} to adjust the current ABI with AltiVec ABI @option{-mabi=altivec} to adjust the current ABI with AltiVec ABI
enhancements. enhancements.
@item -mvrsave
@item -mno-vrsave
@opindex mvrsave
@opindex mno-vrsave
Generate VRSAVE instructions when generating AltiVec code.
@item -mabi=spe @item -mabi=spe
@opindex mabi=spe @opindex mabi=spe
Extend the current ABI with SPE ABI extensions. This does not change Extend the current ABI with SPE ABI extensions. This does not change
...@@ -10659,17 +10667,27 @@ ABI@. ...@@ -10659,17 +10667,27 @@ ABI@.
@opindex mabi=no-spe @opindex mabi=no-spe
Disable Booke SPE ABI extensions for the current ABI@. Disable Booke SPE ABI extensions for the current ABI@.
@item -misel=@var{yes/no} @item -misel
@itemx -misel @itemx -mno-isel
@opindex misel @opindex misel
@opindex mno-isel
This switch enables or disables the generation of ISEL instructions. This switch enables or disables the generation of ISEL instructions.
@item -mspe=@var{yes/no} @item -misel=@var{yes/no}
@itemx -mspe This switch has been deprecated. Use @option{-misel} and
@option{-mno-isel} instead.
@item -mspe
@itemx -mno-isel
@opindex mspe @opindex mspe
@opindex mno-spe
This switch enables or disables the generation of SPE simd This switch enables or disables the generation of SPE simd
instructions. instructions.
@item -mspe=@var{yes/no}
This option has been deprecated. Use @option{-mspe} and
@option{-mno-spe} instead.
@item -mfloat-gprs=@var{yes/single/double/no} @item -mfloat-gprs=@var{yes/single/double/no}
@itemx -mfloat-gprs @itemx -mfloat-gprs
@opindex mfloat-gprs @opindex mfloat-gprs
...@@ -10986,15 +11004,11 @@ Return all structures in memory (as specified by the AIX ABI)@. ...@@ -10986,15 +11004,11 @@ Return all structures in memory (as specified by the AIX ABI)@.
Return structures smaller than 8 bytes in registers (as specified by the Return structures smaller than 8 bytes in registers (as specified by the
SVR4 ABI)@. SVR4 ABI)@.
@item -mabi=altivec @item -mabi=@var{abi-type}
@opindex mabi=altivec @opindex mabi
Extend the current ABI with AltiVec ABI extensions. This does not Extend the current ABI with a particular extension, or remove such extension.
change the default ABI, instead it adds the AltiVec ABI extensions to Valid values are @var{altivec}, @var{no-altivec}, @var{spe},
the current ABI@. @var{no-spe}@.
@item -mabi=no-altivec
@opindex mabi=no-altivec
Disable AltiVec ABI extensions for the current ABI@.
@item -mprototype @item -mprototype
@itemx -mno-prototype @itemx -mno-prototype
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment