diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 19 | ||||
-rw-r--r-- | gcc/config.in | 12 | ||||
-rw-r--r-- | gcc/config/rs6000/linux64.h | 4 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000-c.c | 2 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 15 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.opt | 10 | ||||
-rw-r--r-- | gcc/config/rs6000/sysv4.opt | 2 | ||||
-rwxr-xr-x | gcc/configure | 290 | ||||
-rw-r--r-- | gcc/configure.ac | 30 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 15 |
11 files changed, 291 insertions, 114 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0be8ba5..40ab3ec 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,22 @@ +2007-02-20 Janis Johnson <janis187@us.ibm.com> + + * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcmpb and -mdfp. + * configure.ac (HAVE_GAS_CMPB): Check for assembler support of the + cmpb instruction. + (HAVE_GAS_DFP): Check for assembler support of decimal floating + point instructions. + * configure: Regenerate. + * config.in: Regenerate. + * config/rs6000/rs6000.opt (mcmpb, mdfp): New. + * config/rs6000/rs6000.c (rs6000_override_options): Add CMPB and DFP + masks to power6 and power6x and to POWERPC_MASKS. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define + _ARCH_PWR6. + * config/rs6000/rs6000.h: Check assembler support for CMPB and DFP. + * config/rs6000/sysv4.opt (mprototype): Use variable, not mask. + * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): + Access PROTOTYPE as variable, not mask. + 2007-02-20 Steven Bosscher <steven@gcc.gnu.org> * rtl.h (remove_reg_equal_equiv_notes): New prototype. diff --git a/gcc/config.in b/gcc/config.in index e1a530a..275327d 100644 --- a/gcc/config.in +++ b/gcc/config.in @@ -160,6 +160,18 @@ #endif +/* Define if your assembler supports cmpb. */ +#ifndef USED_FOR_TARGET +#undef HAVE_AS_CMPB +#endif + + +/* Define if your assembler supports DFP instructions. */ +#ifndef USED_FOR_TARGET +#undef HAVE_AS_DFP +#endif + + /* Define if your assembler supports dwarf2 .file/.loc directives, and preserves file table indices exactly as given. */ #ifndef USED_FOR_TARGET diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h index 5b954a9..8937dcd 100644 --- a/gcc/config/rs6000/linux64.h +++ b/gcc/config/rs6000/linux64.h @@ -98,9 +98,9 @@ extern int dot_symbols; target_flags &= ~MASK_EABI; \ error (INVALID_64BIT, "eabi"); \ } \ - if (target_flags & MASK_PROTOTYPE) \ + if (TARGET_PROTOTYPE) \ { \ - target_flags &= ~MASK_PROTOTYPE; \ + TARGET_PROTOTYPE = 0; \ error (INVALID_64BIT, "prototype"); \ } \ if ((target_flags & MASK_POWERPC64) == 0) \ diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c index 1845eda..fa215fc 100644 --- a/gcc/config/rs6000/rs6000-c.c +++ b/gcc/config/rs6000/rs6000-c.c @@ -106,6 +106,8 @@ rs6000_cpu_cpp_builtins (cpp_reader *pfile) builtin_define ("_ARCH_PWR5"); if (TARGET_FPRND) builtin_define ("_ARCH_PWR5X"); + if (TARGET_CMPB) + builtin_define ("_ARCH_PWR6"); if (TARGET_MFPGPR) builtin_define ("_ARCH_PWR6X"); if (! TARGET_POWER && ! TARGET_POWER2 && ! TARGET_POWERPC) diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index ecedffd..7a61d6c 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1323,10 +1323,10 @@ rs6000_override_options (const char *default_cpu) | MASK_MFCRF | MASK_POPCNTB | MASK_FPRND}, {"power6", PROCESSOR_POWER6, POWERPC_7400_MASK | MASK_POWERPC64 | MASK_MFCRF | MASK_POPCNTB - | MASK_FPRND}, + | MASK_FPRND | MASK_CMPB | MASK_DFP }, {"power6x", PROCESSOR_POWER6, POWERPC_7400_MASK | MASK_POWERPC64 | MASK_MFCRF | MASK_POPCNTB - | MASK_FPRND | MASK_MFPGPR}, + | MASK_FPRND | MASK_CMPB | MASK_MFPGPR | MASK_DFP }, {"powerpc", PROCESSOR_POWERPC, POWERPC_BASE_MASK}, {"powerpc64", PROCESSOR_POWERPC64, POWERPC_BASE_MASK | MASK_PPC_GFXOPT | MASK_POWERPC64}, @@ -1353,7 +1353,7 @@ rs6000_override_options (const char *default_cpu) POWERPC_MASKS = (POWERPC_BASE_MASK | MASK_PPC_GPOPT | MASK_STRICT_ALIGN | MASK_PPC_GFXOPT | MASK_POWERPC64 | MASK_ALTIVEC | MASK_MFCRF | MASK_POPCNTB | MASK_FPRND | MASK_MULHW - | MASK_DLMZB | MASK_MFPGPR) + | MASK_DLMZB | MASK_CMPB | MASK_MFPGPR | MASK_DFP) }; rs6000_init_hard_regno_mode_ok (); diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index decaf8f..386a7c1 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -164,6 +164,14 @@ #define TARGET_FPRND 0 #endif +/* Define TARGET_CMPB if the target assembler does not support the + cmpb instruction. */ + +#ifndef HAVE_AS_CMPB +#undef TARGET_CMPB +#define TARGET_CMPB 0 +#endif + /* Define TARGET_MFPGPR if the target assembler does not support the mffpr and mftgpr instructions. */ @@ -172,6 +180,13 @@ #define TARGET_MFPGPR 0 #endif +/* Define TARGET_DFP if the target assembler does not support decimal + floating point instructions. */ +#ifndef HAVE_AS_DFP +#undef TARGET_DFP +#define TARGET_DFP 0 +#endif + #ifndef TARGET_SECURE_PLT #define TARGET_SECURE_PLT 0 #endif diff --git a/gcc/config/rs6000/rs6000.opt b/gcc/config/rs6000/rs6000.opt index bbf6235..f7091f5 100644 --- a/gcc/config/rs6000/rs6000.opt +++ b/gcc/config/rs6000/rs6000.opt @@ -1,6 +1,6 @@ ; Options for the rs6000 port of the compiler ; -; Copyright (C) 2005 Free Software Foundation, Inc. +; Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. ; Contributed by Aldy Hernandez <aldy@quesejoda.com>. ; ; This file is part of GCC. @@ -64,6 +64,10 @@ mfprnd Target Report Mask(FPRND) Use PowerPC V2.02 floating point rounding instructions +mcmpb +Target Report Mask(CMPB) +Use PowerPC V2.05 compare bytes instruction + mmfpgpr Target Report Mask(MFPGPR) Use extended PowerPC V2.05 move floating point to/from GPR instructions @@ -72,6 +76,10 @@ maltivec Target Report Mask(ALTIVEC) Use AltiVec instructions +mdfp +Target Report Mask(DFP) +Use decimal floating point instructions + mmulhw Target Report Mask(MULHW) Use 4xx half-word multiply instructions diff --git a/gcc/config/rs6000/sysv4.opt b/gcc/config/rs6000/sysv4.opt index c483ea5..bcdfd48 100644 --- a/gcc/config/rs6000/sysv4.opt +++ b/gcc/config/rs6000/sysv4.opt @@ -75,7 +75,7 @@ Target RejectNegative no description yet mprototype -Target Mask(PROTOTYPE) +Target Var(TARGET_PROTOTYPE) Assume all variable arg functions are prototyped ;; FIXME: Does nothing. diff --git a/gcc/configure b/gcc/configure index 77dfa40..a2abfcc 100755 --- a/gcc/configure +++ b/gcc/configure @@ -10559,9 +10559,19 @@ fi; - lib_includedir=UNSET - lib_libdir=UNSET + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" # Check whether --with-libiconv-prefix or --without-libiconv-prefix was given. @@ -10569,8 +10579,7 @@ if test "${with_libiconv_prefix+set}" = set; then withval="$with_libiconv_prefix" if test "X$withval" = "Xno"; then - lib_includedir="NONE" - lib_libdir="NONE" + use_additional=no else if test "X$withval" = "X"; then @@ -10579,36 +10588,19 @@ if test "${with_libiconv_prefix+set}" = set; then acl_save_exec_prefix="$exec_prefix" exec_prefix="$acl_final_exec_prefix" - eval lib_includedir=\"$includedir\" - eval lib_libdir=\"$libdir\" + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" exec_prefix="$acl_save_exec_prefix" prefix="$acl_save_prefix" else - lib_includedir="$withval/include" - lib_libdir="$withval/lib" + additional_includedir="$withval/include" + additional_libdir="$withval/lib" fi fi fi; - - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - test $lib_includedir = UNSET && eval lib_includedir=\"$includedir\" - test $lib_libdir = UNSET && eval lib_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - - - - LIBICONV= LTLIBICONV= INCICONV= @@ -10645,19 +10637,19 @@ fi; found_la= found_so= found_a= - if test "$lib_libdir" != NONE; then - if test -n "$shlibext" && test -f "$lib_libdir/lib$name.$shlibext"; then - found_dir="$lib_libdir" - found_so="$lib_libdir/lib$name.$shlibext" - if test -f "$lib_libdir/lib$name.la"; then - found_la="$lib_libdir/lib$name.la" + if test $use_additional = yes; then + if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then + found_dir="$additional_libdir" + found_so="$additional_libdir/lib$name.$shlibext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" fi else - if test -f "$lib_libdir/lib$name.$libext"; then - found_dir="$lib_libdir" - found_a="$lib_libdir/lib$name.$libext" - if test -f "$lib_libdir/lib$name.la"; then - found_la="$lib_libdir/lib$name.la" + if test -f "$additional_libdir/lib$name.$libext"; then + found_dir="$additional_libdir" + found_a="$additional_libdir/lib$name.$libext" + if test -f "$additional_libdir/lib$name.la"; then + found_la="$additional_libdir/lib$name.la" fi fi fi @@ -10766,11 +10758,6 @@ fi; fi additional_includedir= case "$found_dir" in - "$lib_libdir") - if test "$lib_includedir" != NONE; then - additional_includedir="$lib_includedir" - fi - ;; */lib | */lib/) basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'` additional_includedir="$basedir/include" @@ -10955,7 +10942,6 @@ fi; - am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do @@ -15602,6 +15588,98 @@ LCF0: addis 11,30,_GLOBAL_OFFSET_TABLE_-.LCF0@ha';; esac + case $target in + *-*-aix*) conftest_s=' .machine "pwr6" + .csect .text[PR] + cmpb 3,4,5';; + *) conftest_s=' .machine power6 + .text + cmpb 3,4,5';; + esac + + echo "$as_me:$LINENO: checking assembler for compare bytes support" >&5 +echo $ECHO_N "checking assembler for compare bytes support... $ECHO_C" >&6 +if test "${gcc_cv_as_powerpc_cmpb+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gcc_cv_as_powerpc_cmpb=no + if test $in_tree_gas = yes; then + if test $gcc_cv_gas_vers -ge `expr \( \( 9 \* 1000 \) + 99 \) \* 1000 + 0` + then gcc_cv_as_powerpc_cmpb=yes +fi + elif test x$gcc_cv_as != x; then + echo "$conftest_s" > conftest.s + if { ac_try='$gcc_cv_as -a32 -o conftest.o conftest.s >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } + then + gcc_cv_as_powerpc_cmpb=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi +fi +echo "$as_me:$LINENO: result: $gcc_cv_as_powerpc_cmpb" >&5 +echo "${ECHO_T}$gcc_cv_as_powerpc_cmpb" >&6 +if test $gcc_cv_as_powerpc_cmpb = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_AS_CMPB 1 +_ACEOF + +fi + + case $target in + *-*-aix*) conftest_s=' .machine "pwr6" + .csect .text[PR] + dadd 1,3';; + *) conftest_s=' .machine power6 + .text + dadd 1,3';; + esac + + echo "$as_me:$LINENO: checking assembler for decimal float support" >&5 +echo $ECHO_N "checking assembler for decimal float support... $ECHO_C" >&6 +if test "${gcc_cv_as_powerpc_dfp+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + gcc_cv_as_powerpc_dfp=no + if test $in_tree_gas = yes; then + if test $gcc_cv_gas_vers -ge `expr \( \( 9 \* 1000 \) + 99 \) \* 1000 + 0` + then gcc_cv_as_powerpc_dfp=yes +fi + elif test x$gcc_cv_as != x; then + echo "$conftest_s" > conftest.s + if { ac_try='$gcc_cv_as -a32 -o conftest.o conftest.s >&5' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } + then + gcc_cv_as_powerpc_dfp=yes + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi +fi +echo "$as_me:$LINENO: result: $gcc_cv_as_powerpc_dfp" >&5 +echo "${ECHO_T}$gcc_cv_as_powerpc_dfp" >&6 +if test $gcc_cv_as_powerpc_dfp = yes; then + +cat >>confdefs.h <<\_ACEOF +#define HAVE_AS_DFP 1 +_ACEOF + +fi + echo "$as_me:$LINENO: checking assembler for rel16 relocs" >&5 echo $ECHO_N "checking assembler for rel16 relocs... $ECHO_C" >&6 if test "${gcc_cv_as_powerpc_rel16+set}" = set; then @@ -16014,70 +16092,70 @@ echo "${ECHO_T}$gcc_cv_ld_pie" >&6 echo "$as_me:$LINENO: checking linker EH-compatible garbage collection of sections" >&5 echo $ECHO_N "checking linker EH-compatible garbage collection of sections... $ECHO_C" >&6 gcc_cv_ld_eh_gc_sections=no -#if test $in_tree_ld = yes ; then -# if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 17 -o "$gcc_cv_gld_major_version" -gt 2 \ -# && test $in_tree_ld_is_elf = yes; then -# gcc_cv_ld_eh_gc_sections=yes -# fi -#elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then -# cat > conftest.s <<EOF -# .section .text -#.globl _start -# .type _start, @function -#_start: -# .long foo -# .size _start, .-_start -# .section .text.foo,"ax",@progbits -# .type foo, @function -#foo: -# .long 0 -# .size foo, .-foo -# .section .gcc_except_table.foo,"a",@progbits -#.L0: -# .long 0 -# .section .eh_frame,"a",@progbits -# .long .L0 -#EOF -# if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then -# if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \ -# | grep "gc-sections option ignored" > /dev/null; then -# gcc_cv_ld_eh_gc_sections=no -# elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then -# gcc_cv_ld_eh_gc_sections=yes -# # If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections. -# if test x$gcc_cv_as_comdat_group != xyes; then -# gcc_cv_ld_eh_gc_sections=no -# cat > conftest.s <<EOF -# .section .text -#.globl _start -# .type _start, @function -#_start: -# .long foo -# .size _start, .-_start -# .section .gnu.linkonce.t.foo,"ax",@progbits -# .type foo, @function -#foo: -# .long 0 -# .size foo, .-foo -# .section .gcc_except_table.foo,"a",@progbits -#.L0: -# .long 0 -# .section .eh_frame,"a",@progbits -# .long .L0 -#EOF -# if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then -# if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \ -# | grep "gc-sections option ignored" > /dev/null; then -# gcc_cv_ld_eh_gc_sections=no -# elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then -# gcc_cv_ld_eh_gc_sections=yes -# fi -# fi -# fi -# fi -# fi -# rm -f conftest.s conftest.o conftest -#fi +if test $in_tree_ld = yes ; then + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 17 -o "$gcc_cv_gld_major_version" -gt 2 \ + && test $in_tree_ld_is_elf = yes; then + gcc_cv_ld_eh_gc_sections=yes + fi +elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then + cat > conftest.s <<EOF + .section .text +.globl _start + .type _start, @function +_start: + .long foo + .size _start, .-_start + .section .text.foo,"ax",@progbits + .type foo, @function +foo: + .long 0 + .size foo, .-foo + .section .gcc_except_table.foo,"a",@progbits +.L0: + .long 0 + .section .eh_frame,"a",@progbits + .long .L0 +EOF + if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then + if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \ + | grep "gc-sections option ignored" > /dev/null; then + gcc_cv_ld_eh_gc_sections=no + elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then + gcc_cv_ld_eh_gc_sections=yes + # If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections. + if test x$gcc_cv_as_comdat_group != xyes; then + gcc_cv_ld_eh_gc_sections=no + cat > conftest.s <<EOF + .section .text +.globl _start + .type _start, @function +_start: + .long foo + .size _start, .-_start + .section .gnu.linkonce.t.foo,"ax",@progbits + .type foo, @function +foo: + .long 0 + .size foo, .-foo + .section .gcc_except_table.foo,"a",@progbits +.L0: + .long 0 + .section .eh_frame,"a",@progbits + .long .L0 +EOF + if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then + if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \ + | grep "gc-sections option ignored" > /dev/null; then + gcc_cv_ld_eh_gc_sections=no + elif $gcc_cv_objdump -h conftest | grep gcc_except_table > /dev/null; then + gcc_cv_ld_eh_gc_sections=yes + fi + fi + fi + fi + fi + rm -f conftest.s conftest.o conftest +fi case "$target" in hppa*-*-linux*) # ??? This apparently exposes a binutils bug with PC-relative relocations. diff --git a/gcc/configure.ac b/gcc/configure.ac index 15be971..db9a0c3d 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -2925,6 +2925,36 @@ LCF0: addis 11,30,_GLOBAL_OFFSET_TABLE_-.LCF0@ha';; esac + case $target in + *-*-aix*) conftest_s=' .machine "pwr6" + .csect .text[[PR]] + cmpb 3,4,5';; + *) conftest_s=' .machine power6 + .text + cmpb 3,4,5';; + esac + + gcc_GAS_CHECK_FEATURE([compare bytes support], + gcc_cv_as_powerpc_cmpb, [9,99,0], -a32, + [$conftest_s],, + [AC_DEFINE(HAVE_AS_CMPB, 1, + [Define if your assembler supports cmpb.])]) + + case $target in + *-*-aix*) conftest_s=' .machine "pwr6" + .csect .text[[PR]] + dadd 1,3';; + *) conftest_s=' .machine power6 + .text + dadd 1,3';; + esac + + gcc_GAS_CHECK_FEATURE([decimal float support], + gcc_cv_as_powerpc_dfp, [9,99,0], -a32, + [$conftest_s],, + [AC_DEFINE(HAVE_AS_DFP, 1, + [Define if your assembler supports DFP instructions.])]) + gcc_GAS_CHECK_FEATURE([rel16 relocs], gcc_cv_as_powerpc_rel16, [2,17,0], -a32, [$conftest_s],, diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index ad6f90e..a6bcd72 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -664,7 +664,7 @@ See RS/6000 and PowerPC Options. -mpowerpc-gpopt -mno-powerpc-gpopt @gol -mpowerpc-gfxopt -mno-powerpc-gfxopt @gol -mmfcrf -mno-mfcrf -mpopcntb -mno-popcntb -mfprnd -mno-fprnd @gol --mmfpgpr -mno-mfpgpr @gol +-mcmpb -mno-cmpb -mmfpgpr -mno-mfpgpr -mdfp -mno-dfp @gol -mnew-mnemonics -mold-mnemonics @gol -mfull-toc -mminimal-toc -mno-fp-in-toc -mno-sum-in-toc @gol -m64 -m32 -mxl-compat -mno-xl-compat -mpe @gol @@ -11799,8 +11799,12 @@ These @samp{-m} options are defined for the IBM RS/6000 and PowerPC: @itemx -mno-popcntb @itemx -mfprnd @itemx -mno-fprnd +@itemx -mcmpb +@itemx -mno-cmpb @itemx -mmfpgpr @itemx -mno-mfpgpr +@itemx -mdfp +@itemx -mno-dfp @opindex mpower @opindex mno-power @opindex mpower2 @@ -11819,8 +11823,12 @@ These @samp{-m} options are defined for the IBM RS/6000 and PowerPC: @opindex mno-popcntb @opindex mfprnd @opindex mno-fprnd +@opindex mcmpb +@opindex mno-cmpb @opindex mmfpgpr @opindex mno-mfpgpr +@opindex mdfp +@opindex mno-dfp GCC supports two related instruction set architectures for the RS/6000 and PowerPC@. The @dfn{POWER} instruction set are those instructions supported by the @samp{rios} chip set used in the original @@ -11865,10 +11873,15 @@ architecture. The @option{-mfprnd} option allows GCC to generate the FP round to integer instructions implemented on the POWER5+ processor and other processors that support the PowerPC V2.03 architecture. +The @option{-mcmpb} option allows GCC to generate the compare bytes +instruction implemented on the POWER6 processor and other processors +that support the PowerPC V2.05 architecture. The @option{-mmfpgpr} option allows GCC to generate the FP move to/from general purpose register instructions implemented on the POWER6X processor and other processors that support the extended PowerPC V2.05 architecture. +The @option{-mdfp} option allows GCC to generate the decimal floating +point instructions implemented on some POWER processors. The @option{-mpowerpc64} option allows GCC to generate the additional 64-bit instructions that are found in the full PowerPC64 architecture |