This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[arm-embedded] Backport mainline fixed-point support
- From: "Joey Ye" <joey dot ye at arm dot com>
- To: <gcc-patches at gcc dot gnu dot org>
- Date: Tue, 20 Sep 2011 16:02:55 +0800
- Subject: [arm-embedded] Backport mainline fixed-point support
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.liu@arm.com>
Backport r177025 from mainline
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-09-20 Jiangning Liu <jiangning.liu@arm.com>
Backport r177022 from mainline
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
downwards in big-endian mode.
2011-09-20 Jiangning Liu <jiangning.liu@arm.com>
Backport r177018 from mainline
2011-08-01 Julian Brown <julian@codesourcery.com>
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Support FIXED_CST.
2011-09-20 Jiangning Liu <jiangning.liu@arm.com>
Backport r177017 from mainline
2011-08-01 Julian Brown <julian@codesourcery.com>
* final.c (output_addr_const): Print fixed-point constants as
decimal not hex.
2011-09-20 Jiangning Liu <jiangning.liu@arm.com>
Backport r177015 from mainline
2011-08-01 Julian Brown <julian@codesourcery.com>
* optabs.c (prepare_cmp_insn): Use correct biasing for fixed-point
comparison helpers.
2011-09-20 Jiangning Liu <jiangning.liu@arm.com>
Backport r176036 from mainline
2011-07-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* config/fixed-bit.c, config/fixed-bit.h: Move to ../libgcc.
testsuite:
2011-09-20 Jiangning Liu <jiangning.liu@arm.com>
Backport r177025 from mainline
2011-08-01 Julian Brown <julian@codesourcery.com>
* gcc.target/arm/fixed-point-exec.c: New test.
libgcc:
2011-09-20 Jiangning Liu <jiangning.liu@arm.com>
Backport r177025 from mainline
2011-08-01 Julian Brown <julian@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.liu@arm.com>
Backport r177019 from mainline
2011-08-01 Julian Brown <julian@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.liu@arm.com>
Backport r176036 from mainline
2011-07-08 Rainer Orth <ro@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.liu@arm.com>
Partially backport r174187 from mainline
2011-05-25 Bernd Schmidt <bernds@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.