From: Dimitrije Milosevic Date: Wed, 6 Jul 2022 17:58:20 +0000 (+0800) Subject: Mips: Fix the ASAN shadow offset hook for the n32 ABI X-Git-Tag: basepoints/gcc-14~5658 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7922f5ee649a88cd7c0b6d1a242588013d96223d;p=thirdparty%2Fgcc.git Mips: Fix the ASAN shadow offset hook for the n32 ABI gcc/ChangeLog: * config/mips/mips.cc (mips_asan_shadow_offset): Reformat to handle the N32 ABI. * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove the macro, as it is not needed anymore. --- diff --git a/gcc/config/mips/mips.cc b/gcc/config/mips/mips.cc index 5eb845960e1..e81a245dcf4 100644 --- a/gcc/config/mips/mips.cc +++ b/gcc/config/mips/mips.cc @@ -22743,7 +22743,12 @@ mips_constant_alignment (const_tree exp, HOST_WIDE_INT align) static unsigned HOST_WIDE_INT mips_asan_shadow_offset (void) { - return SUBTARGET_SHADOW_OFFSET; + if (mips_abi == ABI_N32) + return (HOST_WIDE_INT_1 << 29); + if (POINTER_SIZE == 64) + return (HOST_WIDE_INT_1 << 37); + else + return HOST_WIDE_INT_C (0x0aaa0000); } /* Implement TARGET_STARTING_FRAME_OFFSET. See mips_compute_frame_info diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h index 858bbba3a36..0029864fdcd 100644 --- a/gcc/config/mips/mips.h +++ b/gcc/config/mips/mips.h @@ -3463,10 +3463,3 @@ struct GTY(()) machine_function { && !TARGET_MICROMIPS && !TARGET_FIX_24K) #define NEED_INDICATE_EXEC_STACK 0 - -/* Define the shadow offset for asan. Other OS's can override in the - respective tm.h files. */ -#ifndef SUBTARGET_SHADOW_OFFSET -#define SUBTARGET_SHADOW_OFFSET \ - (POINTER_SIZE == 64 ? HOST_WIDE_INT_1 << 37 : HOST_WIDE_INT_C (0x0aaa0000)) -#endif