[PATCH 3/3] [arm] Implement support for the de-speculation intrinsic

Richard Earnshaw Richard.Earnshaw@arm.com
Thu Jan 4 13:59:00 GMT 2018


This patch implements despeculation on ARM.  We only support it when
generating ARM or Thumb2 code (we need conditional execution); and we
only support it for sizes up to DImode.  For unsupported cases we
fall back to the generic code generation sequence so that a suitable
failure warning is emitted.

	* config/arm/arm.c (arm_inhibit_load_speculation): New function
	(TARGET_INHIBIT_LOAD_SPECULATION): Redefine.
	* config/arm/unspec.md (VUNSPEC_NOSPECULATE): New unspec_volatile code.
	* config/arm/arm.md (cmp_ior): Make this pattern callable.
	(nospeculate<QHSI:mode>, nospeculatedi): New patterns.
---
 gcc/config/arm/arm.c      | 107 ++++++++++++++++++++++++++++++++++++++++++++++
 gcc/config/arm/arm.md     |  40 ++++++++++++++++-
 gcc/config/arm/unspecs.md |   1 +
 3 files changed, 147 insertions(+), 1 deletion(-)

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-arm-Implement-support-for-the-de-speculation-intrins.patch
Type: text/x-patch
Size: 6829 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20180104/1c1c9f68/attachment.bin>


More information about the Gcc-patches mailing list