diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 2468d913c3e4..918cc01fb0c3 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -11066,6 +11066,10 @@ aarch64_address_valid_for_prefetch_p (rtx x, bool strict_p) if (!res) return false; + /* Darwinpcs allows addresses on the stack that are not DImode aligned. */ + if (TARGET_MACHO && addr.offset && (INTVAL (addr.offset) & 0x07)) + return false; + /* ... except writeback forms. */ return addr.type != ADDRESS_REG_WB; }