diff options
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/llvm/llvm/lib/CodeGen/PrologEpilogInserter.cpp | 9 | ||||
-rw-r--r-- | gnu/usr.bin/clang/include/clang/intrin/Makefile | 3 |
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} |