aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
authorJulian Brown <julian@codesourcery.com>2011-08-01 12:41:30 +0000
committerJulian Brown <jules@gcc.gnu.org>2011-08-01 12:41:30 +0000
commit655b30bfde9172bd40189a787b85b16e461ef1ef (patch)
tree42de6b523b06d8fd9304883974cdc19b9dcf95b2 /gcc/ChangeLog
parent3d6c3bd710cae34a0a4e7e69061f42fe19c442cb (diff)
downloadgcc-655b30bfde9172bd40189a787b85b16e461ef1ef.zip
gcc-655b30bfde9172bd40189a787b85b16e461ef1ef.tar.gz
gcc-655b30bfde9172bd40189a787b85b16e461ef1ef.tar.bz2
configure.ac (fixed-point): Add ARM support.
gcc/ * configure.ac (fixed-point): Add ARM support. * configure: Regenerate. * config/arm/arm.c (arm_fixed_mode_set): New struct. (arm_set_fixed_optab_libfunc): New. (arm_set_fixed_conv_libfunc): New. (arm_init_libfuncs): Initialise fixed-point helper libfuncs with ARM-specific names. (aapcs_libcall_value): Return sub-word-size fixed-point libcall return values in SImode. (arm_return_in_msb): Return fixed-point types in the msb. (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types upwards. (arm_scalar_mode_supported_p): Support fixed-point modes. (arm_vector_mode_supported_p): Support vector fixed-point modes. * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE) (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE) (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE) (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define. * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL): New mode iterators. (qaddsub_suf): New mode attribute. * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare vector modes. * config/arm/predicates.md (sat_shift_operator): New predicate. * config/arm/arm-fixed.md: New. * config/arm/arm.md: Include arm-fixed.md. * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md. libgcc/ * config.host (arm*-*-linux*, arm*-*-uclinux*, arm*-*-eabi*) (arm*-*-symbianelf*): Add t-fixedpoint-gnu-prefix makefile fragment. * config/arm/bpabi-lib.h (LIBGCC2_FIXEDBIT_GNU_PREFIX): Define. gcc/testsuite/ * gcc.target/arm/fixed-point-exec.c: New test. From-SVN: r177025
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog30
1 files changed, 30 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 417807a..3880f96 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,35 @@
2011-08-01 Julian Brown <julian@codesourcery.com>
+ * configure.ac (fixed-point): Add ARM support.
+ * configure: Regenerate.
+ * config/arm/arm.c (arm_fixed_mode_set): New struct.
+ (arm_set_fixed_optab_libfunc): New.
+ (arm_set_fixed_conv_libfunc): New.
+ (arm_init_libfuncs): Initialise fixed-point helper libfuncs with
+ ARM-specific names.
+ (aapcs_libcall_value): Return sub-word-size fixed-point libcall
+ return values in SImode.
+ (arm_return_in_msb): Return fixed-point types in the msb.
+ (arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
+ upwards.
+ (arm_scalar_mode_supported_p): Support fixed-point modes.
+ (arm_vector_mode_supported_p): Support vector fixed-point modes.
+ * config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
+ (LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
+ (SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
+ (LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
+ * config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
+ New mode iterators.
+ (qaddsub_suf): New mode attribute.
+ * config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
+ vector modes.
+ * config/arm/predicates.md (sat_shift_operator): New predicate.
+ * config/arm/arm-fixed.md: New.
+ * config/arm/arm.md: Include arm-fixed.md.
+ * config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
+
+2011-08-01 Julian Brown <julian@codesourcery.com>
+
* calls.c (emit_library_call_value_1): Support padding for libcall
arguments and return values.
* config/arm/arm.c (arm_pad_arg_upward): Pad half-float values