summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/llvm/llvm/lib/CodeGen/PrologEpilogInserter.cpp9
-rw-r--r--gnu/usr.bin/clang/include/clang/intrin/Makefile3
2 files changed, 11 insertions, 1 deletions
diff --git a/gnu/llvm/llvm/lib/CodeGen/PrologEpilogInserter.cpp b/gnu/llvm/llvm/lib/CodeGen/PrologEpilogInserter.cpp
index 89a45a83f96..bc9738e35bc 100644
--- a/gnu/llvm/llvm/lib/CodeGen/PrologEpilogInserter.cpp
+++ b/gnu/llvm/llvm/lib/CodeGen/PrologEpilogInserter.cpp
@@ -1353,6 +1353,15 @@ void PEI::insertZeroCallUsedRegs(MachineFunction &MF) {
for (MCRegister Reg : TRI.sub_and_superregs_inclusive(CSReg))
RegsToZero.reset(Reg);
+ // Don't touch the return protector register if it is used
+ const MachineFrameInfo &MFI = MF.getFrameInfo();
+ if (MFI.hasReturnProtectorRegister()) {
+ MCRegister RGReg = MCRegister(MFI.getReturnProtectorRegister());
+ for (MCRegister Reg : TRI.sub_and_superregs_inclusive(RGReg)) {
+ RegsToZero.reset(Reg);
+ }
+ }
+
const TargetFrameLowering &TFI = *MF.getSubtarget().getFrameLowering();
for (MachineBasicBlock &MBB : MF)
if (MBB.isReturnBlock())
diff --git a/gnu/usr.bin/clang/include/clang/intrin/Makefile b/gnu/usr.bin/clang/include/clang/intrin/Makefile
index 1ad66a36c55..e408257d1f3 100644
--- a/gnu/usr.bin/clang/include/clang/intrin/Makefile
+++ b/gnu/usr.bin/clang/include/clang/intrin/Makefile
@@ -1,4 +1,4 @@
-# $OpenBSD: Makefile,v 1.26 2023/11/11 18:35:35 robert Exp $
+# $OpenBSD: Makefile,v 1.27 2024/12/17 13:22:38 jca Exp $
.include <bsd.own.mk>
@@ -140,6 +140,7 @@ HEADERS+= altivec.h \
htmxlintrin.h
.elif ${MACHINE_ARCH} == "riscv64"
GEN+= riscv_vector.h
+HEADERS+= ${GEN}
.endif
all: ${HEADERS}