On Tue, Dec 3, 2013 at 1:46 PM, Kyrill Tkachov <kyrylo.tkac...@arm.com> wrote: > Ping? > http://gcc.gnu.org/ml/gcc-patches/2013-11/msg02351.html > > Thanks, > Kyrill
Ok if no objections in 24 hours. Ramana > > > On 26/11/13 09:44, Kyrill Tkachov wrote: >> >> Ping? >> >> Thanks, >> Kyrill >> >> On 19/11/13 17:04, Kyrill Tkachov wrote: >>> >>> On 19/11/13 16:26, Joseph S. Myers wrote: >>>> >>>> In any target header installed for user use, such as arm_acle.h, you >>>> need >>>> to be namespace-clean. In this case, that means you need to use >>>> implementation-namespace identifiers such as __a, __b and __d in case >>>> the >>>> user has defined macros with names such as a, b and d (unless the ACLE >>>> says that identifiers a, b and d are in the implementation's namespace >>>> when this header is included, which would be a very odd thing for it to >>>> do). >>>> >>> Hi Joseph, >>> >>> Thanks for the catch. ACLE doesn't expect a,b,d to be in the >>> implementation >>> namespace. I've added underscores before them. >>> >>> Made sure tests pass. >>> >>> Revised patch attached. >>> How's this? >>> >>> Kyrill >>> >>> gcc/ >>> 2013-11-19 Kyrylo Tkachov <kyrylo.tkac...@arm.com> >>> >>> * Makefile.in (TEXI_GCC_FILES): Add arm-acle-intrinsics.texi. >>> * config.gcc (extra_headers): Add arm_acle.h. >>> * config/arm/arm.c (FL_CRC32): Define. >>> (arm_have_crc): Likewise. >>> (arm_option_override): Set arm_have_crc. >>> (arm_builtins): Add CRC32 builtins. >>> (bdesc_2arg): Likewise. >>> (arm_init_crc32_builtins): New function. >>> (arm_init_builtins): Initialise CRC32 builtins. >>> (arm_file_start): Handle architecture extensions. >>> * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define >>> __ARM_FEATURE_CRC32. >>> Define __ARM_32BIT_STATE. >>> (TARGET_CRC32): Define. >>> * config/arm/arm-arches.def: Add armv8-a+crc. >>> * config/arm/arm-tables.opt: Regenerate. >>> * config/arm/arm.md (type): Add crc. >>> (<crc_variant>): New insn. >>> * config/arm/arm_acle.h: New file. >>> * config/arm/iterators.md (CRC): New int iterator. >>> (crc_variant, crc_mode): New int attributes. >>> * confg/arm/unspecs.md (UNSPEC_CRC32B, UNSPEC_CRC32H, >>> UNSPEC_CRC32W, >>> UNSPEC_CRC32CB, UNSPEC_CRC32CH, UNSPEC_CRC32CW): New unspecs. >>> * doc/invoke.texi: Document -march=armv8-a+crc option. >>> * doc/extend.texi: Document ACLE intrinsics. >>> * doc/arm-acle-intrinsics.texi: New. >>> >>> >>> gcc/testsuite >>> 2013-11-19 Kyrylo Tkachov <kyrylo.tkac...@arm.com> >>> >>> * lib/target-supports.exp (add_options_for_arm_crc): New >>> procedure. >>> (check_effective_target_arm_crc_ok_nocache): Likewise. >>> (check_effective_target_arm_crc_ok): Likewise. >>> * gcc.target/arm/acle/: New directory. >>> * gcc.target/arm/acle/acle.exp: New. >>> * gcc.target/arm/acle/crc32b.c: New test. >>> * gcc.target/arm/acle/crc32h.c: Likewise. >>> * gcc.target/arm/acle/crc32w.c: Likewise. >>> * gcc.target/arm/acle/crc32d.c: Likewise. >>> * gcc.target/arm/acle/crc32cb.c: Likewise. >>> * gcc.target/arm/acle/crc32ch.c: Likewise. >>> * gcc.target/arm/acle/crc32cw.c: Likewise. >>> * gcc.target/arm/acle/crc32cd.c: Likewise. > > >