-/* $OpenBSD: spl.S,v 1.19 2022/12/01 00:26:15 guenther Exp $ */
+/* $OpenBSD: spl.S,v 1.20 2023/07/27 00:30:07 guenther Exp $ */
/* $NetBSD: spl.S,v 1.3 2004/06/28 09:13:11 fvdl Exp $ */
/*
RETGUARD_PUSH(r11)
movl %edi,%ebx
leaq 1f(%rip),%r13 # address to resume loop at
-1: movl %ebx,%eax # get cpl
+1: endbr64
+ movl %ebx,%eax # get cpl
movq CPUVAR(IUNMASK)(,%rax,8),%rax
cli
andq CPUVAR(IPENDING),%rax # any non-masked bits left?
movq IF_PPL(%rsp),%rbx # get previous priority
decl CPUVAR(IDEPTH)
leaq 1f(%rip),%r13
-1: movl %ebx,%eax
+1: endbr64
+ movl %ebx,%eax
movq CPUVAR(IUNMASK)(,%rax,8),%rax
cli
andq CPUVAR(IPENDING),%rax
-/* $OpenBSD: vector.S,v 1.92 2023/04/17 00:02:14 deraadt Exp $ */
+/* $OpenBSD: vector.S,v 1.93 2023/07/27 00:30:07 guenther Exp $ */
/* $NetBSD: vector.S,v 1.5 2004/06/28 09:13:11 fvdl Exp $ */
/*
jae 2f
END(INTRENTRY_LABEL(intr_lapic_ipi))
KIDTVEC_FALLTHROUGH(resume_lapic_ipi)
+ endbr64
1:
incl CPUVAR(IDEPTH)
movl $IPL_IPI,CPUVAR(ILEVEL)
jae 2f
END(INTRENTRY_LABEL(intr_lapic_ltimer))
KIDTVEC_FALLTHROUGH(resume_lapic_ltimer)
+ endbr64
1:
incl CPUVAR(IDEPTH)
movl $IPL_CLOCK,CPUVAR(ILEVEL)
jae 2f
END(INTRENTRY_LABEL(intr_xen_upcall))
KIDTVEC_FALLTHROUGH(resume_xen_upcall)
+ endbr64
1:
incl CPUVAR(IDEPTH)
movl $IPL_NET,CPUVAR(ILEVEL)
jae 2f
END(INTRENTRY_LABEL(intr_hyperv_upcall))
KIDTVEC_FALLTHROUGH(resume_hyperv_upcall)
+ endbr64
1:
incl CPUVAR(IDEPTH)
movl $IPL_NET,CPUVAR(ILEVEL)
INTR_RECURSE ;\
END(Xrecurse_##name##num) ;\
KIDTVEC_FALLTHROUGH(resume_##name##num) \
+ endbr64 ;\
movq $IREENT_MAGIC,TF_ERR(%rsp) ;\
movl %ebx,%r13d ;\
movq CPUVAR(ISOURCES) + (num) * 8, %r14 ;\
END(retpoline_r13)
KIDTVEC(softtty)
+ endbr64
movl $IPL_SOFTTTY, CPUVAR(ILEVEL)
sti
incl CPUVAR(IDEPTH)
END(Xsofttty)
KIDTVEC(softnet)
+ endbr64
movl $IPL_SOFTNET, CPUVAR(ILEVEL)
sti
incl CPUVAR(IDEPTH)
END(Xsoftnet)
KIDTVEC(softclock)
+ endbr64
movl $IPL_SOFTCLOCK, CPUVAR(ILEVEL)
sti
incl CPUVAR(IDEPTH)
-/* $OpenBSD: frameasm.h,v 1.26 2023/04/17 00:02:14 deraadt Exp $ */
+/* $OpenBSD: frameasm.h,v 1.27 2023/07/27 00:30:07 guenther Exp $ */
/* $NetBSD: frameasm.h,v 1.1 2003/04/26 18:39:40 fvdl Exp $ */
#ifndef _AMD64_MACHINE_FRAMEASM_H
* to return to. %r10 and %r11 are scratch.
*/
#define INTR_RECURSE \
+ endbr64 ; \
/* fake the iretq_frame */ ; \
movq %rsp,%r10 ; \
movl %ss,%r11d ; \