diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index 99def8d4a777eed9490ba8109b2838c052bb7bdc..f75250f79de4b0da0493ab43c4ee70176c86bc79 100644 --- a/gcc/config/i386/i386.cc +++ b/gcc/config/i386/i386.cc @@ -27025,6 +27025,29 @@ ix86_libm_function_max_error (unsigned cfn, machine_mode mode, #undef TARGET_LIBM_FUNCTION_MAX_ERROR #define TARGET_LIBM_FUNCTION_MAX_ERROR ix86_libm_function_max_error +#if TARGET_MACHO +static bool +ix86_cannot_copy_insn_p (rtx_insn *insn) +{ + if (TARGET_64BIT) + return false; + + rtx set = single_set (insn); + if (set) + { + rtx src = SET_SRC (set); + if (GET_CODE (src) == UNSPEC + && XINT (src, 1) == UNSPEC_SET_GOT) + return true; + } + return false; +} + +#undef TARGET_CANNOT_COPY_INSN_P +#define TARGET_CANNOT_COPY_INSN_P ix86_cannot_copy_insn_p + +#endif + #if CHECKING_P #undef TARGET_RUN_TARGET_SELFTESTS #define TARGET_RUN_TARGET_SELFTESTS selftest::ix86_run_selftests