[AArch64] Define TARGET_UNSPEC_MAY_TRAP_P
authorJiong Wang <jiong.wang@arm.com>
Wed, 8 Jul 2015 20:18:00 +0000 (20:18 +0000)
committerJiong Wang <jiwang@gcc.gnu.org>
Wed, 8 Jul 2015 20:18:00 +0000 (20:18 +0000)
      gcc/
* config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
(TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.

From-SVN: r225581

gcc/ChangeLog
gcc/config/aarch64/aarch64.c

index bbab89b..3432adb 100644 (file)
@@ -1,3 +1,8 @@
+2015-07-08  Jiong Wang  <jiong.wang@arm.com>
+
+       * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
+       (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
+
 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR target/66746
index cb00ad3..6c13a07 100644 (file)
@@ -11890,6 +11890,24 @@ aarch64_use_pseudo_pic_reg (void)
   return aarch64_cmodel == AARCH64_CMODEL_SMALL_SPIC;
 }
 
+/* Implement TARGET_UNSPEC_MAY_TRAP_P.  */
+
+static int
+aarch64_unspec_may_trap_p (const_rtx x, unsigned flags)
+{
+  switch (XINT (x, 1))
+    {
+    case UNSPEC_GOTSMALLPIC:
+    case UNSPEC_GOTSMALLPIC28K:
+    case UNSPEC_GOTTINYPIC:
+      return 0;
+    default:
+      break;
+    }
+
+  return default_unspec_may_trap_p (x, flags);
+}
+
 #undef TARGET_ADDRESS_COST
 #define TARGET_ADDRESS_COST aarch64_address_cost
 
@@ -12168,6 +12186,9 @@ aarch64_use_pseudo_pic_reg (void)
 #undef TARGET_SCHED_FUSION_PRIORITY
 #define TARGET_SCHED_FUSION_PRIORITY aarch64_sched_fusion_priority
 
+#undef TARGET_UNSPEC_MAY_TRAP_P
+#define TARGET_UNSPEC_MAY_TRAP_P aarch64_unspec_may_trap_p
+
 #undef TARGET_USE_PSEUDO_PIC_REG
 #define TARGET_USE_PSEUDO_PIC_REG aarch64_use_pseudo_pic_reg