Re: [PATCH] LoongArch: Add LA32 pointer guard support
mengqinggang <[email protected]>
| Newsgroups | gmane.comp.lib.glibc.alpha |
|---|---|
| Message-ID | <[email protected]> |
Hi, Thanks for you patch. A similar patch is here: https://sourceware.org/pipermail/libc-alpha/2026-August/179652.html 在 2026/8/23 03:48, 魏祎晗 写道: > From f493e834ec4affef287e0e7352426f11fec83bc9 Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?=E9=AD=8F=E7=A5=8E=E6=99=97?= <[email protected]> > Date: Sun, 23 Aug 2026 03:40:42 +0800 > Subject: [PATCH] LoongArch: Add LA32 pointer guard support > MIME-Version: 1.0 > Content-Type: text/plain; charset=UTF-8 > Content-Transfer-Encoding: 8bit > > The pointer guard assembly only implemented the 64-bit path using rotri.d. LA32 lacks rotri.w, so implement the 32-bit branch using srli.w/slli.w/or to perform the rotation. > > Signed-off-by: 魏祎晗 <[email protected]> > --- > .../unix/sysv/linux/loongarch/pointer_guard-asm.h | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/sysdeps/unix/sysv/linux/loongarch/pointer_guard-asm.h b/sysdeps/unix/sysv/linux/loongarch/pointer_guard-asm.h > index 24e27e4092..8fe71b5aee 100644 > --- a/sysdeps/unix/sysv/linux/loongarch/pointer_guard-asm.h > +++ b/sysdeps/unix/sysv/linux/loongarch/pointer_guard-asm.h > @@ -36,12 +36,25 @@ > PTR_MANGLE_LOAD (guard); \ > PTR_DEMANGLE2 (dst, src, guard); > /* Use PTR_MANGLE2 for efficiency if guard is already loaded. */ > +# if __loongarch_grlen == 64 > # define PTR_MANGLE2(dst, src, guard) \ > xor dst, src, guard; \ > rotri.d dst, dst, 47; > # define PTR_DEMANGLE2(dst, src, guard) \ > rotri.d src, src, 17; \ > xor dst, src, guard; > +# else > +# define PTR_MANGLE2(dst, src, guard) \ > + xor dst, src, guard; \ > + srli.w t2, dst, 23; \ > + slli.w dst, dst, 9; \ > + or dst, dst, t2; > +# define PTR_DEMANGLE2(dst, src, guard) \ > + srli.w t2, src, 9; \ > + slli.w src, src, 23; \ > + or src, src, t2; \ > + xor dst, src, guard; > +# endif > #endif > > #endif /* POINTER_GUARD_ASM_H */