Backport following mainline revs to ARM/embedded-4_6-branch: r174187, r176036, r177015, r177017, r177018, r177019, 177022, 177025
Committed. 2011-09-20 Jiangning Liu <jiangning....@arm.com> Backport r177025 from mainline 2011-08-01 Julian Brown <jul...@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-09-20 Jiangning Liu <jiangning....@arm.com> Backport r177022 from mainline 2011-08-01 Julian Brown <jul...@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 downwards in big-endian mode. 2011-09-20 Jiangning Liu <jiangning....@arm.com> Backport r177018 from mainline 2011-08-01 Julian Brown <jul...@codesourcery.com> * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST. 2011-09-20 Jiangning Liu <jiangning....@arm.com> Backport r177017 from mainline 2011-08-01 Julian Brown <jul...@codesourcery.com> * final.c (output_addr_const): Print fixed-point constants as decimal not hex. 2011-09-20 Jiangning Liu <jiangning....@arm.com> Backport r177015 from mainline 2011-08-01 Julian Brown <jul...@codesourcery.com> * optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point comparison helpers. 2011-09-20 Jiangning Liu <jiangning....@arm.com> Backport r176036 from mainline 2011-07-08 Rainer Orth <r...@cebitec.uni-bielefeld.de> * config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc. testsuite: 2011-09-20 Jiangning Liu <jiangning....@arm.com> Backport r177025 from mainline 2011-08-01 Julian Brown <jul...@codesourcery.com> * gcc.target/arm/fixed-point-exec.c: New test. libgcc: 2011-09-20 Jiangning Liu <jiangning....@arm.com> Backport r177025 from mainline 2011-08-01 Julian Brown <jul...@codesourcery.com> * 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. 2011-09-20 Jiangning Liu <jiangning....@arm.com> Backport r177019 from mainline 2011-08-01 Julian Brown <jul...@codesourcery.com> * Makefile.in (LIBGCC_VER_FIXEDPOINT_GNU_PREFIX): New. (libgcc-std.ver.in): Use above. * fixed-bit.h (LIBGCC2_FIXEDBIT_GNU_PREFIX): Define, if LIBGCC2_GNU_PREFIX is defined. Use instead of LIBGCC2_GNU_PREFIX throughout file. * config/t-fixedpoint-gnu-prefix: New file. * config/t-gnu-prefix (LIBGCC_VER_FIXEDPOINT_GNU_PREFIX): Set. * libgcc-std.ver.in (fixed-point routines): Use __FIXPTPFX__ instead of __PFX__. 2011-09-20 Jiangning Liu <jiangning....@arm.com> Backport r176036 from mainline 2011-07-08 Rainer Orth <r...@cebitec.uni-bielefeld.de> * fixed-bit.c, fixed-bit.h: New files. * fixed-obj.mk ($o$(objext), $(o)_s$(objext)): Use $(srcdir) to refer to fixed-bit.c. 2011-09-20 Jiangning Liu <jiangning....@arm.com> Partially backport r174187 from mainline 2011-05-25 Bernd Schmidt <ber...@codesourcery.com> * libgcc-std.ver.in: New file. * Makefile.in (LIBGCC_VER_GNU_PREFIX, LIBGCC_VER_SYMBOLS_PREFIX): New variables. (libgcc-std.ver): New rule. * config/t-gnu-prefix: New file.