On Mon, 2022-06-06 at 09:28 +0000, Dimitrije Milosevic wrote: > 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. > > --- > > gcc/config/mips/mips.cc | 7 ++++++- > gcc/config/mips/mips.h | 7 ------- > 2 files changed, 6 insertions(+), 8 deletions(-) > > diff --git a/gcc/config/mips/mips.cc b/gcc/config/mips/mips.cc > index 2dce4007678..91e651c458e 100644 > --- a/gcc/config/mips/mips.cc > +++ b/gcc/config/mips/mips.cc > @@ -22745,7 +22745,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 > > ---
I think this depends on https://reviews.llvm.org/D127096 (not committed yet)? -- Xi Ruoyao <xry...@xry111.site> School of Aerospace Science and Technology, Xidian University