summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorPhilip Guenther <guenther@cvs.openbsd.org>2022-12-01 00:26:16 +0000
committerPhilip Guenther <guenther@cvs.openbsd.org>2022-12-01 00:26:16 +0000
commitfae2e911e92b52b7c27fab6a883c826eb8962b3c (patch)
tree2a144ff472c6814635ab72b809ac6cbc1a1ac1b4 /sys/arch
parent4e4b1886af0747a922f14ed00884cea8b1b1964f (diff)
_C_LABEL() is no longer useful in the "everything is ELF" world.
Start eliminating it. ok mpi@ mlarkin@ krw@
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/amd64/amd64/acpi_wakecode.S24
-rw-r--r--sys/arch/amd64/amd64/copy.S36
-rw-r--r--sys/arch/amd64/amd64/locore.S101
-rw-r--r--sys/arch/amd64/amd64/locore0.S26
-rw-r--r--sys/arch/amd64/amd64/mptramp.S29
-rw-r--r--sys/arch/amd64/amd64/spl.S14
-rw-r--r--sys/arch/amd64/amd64/vector.S528
-rw-r--r--sys/arch/amd64/amd64/vmm_support.S50
-rw-r--r--sys/arch/amd64/include/asm.h10
-rw-r--r--sys/arch/amd64/include/i82093reg.h4
10 files changed, 333 insertions, 489 deletions
diff --git a/sys/arch/amd64/amd64/acpi_wakecode.S b/sys/arch/amd64/amd64/acpi_wakecode.S
index cd9c9240bf8..ddcdc74c3ed 100644
--- a/sys/arch/amd64/amd64/acpi_wakecode.S
+++ b/sys/arch/amd64/amd64/acpi_wakecode.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: acpi_wakecode.S,v 1.48 2022/11/29 02:19:29 guenther Exp $ */
+/* $OpenBSD: acpi_wakecode.S,v 1.49 2022/12/01 00:26:15 guenther Exp $ */
/*
* Copyright (c) 2001 Takanori Watanabe <takawata@jp.freebsd.org>
* Copyright (c) 2001 Mitsuru IWASAKI <iwasaki@jp.freebsd.org>
@@ -58,12 +58,12 @@
#define addr32
#endif
-#define _ACPI_TRMP_LABEL(a) a = . - _C_LABEL(acpi_real_mode_resume) + \
+#define _ACPI_TRMP_LABEL(a) a = . - acpi_real_mode_resume + \
ACPI_TRAMPOLINE
-#define _ACPI_TRMP_OFFSET(a) a = . - _C_LABEL(acpi_real_mode_resume)
-#define _ACPI_TRMP_DATA_LABEL(a) a = . - _C_LABEL(acpi_tramp_data_start) + \
+#define _ACPI_TRMP_OFFSET(a) a = . - acpi_real_mode_resume
+#define _ACPI_TRMP_DATA_LABEL(a) a = . - acpi_tramp_data_start + \
ACPI_TRAMP_DATA
-#define _ACPI_TRMP_DATA_OFFSET(a) a = . - _C_LABEL(acpi_tramp_data_start)
+#define _ACPI_TRMP_DATA_OFFSET(a) a = . - acpi_tramp_data_start
#define _ACPI_RM_CODE_SEG (ACPI_TRAMPOLINE >> 4)
#define _ACPI_RM_DATA_SEG (ACPI_TRAMP_DATA >> 4)
@@ -92,10 +92,10 @@
.section .rodata
.code16
.align 4, 0xcc
- .global _C_LABEL(acpi_resume_end)
- .global _C_LABEL(acpi_pdirpa)
- .global _C_LABEL(acpi_tramp_data_start)
- .global _C_LABEL(acpi_tramp_data_end)
+ .global acpi_resume_end
+ .global acpi_pdirpa
+ .global acpi_tramp_data_start
+ .global acpi_tramp_data_end
GENTRY(acpi_real_mode_resume)
_ACPI_TRMP_OFFSET(.Lacpi_s3_vector_real)
nop
@@ -529,7 +529,7 @@ END(hibernate_flush)
*/
.section .rodata
.type acpi_resume_end,@object
-_C_LABEL(acpi_resume_end):
+acpi_resume_end:
END(acpi_real_mode_resume)
/*
@@ -538,7 +538,7 @@ END(acpi_real_mode_resume)
*/
.section .rodata
.type acpi_tramp_data_start,@object
-_C_LABEL(acpi_tramp_data_start):
+acpi_tramp_data_start:
_ACPI_TRMP_DATA_OFFSET(.Ltmp_gdt)
.word .Ltmp_gdt_end - .Ltmp_gdtable
.long .Ltmp_gdtable
@@ -715,7 +715,7 @@ _ACPI_TRMP_DATA_LABEL(.Lhibernate_indirect_16b)
#endif /* HIBERNATE */
.type acpi_tramp_data_end,@object
-_C_LABEL(acpi_tramp_data_end):
+acpi_tramp_data_end:
END(acpi_tramp_data_start)
/*
diff --git a/sys/arch/amd64/amd64/copy.S b/sys/arch/amd64/amd64/copy.S
index 87bdd002952..f9f619e04e1 100644
--- a/sys/arch/amd64/amd64/copy.S
+++ b/sys/arch/amd64/amd64/copy.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: copy.S,v 1.15 2022/11/07 01:41:57 guenther Exp $ */
+/* $OpenBSD: copy.S,v 1.16 2022/12/01 00:26:15 guenther Exp $ */
/* $NetBSD: copy.S,v 1.1 2003/04/26 18:39:26 fvdl Exp $ */
/*
@@ -60,7 +60,7 @@ ENTRY(kcopy)
RETGUARD_SETUP(kcopy, r10)
movq CPUVAR(CURPCB),%rax
pushq PCB_ONFAULT(%rax)
- leaq _C_LABEL(copy_fault)(%rip),%r11
+ leaq copy_fault(%rip),%r11
movq %r11, PCB_ONFAULT(%rax)
xchgq %rdi,%rsi
@@ -118,13 +118,13 @@ ENTRY(copyout)
movq %rdi,%rdx
addq %rax,%rdx
- jc _C_LABEL(copy_fault)
+ jc copy_fault
movq $VM_MAXUSER_ADDRESS,%r8
cmpq %r8,%rdx
- ja _C_LABEL(copy_fault)
+ ja copy_fault
movq CPUVAR(CURPCB),%rdx
- leaq _C_LABEL(copy_fault)(%rip),%r11
+ leaq copy_fault(%rip),%r11
movq %r11,PCB_ONFAULT(%rdx)
SMAP_STAC
movq %rax,%rcx
@@ -151,7 +151,7 @@ ENTRY(copyin)
RETGUARD_SETUP(kcopy, r10)
movq CPUVAR(CURPCB),%rax
pushq $0
- leaq _C_LABEL(copy_fault)(%rip),%r11
+ leaq copy_fault(%rip),%r11
movq %r11,PCB_ONFAULT(%rax)
SMAP_STAC
xchgq %rdi,%rsi
@@ -159,10 +159,10 @@ ENTRY(copyin)
movq %rsi,%rdx
addq %rax,%rdx
- jc _C_LABEL(copy_fault)
+ jc copy_fault
movq $VM_MAXUSER_ADDRESS,%r8
cmpq %r8,%rdx
- ja _C_LABEL(copy_fault)
+ ja copy_fault
3: /* bcopy(%rsi, %rdi, %rax); */
movq %rax,%rcx
@@ -204,7 +204,7 @@ ENTRY(copyoutstr)
movq %rcx,%r9
5: movq CPUVAR(CURPCB),%rax
- leaq _C_LABEL(copystr_fault)(%rip),%r11
+ leaq copystr_fault(%rip),%r11
movq %r11,PCB_ONFAULT(%rax)
SMAP_STAC
/*
@@ -212,7 +212,7 @@ ENTRY(copyoutstr)
*/
movq $VM_MAXUSER_ADDRESS,%rax
subq %rdi,%rax
- jbe _C_LABEL(copystr_fault) /* die if CF == 1 || ZF == 1 */
+ jbe copystr_fault /* die if CF == 1 || ZF == 1 */
cmpq %rdx,%rax
jae 1f
movq %rax,%rdx
@@ -235,7 +235,7 @@ ENTRY(copyoutstr)
2: /* rdx is zero -- return EFAULT or ENAMETOOLONG. */
movq $VM_MAXUSER_ADDRESS,%r11
cmpq %r11,%rdi
- jae _C_LABEL(copystr_fault)
+ jae copystr_fault
movl $ENAMETOOLONG,%eax
jmp copystr_return
@@ -246,7 +246,7 @@ ENTRY(copyinstr)
movq %rcx,%r9
movq CPUVAR(CURPCB),%rcx
- leaq _C_LABEL(copystr_fault)(%rip),%r11
+ leaq copystr_fault(%rip),%r11
movq %r11,PCB_ONFAULT(%rcx)
SMAP_STAC
@@ -255,7 +255,7 @@ ENTRY(copyinstr)
*/
movq $VM_MAXUSER_ADDRESS,%rax
subq %rsi,%rax
- jbe _C_LABEL(copystr_fault) /* die if CF == 1 || ZF == 1 */
+ jbe copystr_fault /* die if CF == 1 || ZF == 1 */
cmpq %rdx,%rax
jae 1f
movq %rax,%rdx
@@ -278,7 +278,7 @@ ENTRY(copyinstr)
2: /* edx is zero -- return EFAULT or ENAMETOOLONG. */
movq $VM_MAXUSER_ADDRESS,%r11
cmpq %r11,%rsi
- jae _C_LABEL(copystr_fault)
+ jae copystr_fault
movl $ENAMETOOLONG,%eax
jmp copystr_return
@@ -332,10 +332,10 @@ ENTRY(copystr)
lfence
.section .rodata
- .globl _C_LABEL(_stac)
-_C_LABEL(_stac):
+ .globl _stac
+_stac:
stac
- .globl _C_LABEL(_clac)
-_C_LABEL(_clac):
+ .globl _clac
+_clac:
clac
diff --git a/sys/arch/amd64/amd64/locore.S b/sys/arch/amd64/amd64/locore.S
index d2093a773e8..838b11e3e1f 100644
--- a/sys/arch/amd64/amd64/locore.S
+++ b/sys/arch/amd64/amd64/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.130 2022/11/29 21:41:39 guenther Exp $ */
+/* $OpenBSD: locore.S,v 1.131 2022/12/01 00:26:15 guenther Exp $ */
/* $NetBSD: locore.S,v 1.13 2004/03/25 18:33:17 drochner Exp $ */
/*
@@ -147,19 +147,19 @@
.data
#if NLAPIC > 0
- .align NBPG, 0xcc
- .globl _C_LABEL(local_apic), _C_LABEL(lapic_id), _C_LABEL(lapic_tpr)
-_C_LABEL(local_apic):
- .space LAPIC_ID
-_C_LABEL(lapic_id):
- .long 0x00000000
- .space LAPIC_TPRI-(LAPIC_ID+4)
-_C_LABEL(lapic_tpr):
- .space LAPIC_PPRI-LAPIC_TPRI
-_C_LABEL(lapic_ppr):
- .space LAPIC_ISR-LAPIC_PPRI
-_C_LABEL(lapic_isr):
- .space NBPG-LAPIC_ISR
+ .align NBPG, 0xcc
+ .globl local_apic, lapic_id, lapic_tpr
+local_apic:
+ .space LAPIC_ID
+lapic_id:
+ .long 0x00000000
+ .space LAPIC_TPRI-(LAPIC_ID+4)
+lapic_tpr:
+ .space LAPIC_PPRI-LAPIC_TPRI
+lapic_ppr:
+ .space LAPIC_ISR-LAPIC_PPRI
+lapic_isr:
+ .space NBPG-LAPIC_ISR
#endif
/*****************************************************************************/
@@ -169,29 +169,29 @@ _C_LABEL(lapic_isr):
* gdb's backtrace logic matches against the instructions in this.
*/
.section .rodata
- .globl _C_LABEL(sigcode)
-_C_LABEL(sigcode):
+ .globl sigcode
+sigcode:
call 1f
movq %rsp,%rdi
pushq %rdi /* fake return address */
movq $SYS_sigreturn,%rax
syscall
- .globl _C_LABEL(sigcoderet)
-_C_LABEL(sigcoderet):
+ .globl sigcoderet
+sigcoderet:
movq $SYS_exit,%rax
syscall
_ALIGN_TRAPS
1: JMP_RETPOLINE(rax)
- .globl _C_LABEL(esigcode)
-_C_LABEL(esigcode):
+ .globl esigcode
+esigcode:
- .globl _C_LABEL(sigfill)
-_C_LABEL(sigfill):
+ .globl sigfill
+sigfill:
int3
-_C_LABEL(esigfill):
- .globl _C_LABEL(sigfillsiz)
-_C_LABEL(sigfillsiz):
- .long _C_LABEL(esigfill) - _C_LABEL(sigfill)
+esigfill:
+ .globl sigfillsiz
+sigfillsiz:
+ .long esigfill - sigfill
.text
/*
@@ -461,10 +461,9 @@ switch_restored:
lfence
#ifdef DIAGNOSTIC
- .globl _C_LABEL(panic)
.Lbogus_proc_pmap:
leaq bogus_proc_pmap,%rdi
- call _C_LABEL(panic)
+ call panic
int3 /* NOTREACHED */
.pushsection .rodata
bogus_proc_pmap:
@@ -489,7 +488,7 @@ NENTRY(retpoline_rax)
ENTRY(cpu_idle_cycle)
RETGUARD_SETUP(cpu_idle_cycle, r11)
- movq _C_LABEL(cpu_idle_cycle_fcn),%rax
+ movq cpu_idle_cycle_fcn,%rax
cmpq $0,%rax
jne retpoline_rax
sti
@@ -566,7 +565,7 @@ IDTVEC_NOALIGN(syscall)
movq %rsp,P_MD_REGS(%r14) # save pointer to frame
andl $~MDP_IRET,P_MD_FLAGS(%r14)
movq %rsp,%rdi
- call _C_LABEL(syscall)
+ call syscall
.Lsyscall_check_asts:
/* Check for ASTs on exit to user mode. */
@@ -576,7 +575,7 @@ IDTVEC_NOALIGN(syscall)
CLEAR_ASTPENDING(%r11)
sti
movq %rsp,%rdi
- call _C_LABEL(ast)
+ call ast
jmp .Lsyscall_check_asts
2:
@@ -697,7 +696,7 @@ KUTEXT_PAGE_END
movl %ebx,%ecx
movl CPUVAR(ILEVEL),%r8d
xorq %rax,%rax
- call _C_LABEL(printf)
+ call printf
#ifdef DDB
int $3
#endif /* DDB */
@@ -712,7 +711,7 @@ spl_lowered:
NENTRY(proc_trampoline)
#ifdef MULTIPROCESSOR
- call _C_LABEL(proc_trampoline_mp)
+ call proc_trampoline_mp
#endif
movl $IPL_NONE,CPUVAR(ILEVEL)
movq %r13,%rdi
@@ -754,7 +753,7 @@ GENTRY(intr_user_exit)
CLEAR_ASTPENDING(%r11)
sti
movq %rsp,%rdi
- call _C_LABEL(ast)
+ call ast
cli
jmp intr_user_exit
@@ -851,8 +850,8 @@ KTEXT_PAGE_START
CODEPATCH_END(CPTAG_MELTDOWN_NOP)
swapgs
- .globl _C_LABEL(doreti_iret)
-_C_LABEL(doreti_iret):
+ .globl doreti_iret
+doreti_iret:
iretq
KTEXT_PAGE_END
@@ -902,7 +901,7 @@ KTEXT_PAGE_END
incl %edi
movl %edi,warn_once(%rip)
leaq .Lnot_blocked(%rip),%rdi
- call _C_LABEL(printf)
+ call printf
#ifdef DDB
int $3
#endif /* DDB */
@@ -915,7 +914,7 @@ KTEXT_PAGE_END
movl CPUVAR(ILEVEL),%esi
xorl %edx,%edx /* always SPL zero for userspace */
xorl %eax,%eax
- call _C_LABEL(printf)
+ call printf
#ifdef DDB
int $3
#endif /* DDB */
@@ -967,7 +966,7 @@ NENTRY(intr_fast_exit)
incl %edi
movl %edi,warn_once(%rip)
leaq .Lnot_blocked(%rip),%rdi
- call _C_LABEL(printf)
+ call printf
#ifdef DDB
int $3
#endif /* DDB */
@@ -1072,20 +1071,20 @@ NENTRY(xsetbv_resume)
END(xsetbv_user)
.section .rodata
- .globl _C_LABEL(_xrstor)
-_C_LABEL(_xrstor):
+ .globl _xrstor
+_xrstor:
xrstor64 (%rdi)
- .globl _C_LABEL(_xsave)
-_C_LABEL(_xsave):
+ .globl _xsave
+_xsave:
xsave64 (%rdi)
- .globl _C_LABEL(_xsaveopt)
-_C_LABEL(_xsaveopt):
+ .globl _xsaveopt
+_xsaveopt:
xsaveopt64 (%rdi)
- .globl _C_LABEL(_pcid_set_reuse)
-_C_LABEL(_pcid_set_reuse):
+ .globl _pcid_set_reuse
+_pcid_set_reuse:
orl $(CR3_REUSE_PCID >> 32),CPUVAR(USER_CR3 + 4)
ENTRY(pagezero)
@@ -1135,8 +1134,8 @@ END(rdmsr_safe)
/* Hypercall page needs to be page aligned */
.text
.align NBPG, 0xcc
- .globl _C_LABEL(xen_hypercall_page)
-_C_LABEL(xen_hypercall_page):
+ .globl xen_hypercall_page
+xen_hypercall_page:
.skip 0x1000, 0xcc
#endif /* NXEN > 0 */
@@ -1144,7 +1143,7 @@ _C_LABEL(xen_hypercall_page):
/* Hypercall page needs to be page aligned */
.text
.align NBPG, 0xcc
- .globl _C_LABEL(hv_hypercall_page)
-_C_LABEL(hv_hypercall_page):
+ .globl hv_hypercall_page
+hv_hypercall_page:
.skip 0x1000, 0xcc
#endif /* NXEN > 0 */
diff --git a/sys/arch/amd64/amd64/locore0.S b/sys/arch/amd64/amd64/locore0.S
index 4ed7d9776fd..fa739e344c1 100644
--- a/sys/arch/amd64/amd64/locore0.S
+++ b/sys/arch/amd64/amd64/locore0.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore0.S,v 1.20 2021/12/31 10:44:05 jsg Exp $ */
+/* $OpenBSD: locore0.S,v 1.21 2022/12/01 00:26:15 guenther Exp $ */
/* $NetBSD: locore.S,v 1.13 2004/03/25 18:33:17 drochner Exp $ */
/*
@@ -124,7 +124,7 @@
#include <dev/isa/isareg.h>
#define _RELOC(x) ((x) - KERNBASE)
-#define RELOC(x) _RELOC(_C_LABEL(x))
+#define RELOC(x) _RELOC(x)
/*
* Some hackage to deal with 64bit symbols in 32 bit mode.
@@ -132,8 +132,8 @@
*/
.text
- .globl _C_LABEL(kernel_text)
- .set _C_LABEL(kernel_text),KERNTEXTOFF
+ .globl kernel_text
+ .set kernel_text,KERNTEXTOFF
.code32
@@ -646,15 +646,15 @@ longmode_hi:
/* Relocate atdevbase. */
movq $(TABLESIZE+KERNBASE),%rdx
addq %rsi,%rdx
- movq %rdx,_C_LABEL(atdevbase)(%rip)
+ movq %rdx,atdevbase(%rip)
/* Record start of symbols */
- movq $__kernel_bss_end, _C_LABEL(ssym)(%rip)
+ movq $__kernel_bss_end, ssym(%rip)
/* Set up bootstrap stack. */
leaq (PROC0_STK_OFF)(%rsi),%rax
addq %r8,%rax
- movq %rax,_C_LABEL(proc0paddr)(%rip)
+ movq %rax,proc0paddr(%rip)
leaq (USPACE-FRAMESIZE)(%rax),%rsp
/*
@@ -673,18 +673,18 @@ longmode_hi:
subq $(NBPG*3), %rdi
/* XXX merge these */
- call _C_LABEL(init_x86_64)
- call _C_LABEL(main)
+ call init_x86_64
+ call main
.section .codepatch,"a"
.align 8, 0xcc
- .globl _C_LABEL(codepatch_begin)
-_C_LABEL(codepatch_begin):
+ .globl codepatch_begin
+codepatch_begin:
.previous
.section .codepatchend,"a"
- .globl _C_LABEL(codepatch_end)
-_C_LABEL(codepatch_end):
+ .globl codepatch_end
+codepatch_end:
.previous
.data
diff --git a/sys/arch/amd64/amd64/mptramp.S b/sys/arch/amd64/amd64/mptramp.S
index 4bb5dac0b9d..082f1d4a798 100644
--- a/sys/arch/amd64/amd64/mptramp.S
+++ b/sys/arch/amd64/amd64/mptramp.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: mptramp.S,v 1.21 2022/11/29 02:19:29 guenther Exp $ */
+/* $OpenBSD: mptramp.S,v 1.22 2022/12/01 00:26:15 guenther Exp $ */
/* $NetBSD: mptramp.S,v 1.1 2003/04/26 18:39:30 fvdl Exp $ */
/*-
@@ -88,16 +88,15 @@
#define addr32
#endif
-#define _TRMP_LABEL(a) a = . - _C_LABEL(cpu_spinup_trampoline) + MP_TRAMPOLINE
-#define _TRMP_OFFSET(a) a = . - _C_LABEL(cpu_spinup_trampoline)
+#define _TRMP_LABEL(a) a = . - cpu_spinup_trampoline + MP_TRAMPOLINE
+#define _TRMP_OFFSET(a) a = . - cpu_spinup_trampoline
-#define _TRMP_DATA_LABEL(a) a = . - _C_LABEL(mp_tramp_data_start) + \
- MP_TRAMP_DATA
-#define _TRMP_DATA_OFFSET(a) a = . - _C_LABEL(mp_tramp_data_start)
+#define _TRMP_DATA_LABEL(a) a = . - mp_tramp_data_start + MP_TRAMP_DATA
+#define _TRMP_DATA_OFFSET(a) a = . - mp_tramp_data_start
- .global _C_LABEL(cpu_spinup_trampoline_end)
- .global _C_LABEL(mp_tramp_data_start)
- .global _C_LABEL(mp_tramp_data_end)
+ .global cpu_spinup_trampoline_end
+ .global mp_tramp_data_start
+ .global mp_tramp_data_end
/*
* Initial copy of this code gets placed in .rodata, kernel
@@ -188,7 +187,7 @@ _TRMP_LABEL(.Lmptramp_longmode)
jmp *%rax
.type cpu_spinup_trampoline_end,@object
-_C_LABEL(cpu_spinup_trampoline_end): #end of code copied to MP_TRAMPOLINE
+cpu_spinup_trampoline_end: #end of code copied to MP_TRAMPOLINE
END(cpu_spinup_trampoline)
.text
@@ -207,12 +206,12 @@ GENTRY(cpu_spinup_finish)
andl $X2APIC_ID_MASK,%eax
jmp 2f
1:
- movl _C_LABEL(local_apic)+LAPIC_ID,%eax
+ movl local_apic+LAPIC_ID,%eax
shrl $LAPIC_ID_SHIFT,%eax
2:
xorq %rcx,%rcx
3:
- movq _C_LABEL(cpu_info)(,%rcx,8),%rdi
+ movq cpu_info(,%rcx,8),%rdi
incq %rcx
movl CPU_INFO_APICID(%rdi),%edx
cmpl %eax,%edx
@@ -233,13 +232,13 @@ GENTRY(cpu_spinup_finish)
movq %rax,%cr3
movl $CR0_DEFAULT,%eax
movq %rax,%cr0
- call _C_LABEL(cpu_hatch)
+ call cpu_hatch
END(cpu_spinup_finish)
/* NOTREACHED */
.section .rodata
.type mp_tramp_data_start,@object
-_C_LABEL(mp_tramp_data_start):
+mp_tramp_data_start:
_TRMP_DATA_LABEL(.Lmptramp_jmp64)
.long .Lmptramp_longmode
.word GSEL(GCODE_SEL, SEL_KPL)
@@ -268,5 +267,5 @@ _TRMP_DATA_LABEL(.Lmptramp_gdt64_desc)
.long .Lmptramp_gdt64
.type mp_tramp_data_end,@object
-_C_LABEL(mp_tramp_data_end):
+mp_tramp_data_end:
END(mp_tramp_data_start)
diff --git a/sys/arch/amd64/amd64/spl.S b/sys/arch/amd64/amd64/spl.S
index 84c6c6f5450..b2327d0a72e 100644
--- a/sys/arch/amd64/amd64/spl.S
+++ b/sys/arch/amd64/amd64/spl.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: spl.S,v 1.18 2021/09/04 22:15:33 bluhm Exp $ */
+/* $OpenBSD: spl.S,v 1.19 2022/12/01 00:26:15 guenther Exp $ */
/* $NetBSD: spl.S,v 1.3 2004/06/28 09:13:11 fvdl Exp $ */
/*
@@ -80,10 +80,7 @@
/*
* XXXX TODO
*/
- .globl _C_LABEL(splhigh), _C_LABEL(splx)
-
- .align 16, 0xcc
-_C_LABEL(splhigh):
+_ENTRY(splhigh)
RETGUARD_SETUP(splhigh, r11)
movl $IPL_HIGH,%eax
xchgl %eax,CPUVAR(ILEVEL)
@@ -91,13 +88,12 @@ _C_LABEL(splhigh):
ret
lfence
- .align 16, 0xcc
-_C_LABEL(splx):
+_ENTRY(splx)
RETGUARD_SETUP(splx, r11)
movl 4(%esp),%eax
movl %eax,CPUVAR(ILEVEL)
testl %eax,%eax
- jnz _C_LABEL(Xspllower)
+ jnz Xspllower
RETGUARD_CHECK(splx, r11)
ret
lfence
@@ -144,6 +140,7 @@ KIDTVEC(spllower)
movq CPUVAR(ISOURCES)(,%rax,8),%rax
movq IS_RECURSE(%rax),%rax
jmp retpoline_rax
+END(Xspllower)
/*
* Handle return from interrupt after device handler finishes.
@@ -170,3 +167,4 @@ KIDTVEC(doreti)
movq CPUVAR(ISOURCES)(,%rax, 8),%rax
movq IS_RESUME(%rax),%rax
jmp retpoline_rax
+END(Xdoreti)
diff --git a/sys/arch/amd64/amd64/vector.S b/sys/arch/amd64/amd64/vector.S
index 825a661477c..160a267c09a 100644
--- a/sys/arch/amd64/amd64/vector.S
+++ b/sys/arch/amd64/amd64/vector.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: vector.S,v 1.86 2021/09/04 22:15:33 bluhm Exp $ */
+/* $OpenBSD: vector.S,v 1.87 2022/12/01 00:26:15 guenther Exp $ */
/* $NetBSD: vector.S,v 1.5 2004/06/28 09:13:11 fvdl Exp $ */
/*
@@ -99,7 +99,7 @@
/*****************************************************************************/
-#define TRAP(a) pushq $(a) ; jmp _C_LABEL(alltraps)
+#define TRAP(a) pushq $(a) ; jmp alltraps
#define ZTRAP(a) pushq $0 ; TRAP(a)
IDTVEC(trap00)
@@ -144,7 +144,7 @@ INTRENTRY_LABEL(calltrap_specstk):
cld
SMAP_CLAC
movq %rsp,%rdi
- call _C_LABEL(kerntrap)
+ call kerntrap
movl $MSR_GSBASE,%ecx # restore GS.base
movq %r12,%rax
movq %r13,%rdx
@@ -188,9 +188,9 @@ INTRENTRY_LABEL(trap03):
sti
cld
SMAP_CLAC
- leaq _C_LABEL(dt_prov_kprobe), %rdi
+ leaq dt_prov_kprobe, %rdi
movq %rsp, %rsi
- call _C_LABEL(dt_prov_kprobe_hook)
+ call dt_prov_kprobe_hook
cmpl $0, %eax
je .Lreal_kern_trap
@@ -376,22 +376,14 @@ IDTVEC_NOALIGN(trap1f)
.globl Xexceptions
.type Xexceptions,@object
Xexceptions:
- .quad _C_LABEL(Xtrap00), _C_LABEL(Xtrap01)
- .quad _C_LABEL(Xtrap02), _C_LABEL(Xtrap03)
- .quad _C_LABEL(Xtrap04), _C_LABEL(Xtrap05)
- .quad _C_LABEL(Xtrap06), _C_LABEL(Xtrap07)
- .quad _C_LABEL(Xtrap08), _C_LABEL(Xtrap09)
- .quad _C_LABEL(Xtrap0a), _C_LABEL(Xtrap0b)
- .quad _C_LABEL(Xtrap0c), _C_LABEL(Xtrap0d)
- .quad _C_LABEL(Xtrap0e), _C_LABEL(Xtrap0f)
- .quad _C_LABEL(Xtrap10), _C_LABEL(Xtrap11)
- .quad _C_LABEL(Xtrap12), _C_LABEL(Xtrap13)
- .quad _C_LABEL(Xtrap14), _C_LABEL(Xtrap15)
- .quad _C_LABEL(Xtrap16), _C_LABEL(Xtrap17)
- .quad _C_LABEL(Xtrap18), _C_LABEL(Xtrap19)
- .quad _C_LABEL(Xtrap1a), _C_LABEL(Xtrap1b)
- .quad _C_LABEL(Xtrap1c), _C_LABEL(Xtrap1d)
- .quad _C_LABEL(Xtrap1e), _C_LABEL(Xtrap1f)
+ .quad Xtrap00, Xtrap01, Xtrap02, Xtrap03
+ .quad Xtrap04, Xtrap05, Xtrap06, Xtrap07
+ .quad Xtrap08, Xtrap09, Xtrap0a, Xtrap0b
+ .quad Xtrap0c, Xtrap0d, Xtrap0e, Xtrap0f
+ .quad Xtrap10, Xtrap11, Xtrap12, Xtrap13
+ .quad Xtrap14, Xtrap15, Xtrap16, Xtrap17
+ .quad Xtrap18, Xtrap19, Xtrap1a, Xtrap1b
+ .quad Xtrap1c, Xtrap1d, Xtrap1e, Xtrap1f
END(Xexceptions)
/*
@@ -448,7 +440,7 @@ GENTRY(alltraps)
.globl recall_trap
recall_trap:
movq %rsp, %rdi
- call _C_LABEL(usertrap)
+ call usertrap
cli
jmp intr_user_exit
END(alltraps)
@@ -473,7 +465,7 @@ GENTRY(alltraps_kern_meltdown)
movl CPUVAR(ILEVEL),%ebx
#endif /* DIAGNOSTIC */
movq %rsp, %rdi
- call _C_LABEL(kerntrap)
+ call kerntrap
2: cli
#ifndef DIAGNOSTIC
INTRFASTEXIT
@@ -486,7 +478,7 @@ GENTRY(alltraps_kern_meltdown)
movl CPUVAR(ILEVEL),%esi
movl %ebx,%edx
xorq %rax,%rax
- call _C_LABEL(printf)
+ call printf
#ifdef DDB
int $3
#endif /* DDB */
@@ -549,7 +541,7 @@ END(Xrecurse_lapic_ipi)
IDTVEC(intr_lapic_ipi)
INTRENTRY(intr_lapic_ipi)
CODEPATCH_START
- movl $0,_C_LABEL(local_apic)+LAPIC_EOI
+ movl $0,local_apic+LAPIC_EOI
CODEPATCH_END(CPTAG_EOI)
movl CPUVAR(ILEVEL),%ebx
cmpl $IPL_IPI,%ebx
@@ -563,8 +555,8 @@ KIDTVEC_FALLTHROUGH(resume_lapic_ipi)
cld
SMAP_CLAC
movq %rbx,IF_PPL(%rsp)
- call _C_LABEL(x86_ipi_handler)
- jmp _C_LABEL(Xdoreti)
+ call x86_ipi_handler
+ jmp Xdoreti
2:
movq $(1 << LIR_IPI),%rax
orq %rax,CPUVAR(IPENDING)
@@ -755,7 +747,7 @@ END(Xrecurse_lapic_ltimer)
IDTVEC(intr_lapic_ltimer)
INTRENTRY(intr_lapic_ltimer)
CODEPATCH_START
- movl $0,_C_LABEL(local_apic)+LAPIC_EOI
+ movl $0,local_apic+LAPIC_EOI
CODEPATCH_END(CPTAG_EOI)
movl CPUVAR(ILEVEL),%ebx
cmpl $IPL_CLOCK,%ebx
@@ -770,8 +762,8 @@ KIDTVEC_FALLTHROUGH(resume_lapic_ltimer)
SMAP_CLAC
movq %rbx,IF_PPL(%rsp)
xorq %rdi,%rdi
- call _C_LABEL(lapic_clockintr)
- jmp _C_LABEL(Xdoreti)
+ call lapic_clockintr
+ jmp Xdoreti
2:
movq $(1 << LIR_TIMER),%rax
orq %rax,CPUVAR(IPENDING)
@@ -789,7 +781,7 @@ KIDTVEC(recurse_xen_upcall)
END(Xrecurse_xen_upcall)
IDTVEC(intr_xen_upcall)
INTRENTRY(intr_xen_upcall)
- call _C_LABEL(xen_intr_ack)
+ call xen_intr_ack
movl CPUVAR(ILEVEL),%ebx
cmpl $IPL_NET,%ebx
jae 2f
@@ -802,8 +794,8 @@ KIDTVEC_FALLTHROUGH(resume_xen_upcall)
cld
SMAP_CLAC
movq %rbx,IF_PPL(%rsp)
- call _C_LABEL(xen_intr)
- jmp _C_LABEL(Xdoreti)
+ call xen_intr
+ jmp Xdoreti
2:
movq $(1 << LIR_XEN),%rax
orq %rax,CPUVAR(IPENDING)
@@ -834,8 +826,8 @@ KIDTVEC_FALLTHROUGH(resume_hyperv_upcall)
cld
SMAP_CLAC
movq %rbx,IF_PPL(%rsp)
- call _C_LABEL(hv_intr)
- jmp _C_LABEL(Xdoreti)
+ call hv_intr
+ jmp Xdoreti
2:
movq $(1 << LIR_HYPERV),%rax
orq %rax,CPUVAR(IPENDING)
@@ -868,7 +860,7 @@ IDTVEC(intr_##name##num) ;\
movq CPUVAR(ISOURCES) + (num) * 8, %r14 ;\
mask(num) /* mask it in hardware */ ;\
early_ack(num) /* and allow other intrs */ ;\
- incl _C_LABEL(uvmexp)+V_INTR /* statistical info */ ;\
+ incl uvmexp+V_INTR /* statistical info */ ;\
testq %r14,%r14 ;\
jz 9f /* stray */ ;\
movl IS_MAXLEVEL(%r14),%ebx ;\
@@ -890,11 +882,11 @@ IDTVEC(intr_##name##num) ;\
movl %r12d,CPUVAR(ILEVEL) ;\
movq %rbx, %rsi ;\
movq %rsp, %rdi ;\
- call _C_LABEL(intr_handler) /* call it */ ;\
+ call intr_handler /* call it */ ;\
orl %eax,%eax /* should it be counted? */ ;\
jz 4f /* no, skip it */ ;\
incq IH_COUNT(%rbx) /* count the intrs */ ;\
- cmpl $0,_C_LABEL(intr_shared_edge) ;\
+ cmpl $0,intr_shared_edge ;\
jne 4f /* if no shared edges ... */ ;\
orl %eax,%eax /* 1 means stop trying */ ;\
jns 5f ;\
@@ -906,7 +898,7 @@ IDTVEC(intr_##name##num) ;\
unmask(num) /* unmask it in hardware */ ;\
late_ack(num) ;\
sti ;\
- jmp _C_LABEL(Xdoreti) /* lower spl and do ASTs */ ;\
+ jmp Xdoreti /* lower spl and do ASTs */ ;\
7: /* current IPL > handler's ih_level */ \
cli ;\
movq $(1 << num),%rax ;\
@@ -914,7 +906,7 @@ IDTVEC(intr_##name##num) ;\
level_mask(num) ;\
late_ack(num) ;\
sti ;\
- jmp _C_LABEL(Xdoreti) /* lower spl and do ASTs */ ;\
+ jmp Xdoreti /* lower spl and do ASTs */ ;\
10: /* currently masked */ \
cli ;\
movq $(1 << num),%rax ;\
@@ -1104,308 +1096,164 @@ INTRSTUB(ioapic_level,63,voidop,ioapic_asm_ack,voidop,ioapic_unmask,ioapic_mask)
.section .rodata
- .globl _C_LABEL(i8259_stubs)
- .type _C_LABEL(i8259_stubs),@object
-_C_LABEL(i8259_stubs):
- .quad _C_LABEL(Xintr_legacy0), _C_LABEL(Xrecurse_legacy0)
- .quad _C_LABEL(Xresume_legacy0)
- .quad _C_LABEL(Xintr_legacy1), _C_LABEL(Xrecurse_legacy1)
- .quad _C_LABEL(Xresume_legacy1)
- .quad _C_LABEL(Xintr_legacy2), _C_LABEL(Xrecurse_legacy2)
- .quad _C_LABEL(Xresume_legacy2)
- .quad _C_LABEL(Xintr_legacy3), _C_LABEL(Xrecurse_legacy3)
- .quad _C_LABEL(Xresume_legacy3)
- .quad _C_LABEL(Xintr_legacy4), _C_LABEL(Xrecurse_legacy4)
- .quad _C_LABEL(Xresume_legacy4)
- .quad _C_LABEL(Xintr_legacy5), _C_LABEL(Xrecurse_legacy5)
- .quad _C_LABEL(Xresume_legacy5)
- .quad _C_LABEL(Xintr_legacy6), _C_LABEL(Xrecurse_legacy6)
- .quad _C_LABEL(Xresume_legacy6)
- .quad _C_LABEL(Xintr_legacy7), _C_LABEL(Xrecurse_legacy7)
- .quad _C_LABEL(Xresume_legacy7)
- .quad _C_LABEL(Xintr_legacy8), _C_LABEL(Xrecurse_legacy8)
- .quad _C_LABEL(Xresume_legacy8)
- .quad _C_LABEL(Xintr_legacy9), _C_LABEL(Xrecurse_legacy9)
- .quad _C_LABEL(Xresume_legacy9)
- .quad _C_LABEL(Xintr_legacy10), _C_LABEL(Xrecurse_legacy10)
- .quad _C_LABEL(Xresume_legacy10)
- .quad _C_LABEL(Xintr_legacy11), _C_LABEL(Xrecurse_legacy11)
- .quad _C_LABEL(Xresume_legacy11)
- .quad _C_LABEL(Xintr_legacy12), _C_LABEL(Xrecurse_legacy12)
- .quad _C_LABEL(Xresume_legacy12)
- .quad _C_LABEL(Xintr_legacy13), _C_LABEL(Xrecurse_legacy13)
- .quad _C_LABEL(Xresume_legacy13)
- .quad _C_LABEL(Xintr_legacy14), _C_LABEL(Xrecurse_legacy14)
- .quad _C_LABEL(Xresume_legacy14)
- .quad _C_LABEL(Xintr_legacy15), _C_LABEL(Xrecurse_legacy15)
- .quad _C_LABEL(Xresume_legacy15)
+ .globl i8259_stubs
+ .type i8259_stubs,@object
+i8259_stubs:
+ .quad Xintr_legacy0, Xrecurse_legacy0, Xresume_legacy0
+ .quad Xintr_legacy1, Xrecurse_legacy1, Xresume_legacy1
+ .quad Xintr_legacy2, Xrecurse_legacy2, Xresume_legacy2
+ .quad Xintr_legacy3, Xrecurse_legacy3, Xresume_legacy3
+ .quad Xintr_legacy4, Xrecurse_legacy4, Xresume_legacy4
+ .quad Xintr_legacy5, Xrecurse_legacy5, Xresume_legacy5
+ .quad Xintr_legacy6, Xrecurse_legacy6, Xresume_legacy6
+ .quad Xintr_legacy7, Xrecurse_legacy7, Xresume_legacy7
+ .quad Xintr_legacy8, Xrecurse_legacy8, Xresume_legacy8
+ .quad Xintr_legacy9, Xrecurse_legacy9, Xresume_legacy9
+ .quad Xintr_legacy10, Xrecurse_legacy10, Xresume_legacy10
+ .quad Xintr_legacy11, Xrecurse_legacy11, Xresume_legacy11
+ .quad Xintr_legacy12, Xrecurse_legacy12, Xresume_legacy12
+ .quad Xintr_legacy13, Xrecurse_legacy13, Xresume_legacy13
+ .quad Xintr_legacy14, Xrecurse_legacy14, Xresume_legacy14
+ .quad Xintr_legacy15, Xrecurse_legacy15, Xresume_legacy15
END(i8259_stubs)
#if NIOAPIC > 0
- .globl _C_LABEL(ioapic_edge_stubs)
- .type _C_LABEL(ioapic_edge_stubs),@object
-_C_LABEL(ioapic_edge_stubs):
- .quad _C_LABEL(Xintr_ioapic_edge0), _C_LABEL(Xrecurse_ioapic_edge0)
- .quad _C_LABEL(Xresume_ioapic_edge0)
- .quad _C_LABEL(Xintr_ioapic_edge1), _C_LABEL(Xrecurse_ioapic_edge1)
- .quad _C_LABEL(Xresume_ioapic_edge1)
- .quad _C_LABEL(Xintr_ioapic_edge2), _C_LABEL(Xrecurse_ioapic_edge2)
- .quad _C_LABEL(Xresume_ioapic_edge2)
- .quad _C_LABEL(Xintr_ioapic_edge3), _C_LABEL(Xrecurse_ioapic_edge3)
- .quad _C_LABEL(Xresume_ioapic_edge3)
- .quad _C_LABEL(Xintr_ioapic_edge4), _C_LABEL(Xrecurse_ioapic_edge4)
- .quad _C_LABEL(Xresume_ioapic_edge4)
- .quad _C_LABEL(Xintr_ioapic_edge5), _C_LABEL(Xrecurse_ioapic_edge5)
- .quad _C_LABEL(Xresume_ioapic_edge5)
- .quad _C_LABEL(Xintr_ioapic_edge6), _C_LABEL(Xrecurse_ioapic_edge6)
- .quad _C_LABEL(Xresume_ioapic_edge6)
- .quad _C_LABEL(Xintr_ioapic_edge7), _C_LABEL(Xrecurse_ioapic_edge7)
- .quad _C_LABEL(Xresume_ioapic_edge7)
- .quad _C_LABEL(Xintr_ioapic_edge8), _C_LABEL(Xrecurse_ioapic_edge8)
- .quad _C_LABEL(Xresume_ioapic_edge8)
- .quad _C_LABEL(Xintr_ioapic_edge9), _C_LABEL(Xrecurse_ioapic_edge9)
- .quad _C_LABEL(Xresume_ioapic_edge9)
- .quad _C_LABEL(Xintr_ioapic_edge10), _C_LABEL(Xrecurse_ioapic_edge10)
- .quad _C_LABEL(Xresume_ioapic_edge10)
- .quad _C_LABEL(Xintr_ioapic_edge11), _C_LABEL(Xrecurse_ioapic_edge11)
- .quad _C_LABEL(Xresume_ioapic_edge11)
- .quad _C_LABEL(Xintr_ioapic_edge12), _C_LABEL(Xrecurse_ioapic_edge12)
- .quad _C_LABEL(Xresume_ioapic_edge12)
- .quad _C_LABEL(Xintr_ioapic_edge13), _C_LABEL(Xrecurse_ioapic_edge13)
- .quad _C_LABEL(Xresume_ioapic_edge13)
- .quad _C_LABEL(Xintr_ioapic_edge14), _C_LABEL(Xrecurse_ioapic_edge14)
- .quad _C_LABEL(Xresume_ioapic_edge14)
- .quad _C_LABEL(Xintr_ioapic_edge15), _C_LABEL(Xrecurse_ioapic_edge15)
- .quad _C_LABEL(Xresume_ioapic_edge15)
- .quad _C_LABEL(Xintr_ioapic_edge16), _C_LABEL(Xrecurse_ioapic_edge16)
- .quad _C_LABEL(Xresume_ioapic_edge16)
- .quad _C_LABEL(Xintr_ioapic_edge17), _C_LABEL(Xrecurse_ioapic_edge17)
- .quad _C_LABEL(Xresume_ioapic_edge17)
- .quad _C_LABEL(Xintr_ioapic_edge18), _C_LABEL(Xrecurse_ioapic_edge18)
- .quad _C_LABEL(Xresume_ioapic_edge18)
- .quad _C_LABEL(Xintr_ioapic_edge19), _C_LABEL(Xrecurse_ioapic_edge19)
- .quad _C_LABEL(Xresume_ioapic_edge19)
- .quad _C_LABEL(Xintr_ioapic_edge20), _C_LABEL(Xrecurse_ioapic_edge20)
- .quad _C_LABEL(Xresume_ioapic_edge20)
- .quad _C_LABEL(Xintr_ioapic_edge21), _C_LABEL(Xrecurse_ioapic_edge21)
- .quad _C_LABEL(Xresume_ioapic_edge21)
- .quad _C_LABEL(Xintr_ioapic_edge22), _C_LABEL(Xrecurse_ioapic_edge22)
- .quad _C_LABEL(Xresume_ioapic_edge22)
- .quad _C_LABEL(Xintr_ioapic_edge23), _C_LABEL(Xrecurse_ioapic_edge23)
- .quad _C_LABEL(Xresume_ioapic_edge23)
- .quad _C_LABEL(Xintr_ioapic_edge24), _C_LABEL(Xrecurse_ioapic_edge24)
- .quad _C_LABEL(Xresume_ioapic_edge24)
- .quad _C_LABEL(Xintr_ioapic_edge25), _C_LABEL(Xrecurse_ioapic_edge25)
- .quad _C_LABEL(Xresume_ioapic_edge25)
- .quad _C_LABEL(Xintr_ioapic_edge26), _C_LABEL(Xrecurse_ioapic_edge26)
- .quad _C_LABEL(Xresume_ioapic_edge26)
- .quad _C_LABEL(Xintr_ioapic_edge27), _C_LABEL(Xrecurse_ioapic_edge27)
- .quad _C_LABEL(Xresume_ioapic_edge27)
- .quad _C_LABEL(Xintr_ioapic_edge28), _C_LABEL(Xrecurse_ioapic_edge28)
- .quad _C_LABEL(Xresume_ioapic_edge28)
- .quad _C_LABEL(Xintr_ioapic_edge29), _C_LABEL(Xrecurse_ioapic_edge29)
- .quad _C_LABEL(Xresume_ioapic_edge29)
- .quad _C_LABEL(Xintr_ioapic_edge30), _C_LABEL(Xrecurse_ioapic_edge30)
- .quad _C_LABEL(Xresume_ioapic_edge30)
- .quad _C_LABEL(Xintr_ioapic_edge31), _C_LABEL(Xrecurse_ioapic_edge31)
- .quad _C_LABEL(Xresume_ioapic_edge31)
- .quad _C_LABEL(Xintr_ioapic_edge32), _C_LABEL(Xrecurse_ioapic_edge32)
- .quad _C_LABEL(Xresume_ioapic_edge32)
- .quad _C_LABEL(Xintr_ioapic_edge33), _C_LABEL(Xrecurse_ioapic_edge33)
- .quad _C_LABEL(Xresume_ioapic_edge33)
- .quad _C_LABEL(Xintr_ioapic_edge34), _C_LABEL(Xrecurse_ioapic_edge34)
- .quad _C_LABEL(Xresume_ioapic_edge34)
- .quad _C_LABEL(Xintr_ioapic_edge35), _C_LABEL(Xrecurse_ioapic_edge35)
- .quad _C_LABEL(Xresume_ioapic_edge35)
- .quad _C_LABEL(Xintr_ioapic_edge36), _C_LABEL(Xrecurse_ioapic_edge36)
- .quad _C_LABEL(Xresume_ioapic_edge36)
- .quad _C_LABEL(Xintr_ioapic_edge37), _C_LABEL(Xrecurse_ioapic_edge37)
- .quad _C_LABEL(Xresume_ioapic_edge37)
- .quad _C_LABEL(Xintr_ioapic_edge38), _C_LABEL(Xrecurse_ioapic_edge38)
- .quad _C_LABEL(Xresume_ioapic_edge38)
- .quad _C_LABEL(Xintr_ioapic_edge39), _C_LABEL(Xrecurse_ioapic_edge39)
- .quad _C_LABEL(Xresume_ioapic_edge39)
- .quad _C_LABEL(Xintr_ioapic_edge40), _C_LABEL(Xrecurse_ioapic_edge40)
- .quad _C_LABEL(Xresume_ioapic_edge40)
- .quad _C_LABEL(Xintr_ioapic_edge41), _C_LABEL(Xrecurse_ioapic_edge41)
- .quad _C_LABEL(Xresume_ioapic_edge41)
- .quad _C_LABEL(Xintr_ioapic_edge42), _C_LABEL(Xrecurse_ioapic_edge42)
- .quad _C_LABEL(Xresume_ioapic_edge42)
- .quad _C_LABEL(Xintr_ioapic_edge43), _C_LABEL(Xrecurse_ioapic_edge43)
- .quad _C_LABEL(Xresume_ioapic_edge43)
- .quad _C_LABEL(Xintr_ioapic_edge44), _C_LABEL(Xrecurse_ioapic_edge44)
- .quad _C_LABEL(Xresume_ioapic_edge44)
- .quad _C_LABEL(Xintr_ioapic_edge45), _C_LABEL(Xrecurse_ioapic_edge45)
- .quad _C_LABEL(Xresume_ioapic_edge45)
- .quad _C_LABEL(Xintr_ioapic_edge46), _C_LABEL(Xrecurse_ioapic_edge46)
- .quad _C_LABEL(Xresume_ioapic_edge46)
- .quad _C_LABEL(Xintr_ioapic_edge47), _C_LABEL(Xrecurse_ioapic_edge47)
- .quad _C_LABEL(Xresume_ioapic_edge47)
- .quad _C_LABEL(Xintr_ioapic_edge48), _C_LABEL(Xrecurse_ioapic_edge48)
- .quad _C_LABEL(Xresume_ioapic_edge48)
- .quad _C_LABEL(Xintr_ioapic_edge49), _C_LABEL(Xrecurse_ioapic_edge49)
- .quad _C_LABEL(Xresume_ioapic_edge49)
- .quad _C_LABEL(Xintr_ioapic_edge50), _C_LABEL(Xrecurse_ioapic_edge50)
- .quad _C_LABEL(Xresume_ioapic_edge50)
- .quad _C_LABEL(Xintr_ioapic_edge51), _C_LABEL(Xrecurse_ioapic_edge51)
- .quad _C_LABEL(Xresume_ioapic_edge51)
- .quad _C_LABEL(Xintr_ioapic_edge52), _C_LABEL(Xrecurse_ioapic_edge52)
- .quad _C_LABEL(Xresume_ioapic_edge52)
- .quad _C_LABEL(Xintr_ioapic_edge53), _C_LABEL(Xrecurse_ioapic_edge53)
- .quad _C_LABEL(Xresume_ioapic_edge53)
- .quad _C_LABEL(Xintr_ioapic_edge54), _C_LABEL(Xrecurse_ioapic_edge54)
- .quad _C_LABEL(Xresume_ioapic_edge54)
- .quad _C_LABEL(Xintr_ioapic_edge55), _C_LABEL(Xrecurse_ioapic_edge55)
- .quad _C_LABEL(Xresume_ioapic_edge55)
- .quad _C_LABEL(Xintr_ioapic_edge56), _C_LABEL(Xrecurse_ioapic_edge56)
- .quad _C_LABEL(Xresume_ioapic_edge56)
- .quad _C_LABEL(Xintr_ioapic_edge57), _C_LABEL(Xrecurse_ioapic_edge57)
- .quad _C_LABEL(Xresume_ioapic_edge57)
- .quad _C_LABEL(Xintr_ioapic_edge58), _C_LABEL(Xrecurse_ioapic_edge58)
- .quad _C_LABEL(Xresume_ioapic_edge58)
- .quad _C_LABEL(Xintr_ioapic_edge59), _C_LABEL(Xrecurse_ioapic_edge59)
- .quad _C_LABEL(Xresume_ioapic_edge59)
- .quad _C_LABEL(Xintr_ioapic_edge60), _C_LABEL(Xrecurse_ioapic_edge60)
- .quad _C_LABEL(Xresume_ioapic_edge60)
- .quad _C_LABEL(Xintr_ioapic_edge61), _C_LABEL(Xrecurse_ioapic_edge61)
- .quad _C_LABEL(Xresume_ioapic_edge61)
- .quad _C_LABEL(Xintr_ioapic_edge62), _C_LABEL(Xrecurse_ioapic_edge62)
- .quad _C_LABEL(Xresume_ioapic_edge62)
- .quad _C_LABEL(Xintr_ioapic_edge63), _C_LABEL(Xrecurse_ioapic_edge63)
- .quad _C_LABEL(Xresume_ioapic_edge63)
+ .globl ioapic_edge_stubs
+ .type ioapic_edge_stubs,@object
+ioapic_edge_stubs:
+ .quad Xintr_ioapic_edge0, Xrecurse_ioapic_edge0, Xresume_ioapic_edge0
+ .quad Xintr_ioapic_edge1, Xrecurse_ioapic_edge1, Xresume_ioapic_edge1
+ .quad Xintr_ioapic_edge2, Xrecurse_ioapic_edge2, Xresume_ioapic_edge2
+ .quad Xintr_ioapic_edge3, Xrecurse_ioapic_edge3, Xresume_ioapic_edge3
+ .quad Xintr_ioapic_edge4, Xrecurse_ioapic_edge4, Xresume_ioapic_edge4
+ .quad Xintr_ioapic_edge5, Xrecurse_ioapic_edge5, Xresume_ioapic_edge5
+ .quad Xintr_ioapic_edge6, Xrecurse_ioapic_edge6, Xresume_ioapic_edge6
+ .quad Xintr_ioapic_edge7, Xrecurse_ioapic_edge7, Xresume_ioapic_edge7
+ .quad Xintr_ioapic_edge8, Xrecurse_ioapic_edge8, Xresume_ioapic_edge8
+ .quad Xintr_ioapic_edge9, Xrecurse_ioapic_edge9, Xresume_ioapic_edge9
+ .quad Xintr_ioapic_edge10, Xrecurse_ioapic_edge10, Xresume_ioapic_edge10
+ .quad Xintr_ioapic_edge11, Xrecurse_ioapic_edge11, Xresume_ioapic_edge11
+ .quad Xintr_ioapic_edge12, Xrecurse_ioapic_edge12, Xresume_ioapic_edge12
+ .quad Xintr_ioapic_edge13, Xrecurse_ioapic_edge13, Xresume_ioapic_edge13
+ .quad Xintr_ioapic_edge14, Xrecurse_ioapic_edge14, Xresume_ioapic_edge14
+ .quad Xintr_ioapic_edge15, Xrecurse_ioapic_edge15, Xresume_ioapic_edge15
+ .quad Xintr_ioapic_edge16, Xrecurse_ioapic_edge16, Xresume_ioapic_edge16
+ .quad Xintr_ioapic_edge17, Xrecurse_ioapic_edge17, Xresume_ioapic_edge17
+ .quad Xintr_ioapic_edge18, Xrecurse_ioapic_edge18, Xresume_ioapic_edge18
+ .quad Xintr_ioapic_edge19, Xrecurse_ioapic_edge19, Xresume_ioapic_edge19
+ .quad Xintr_ioapic_edge20, Xrecurse_ioapic_edge20, Xresume_ioapic_edge20
+ .quad Xintr_ioapic_edge21, Xrecurse_ioapic_edge21, Xresume_ioapic_edge21
+ .quad Xintr_ioapic_edge22, Xrecurse_ioapic_edge22, Xresume_ioapic_edge22
+ .quad Xintr_ioapic_edge23, Xrecurse_ioapic_edge23, Xresume_ioapic_edge23
+ .quad Xintr_ioapic_edge24, Xrecurse_ioapic_edge24, Xresume_ioapic_edge24
+ .quad Xintr_ioapic_edge25, Xrecurse_ioapic_edge25, Xresume_ioapic_edge25
+ .quad Xintr_ioapic_edge26, Xrecurse_ioapic_edge26, Xresume_ioapic_edge26
+ .quad Xintr_ioapic_edge27, Xrecurse_ioapic_edge27, Xresume_ioapic_edge27
+ .quad Xintr_ioapic_edge28, Xrecurse_ioapic_edge28, Xresume_ioapic_edge28
+ .quad Xintr_ioapic_edge29, Xrecurse_ioapic_edge29, Xresume_ioapic_edge29
+ .quad Xintr_ioapic_edge30, Xrecurse_ioapic_edge30, Xresume_ioapic_edge30
+ .quad Xintr_ioapic_edge31, Xrecurse_ioapic_edge31, Xresume_ioapic_edge31
+ .quad Xintr_ioapic_edge32, Xrecurse_ioapic_edge32, Xresume_ioapic_edge32
+ .quad Xintr_ioapic_edge33, Xrecurse_ioapic_edge33, Xresume_ioapic_edge33
+ .quad Xintr_ioapic_edge34, Xrecurse_ioapic_edge34, Xresume_ioapic_edge34
+ .quad Xintr_ioapic_edge35, Xrecurse_ioapic_edge35, Xresume_ioapic_edge35
+ .quad Xintr_ioapic_edge36, Xrecurse_ioapic_edge36, Xresume_ioapic_edge36
+ .quad Xintr_ioapic_edge37, Xrecurse_ioapic_edge37, Xresume_ioapic_edge37
+ .quad Xintr_ioapic_edge38, Xrecurse_ioapic_edge38, Xresume_ioapic_edge38
+ .quad Xintr_ioapic_edge39, Xrecurse_ioapic_edge39, Xresume_ioapic_edge39
+ .quad Xintr_ioapic_edge40, Xrecurse_ioapic_edge40, Xresume_ioapic_edge40
+ .quad Xintr_ioapic_edge41, Xrecurse_ioapic_edge41, Xresume_ioapic_edge41
+ .quad Xintr_ioapic_edge42, Xrecurse_ioapic_edge42, Xresume_ioapic_edge42
+ .quad Xintr_ioapic_edge43, Xrecurse_ioapic_edge43, Xresume_ioapic_edge43
+ .quad Xintr_ioapic_edge44, Xrecurse_ioapic_edge44, Xresume_ioapic_edge44
+ .quad Xintr_ioapic_edge45, Xrecurse_ioapic_edge45, Xresume_ioapic_edge45
+ .quad Xintr_ioapic_edge46, Xrecurse_ioapic_edge46, Xresume_ioapic_edge46
+ .quad Xintr_ioapic_edge47, Xrecurse_ioapic_edge47, Xresume_ioapic_edge47
+ .quad Xintr_ioapic_edge48, Xrecurse_ioapic_edge48, Xresume_ioapic_edge48
+ .quad Xintr_ioapic_edge49, Xrecurse_ioapic_edge49, Xresume_ioapic_edge49
+ .quad Xintr_ioapic_edge50, Xrecurse_ioapic_edge50, Xresume_ioapic_edge50
+ .quad Xintr_ioapic_edge51, Xrecurse_ioapic_edge51, Xresume_ioapic_edge51
+ .quad Xintr_ioapic_edge52, Xrecurse_ioapic_edge52, Xresume_ioapic_edge52
+ .quad Xintr_ioapic_edge53, Xrecurse_ioapic_edge53, Xresume_ioapic_edge53
+ .quad Xintr_ioapic_edge54, Xrecurse_ioapic_edge54, Xresume_ioapic_edge54
+ .quad Xintr_ioapic_edge55, Xrecurse_ioapic_edge55, Xresume_ioapic_edge55
+ .quad Xintr_ioapic_edge56, Xrecurse_ioapic_edge56, Xresume_ioapic_edge56
+ .quad Xintr_ioapic_edge57, Xrecurse_ioapic_edge57, Xresume_ioapic_edge57
+ .quad Xintr_ioapic_edge58, Xrecurse_ioapic_edge58, Xresume_ioapic_edge58
+ .quad Xintr_ioapic_edge59, Xrecurse_ioapic_edge59, Xresume_ioapic_edge59
+ .quad Xintr_ioapic_edge60, Xrecurse_ioapic_edge60, Xresume_ioapic_edge60
+ .quad Xintr_ioapic_edge61, Xrecurse_ioapic_edge61, Xresume_ioapic_edge61
+ .quad Xintr_ioapic_edge62, Xrecurse_ioapic_edge62, Xresume_ioapic_edge62
+ .quad Xintr_ioapic_edge63, Xrecurse_ioapic_edge63, Xresume_ioapic_edge63
END(ioapic_edge_stubs)
- .globl _C_LABEL(ioapic_level_stubs)
- .type _C_LABEL(ioapic_level_stubs),@object
-_C_LABEL(ioapic_level_stubs):
- .quad _C_LABEL(Xintr_ioapic_level0), _C_LABEL(Xrecurse_ioapic_level0)
- .quad _C_LABEL(Xresume_ioapic_level0)
- .quad _C_LABEL(Xintr_ioapic_level1), _C_LABEL(Xrecurse_ioapic_level1)
- .quad _C_LABEL(Xresume_ioapic_level1)
- .quad _C_LABEL(Xintr_ioapic_level2), _C_LABEL(Xrecurse_ioapic_level2)
- .quad _C_LABEL(Xresume_ioapic_level2)
- .quad _C_LABEL(Xintr_ioapic_level3), _C_LABEL(Xrecurse_ioapic_level3)
- .quad _C_LABEL(Xresume_ioapic_level3)
- .quad _C_LABEL(Xintr_ioapic_level4), _C_LABEL(Xrecurse_ioapic_level4)
- .quad _C_LABEL(Xresume_ioapic_level4)
- .quad _C_LABEL(Xintr_ioapic_level5), _C_LABEL(Xrecurse_ioapic_level5)
- .quad _C_LABEL(Xresume_ioapic_level5)
- .quad _C_LABEL(Xintr_ioapic_level6), _C_LABEL(Xrecurse_ioapic_level6)
- .quad _C_LABEL(Xresume_ioapic_level6)
- .quad _C_LABEL(Xintr_ioapic_level7), _C_LABEL(Xrecurse_ioapic_level7)
- .quad _C_LABEL(Xresume_ioapic_level7)
- .quad _C_LABEL(Xintr_ioapic_level8), _C_LABEL(Xrecurse_ioapic_level8)
- .quad _C_LABEL(Xresume_ioapic_level8)
- .quad _C_LABEL(Xintr_ioapic_level9), _C_LABEL(Xrecurse_ioapic_level9)
- .quad _C_LABEL(Xresume_ioapic_level9)
- .quad _C_LABEL(Xintr_ioapic_level10), _C_LABEL(Xrecurse_ioapic_level10)
- .quad _C_LABEL(Xresume_ioapic_level10)
- .quad _C_LABEL(Xintr_ioapic_level11), _C_LABEL(Xrecurse_ioapic_level11)
- .quad _C_LABEL(Xresume_ioapic_level11)
- .quad _C_LABEL(Xintr_ioapic_level12), _C_LABEL(Xrecurse_ioapic_level12)
- .quad _C_LABEL(Xresume_ioapic_level12)
- .quad _C_LABEL(Xintr_ioapic_level13), _C_LABEL(Xrecurse_ioapic_level13)
- .quad _C_LABEL(Xresume_ioapic_level13)
- .quad _C_LABEL(Xintr_ioapic_level14), _C_LABEL(Xrecurse_ioapic_level14)
- .quad _C_LABEL(Xresume_ioapic_level14)
- .quad _C_LABEL(Xintr_ioapic_level15), _C_LABEL(Xrecurse_ioapic_level15)
- .quad _C_LABEL(Xresume_ioapic_level15)
- .quad _C_LABEL(Xintr_ioapic_level16), _C_LABEL(Xrecurse_ioapic_level16)
- .quad _C_LABEL(Xresume_ioapic_level16)
- .quad _C_LABEL(Xintr_ioapic_level17), _C_LABEL(Xrecurse_ioapic_level17)
- .quad _C_LABEL(Xresume_ioapic_level17)
- .quad _C_LABEL(Xintr_ioapic_level18), _C_LABEL(Xrecurse_ioapic_level18)
- .quad _C_LABEL(Xresume_ioapic_level18)
- .quad _C_LABEL(Xintr_ioapic_level19), _C_LABEL(Xrecurse_ioapic_level19)
- .quad _C_LABEL(Xresume_ioapic_level19)
- .quad _C_LABEL(Xintr_ioapic_level20), _C_LABEL(Xrecurse_ioapic_level20)
- .quad _C_LABEL(Xresume_ioapic_level20)
- .quad _C_LABEL(Xintr_ioapic_level21), _C_LABEL(Xrecurse_ioapic_level21)
- .quad _C_LABEL(Xresume_ioapic_level21)
- .quad _C_LABEL(Xintr_ioapic_level22), _C_LABEL(Xrecurse_ioapic_level22)
- .quad _C_LABEL(Xresume_ioapic_level22)
- .quad _C_LABEL(Xintr_ioapic_level23), _C_LABEL(Xrecurse_ioapic_level23)
- .quad _C_LABEL(Xresume_ioapic_level23)
- .quad _C_LABEL(Xintr_ioapic_level24), _C_LABEL(Xrecurse_ioapic_level24)
- .quad _C_LABEL(Xresume_ioapic_level24)
- .quad _C_LABEL(Xintr_ioapic_level25), _C_LABEL(Xrecurse_ioapic_level25)
- .quad _C_LABEL(Xresume_ioapic_level25)
- .quad _C_LABEL(Xintr_ioapic_level26), _C_LABEL(Xrecurse_ioapic_level26)
- .quad _C_LABEL(Xresume_ioapic_level26)
- .quad _C_LABEL(Xintr_ioapic_level27), _C_LABEL(Xrecurse_ioapic_level27)
- .quad _C_LABEL(Xresume_ioapic_level27)
- .quad _C_LABEL(Xintr_ioapic_level28), _C_LABEL(Xrecurse_ioapic_level28)
- .quad _C_LABEL(Xresume_ioapic_level28)
- .quad _C_LABEL(Xintr_ioapic_level29), _C_LABEL(Xrecurse_ioapic_level29)
- .quad _C_LABEL(Xresume_ioapic_level29)
- .quad _C_LABEL(Xintr_ioapic_level30), _C_LABEL(Xrecurse_ioapic_level30)
- .quad _C_LABEL(Xresume_ioapic_level30)
- .quad _C_LABEL(Xintr_ioapic_level31), _C_LABEL(Xrecurse_ioapic_level31)
- .quad _C_LABEL(Xresume_ioapic_level31)
- .quad _C_LABEL(Xintr_ioapic_level32), _C_LABEL(Xrecurse_ioapic_level32)
- .quad _C_LABEL(Xresume_ioapic_level32)
- .quad _C_LABEL(Xintr_ioapic_level33), _C_LABEL(Xrecurse_ioapic_level33)
- .quad _C_LABEL(Xresume_ioapic_level33)
- .quad _C_LABEL(Xintr_ioapic_level34), _C_LABEL(Xrecurse_ioapic_level34)
- .quad _C_LABEL(Xresume_ioapic_level34)
- .quad _C_LABEL(Xintr_ioapic_level35), _C_LABEL(Xrecurse_ioapic_level35)
- .quad _C_LABEL(Xresume_ioapic_level35)
- .quad _C_LABEL(Xintr_ioapic_level36), _C_LABEL(Xrecurse_ioapic_level36)
- .quad _C_LABEL(Xresume_ioapic_level36)
- .quad _C_LABEL(Xintr_ioapic_level37), _C_LABEL(Xrecurse_ioapic_level37)
- .quad _C_LABEL(Xresume_ioapic_level37)
- .quad _C_LABEL(Xintr_ioapic_level38), _C_LABEL(Xrecurse_ioapic_level38)
- .quad _C_LABEL(Xresume_ioapic_level38)
- .quad _C_LABEL(Xintr_ioapic_level39), _C_LABEL(Xrecurse_ioapic_level39)
- .quad _C_LABEL(Xresume_ioapic_level39)
- .quad _C_LABEL(Xintr_ioapic_level40), _C_LABEL(Xrecurse_ioapic_level40)
- .quad _C_LABEL(Xresume_ioapic_level40)
- .quad _C_LABEL(Xintr_ioapic_level41), _C_LABEL(Xrecurse_ioapic_level41)
- .quad _C_LABEL(Xresume_ioapic_level41)
- .quad _C_LABEL(Xintr_ioapic_level42), _C_LABEL(Xrecurse_ioapic_level42)
- .quad _C_LABEL(Xresume_ioapic_level42)
- .quad _C_LABEL(Xintr_ioapic_level43), _C_LABEL(Xrecurse_ioapic_level43)
- .quad _C_LABEL(Xresume_ioapic_level43)
- .quad _C_LABEL(Xintr_ioapic_level44), _C_LABEL(Xrecurse_ioapic_level44)
- .quad _C_LABEL(Xresume_ioapic_level44)
- .quad _C_LABEL(Xintr_ioapic_level45), _C_LABEL(Xrecurse_ioapic_level45)
- .quad _C_LABEL(Xresume_ioapic_level45)
- .quad _C_LABEL(Xintr_ioapic_level46), _C_LABEL(Xrecurse_ioapic_level46)
- .quad _C_LABEL(Xresume_ioapic_level46)
- .quad _C_LABEL(Xintr_ioapic_level47), _C_LABEL(Xrecurse_ioapic_level47)
- .quad _C_LABEL(Xresume_ioapic_level47)
- .quad _C_LABEL(Xintr_ioapic_level48), _C_LABEL(Xrecurse_ioapic_level48)
- .quad _C_LABEL(Xresume_ioapic_level48)
- .quad _C_LABEL(Xintr_ioapic_level49), _C_LABEL(Xrecurse_ioapic_level49)
- .quad _C_LABEL(Xresume_ioapic_level49)
- .quad _C_LABEL(Xintr_ioapic_level50), _C_LABEL(Xrecurse_ioapic_level50)
- .quad _C_LABEL(Xresume_ioapic_level50)
- .quad _C_LABEL(Xintr_ioapic_level51), _C_LABEL(Xrecurse_ioapic_level51)
- .quad _C_LABEL(Xresume_ioapic_level51)
- .quad _C_LABEL(Xintr_ioapic_level52), _C_LABEL(Xrecurse_ioapic_level52)
- .quad _C_LABEL(Xresume_ioapic_level52)
- .quad _C_LABEL(Xintr_ioapic_level53), _C_LABEL(Xrecurse_ioapic_level53)
- .quad _C_LABEL(Xresume_ioapic_level53)
- .quad _C_LABEL(Xintr_ioapic_level54), _C_LABEL(Xrecurse_ioapic_level54)
- .quad _C_LABEL(Xresume_ioapic_level54)
- .quad _C_LABEL(Xintr_ioapic_level55), _C_LABEL(Xrecurse_ioapic_level55)
- .quad _C_LABEL(Xresume_ioapic_level55)
- .quad _C_LABEL(Xintr_ioapic_level56), _C_LABEL(Xrecurse_ioapic_level56)
- .quad _C_LABEL(Xresume_ioapic_level56)
- .quad _C_LABEL(Xintr_ioapic_level57), _C_LABEL(Xrecurse_ioapic_level57)
- .quad _C_LABEL(Xresume_ioapic_level57)
- .quad _C_LABEL(Xintr_ioapic_level58), _C_LABEL(Xrecurse_ioapic_level58)
- .quad _C_LABEL(Xresume_ioapic_level58)
- .quad _C_LABEL(Xintr_ioapic_level59), _C_LABEL(Xrecurse_ioapic_level59)
- .quad _C_LABEL(Xresume_ioapic_level59)
- .quad _C_LABEL(Xintr_ioapic_level60), _C_LABEL(Xrecurse_ioapic_level60)
- .quad _C_LABEL(Xresume_ioapic_level60)
- .quad _C_LABEL(Xintr_ioapic_level61), _C_LABEL(Xrecurse_ioapic_level61)
- .quad _C_LABEL(Xresume_ioapic_level61)
- .quad _C_LABEL(Xintr_ioapic_level62), _C_LABEL(Xrecurse_ioapic_level62)
- .quad _C_LABEL(Xresume_ioapic_level62)
- .quad _C_LABEL(Xintr_ioapic_level63), _C_LABEL(Xrecurse_ioapic_level63)
- .quad _C_LABEL(Xresume_ioapic_level63)
+ .globl ioapic_level_stubs
+ .type ioapic_level_stubs,@object
+ioapic_level_stubs:
+ .quad Xintr_ioapic_level0, Xrecurse_ioapic_level0, Xresume_ioapic_level0
+ .quad Xintr_ioapic_level1, Xrecurse_ioapic_level1, Xresume_ioapic_level1
+ .quad Xintr_ioapic_level2, Xrecurse_ioapic_level2, Xresume_ioapic_level2
+ .quad Xintr_ioapic_level3, Xrecurse_ioapic_level3, Xresume_ioapic_level3
+ .quad Xintr_ioapic_level4, Xrecurse_ioapic_level4, Xresume_ioapic_level4
+ .quad Xintr_ioapic_level5, Xrecurse_ioapic_level5, Xresume_ioapic_level5
+ .quad Xintr_ioapic_level6, Xrecurse_ioapic_level6, Xresume_ioapic_level6
+ .quad Xintr_ioapic_level7, Xrecurse_ioapic_level7, Xresume_ioapic_level7
+ .quad Xintr_ioapic_level8, Xrecurse_ioapic_level8, Xresume_ioapic_level8
+ .quad Xintr_ioapic_level9, Xrecurse_ioapic_level9, Xresume_ioapic_level9
+ .quad Xintr_ioapic_level10, Xrecurse_ioapic_level10, Xresume_ioapic_level10
+ .quad Xintr_ioapic_level11, Xrecurse_ioapic_level11, Xresume_ioapic_level11
+ .quad Xintr_ioapic_level12, Xrecurse_ioapic_level12, Xresume_ioapic_level12
+ .quad Xintr_ioapic_level13, Xrecurse_ioapic_level13, Xresume_ioapic_level13
+ .quad Xintr_ioapic_level14, Xrecurse_ioapic_level14, Xresume_ioapic_level14
+ .quad Xintr_ioapic_level15, Xrecurse_ioapic_level15, Xresume_ioapic_level15
+ .quad Xintr_ioapic_level16, Xrecurse_ioapic_level16, Xresume_ioapic_level16
+ .quad Xintr_ioapic_level17, Xrecurse_ioapic_level17, Xresume_ioapic_level17
+ .quad Xintr_ioapic_level18, Xrecurse_ioapic_level18, Xresume_ioapic_level18
+ .quad Xintr_ioapic_level19, Xrecurse_ioapic_level19, Xresume_ioapic_level19
+ .quad Xintr_ioapic_level20, Xrecurse_ioapic_level20, Xresume_ioapic_level20
+ .quad Xintr_ioapic_level21, Xrecurse_ioapic_level21, Xresume_ioapic_level21
+ .quad Xintr_ioapic_level22, Xrecurse_ioapic_level22, Xresume_ioapic_level22
+ .quad Xintr_ioapic_level23, Xrecurse_ioapic_level23, Xresume_ioapic_level23
+ .quad Xintr_ioapic_level24, Xrecurse_ioapic_level24, Xresume_ioapic_level24
+ .quad Xintr_ioapic_level25, Xrecurse_ioapic_level25, Xresume_ioapic_level25
+ .quad Xintr_ioapic_level26, Xrecurse_ioapic_level26, Xresume_ioapic_level26
+ .quad Xintr_ioapic_level27, Xrecurse_ioapic_level27, Xresume_ioapic_level27
+ .quad Xintr_ioapic_level28, Xrecurse_ioapic_level28, Xresume_ioapic_level28
+ .quad Xintr_ioapic_level29, Xrecurse_ioapic_level29, Xresume_ioapic_level29
+ .quad Xintr_ioapic_level30, Xrecurse_ioapic_level30, Xresume_ioapic_level30
+ .quad Xintr_ioapic_level31, Xrecurse_ioapic_level31, Xresume_ioapic_level31
+ .quad Xintr_ioapic_level32, Xrecurse_ioapic_level32, Xresume_ioapic_level32
+ .quad Xintr_ioapic_level33, Xrecurse_ioapic_level33, Xresume_ioapic_level33
+ .quad Xintr_ioapic_level34, Xrecurse_ioapic_level34, Xresume_ioapic_level34
+ .quad Xintr_ioapic_level35, Xrecurse_ioapic_level35, Xresume_ioapic_level35
+ .quad Xintr_ioapic_level36, Xrecurse_ioapic_level36, Xresume_ioapic_level36
+ .quad Xintr_ioapic_level37, Xrecurse_ioapic_level37, Xresume_ioapic_level37
+ .quad Xintr_ioapic_level38, Xrecurse_ioapic_level38, Xresume_ioapic_level38
+ .quad Xintr_ioapic_level39, Xrecurse_ioapic_level39, Xresume_ioapic_level39
+ .quad Xintr_ioapic_level40, Xrecurse_ioapic_level40, Xresume_ioapic_level40
+ .quad Xintr_ioapic_level41, Xrecurse_ioapic_level41, Xresume_ioapic_level41
+ .quad Xintr_ioapic_level42, Xrecurse_ioapic_level42, Xresume_ioapic_level42
+ .quad Xintr_ioapic_level43, Xrecurse_ioapic_level43, Xresume_ioapic_level43
+ .quad Xintr_ioapic_level44, Xrecurse_ioapic_level44, Xresume_ioapic_level44
+ .quad Xintr_ioapic_level45, Xrecurse_ioapic_level45, Xresume_ioapic_level45
+ .quad Xintr_ioapic_level46, Xrecurse_ioapic_level46, Xresume_ioapic_level46
+ .quad Xintr_ioapic_level47, Xrecurse_ioapic_level47, Xresume_ioapic_level47
+ .quad Xintr_ioapic_level48, Xrecurse_ioapic_level48, Xresume_ioapic_level48
+ .quad Xintr_ioapic_level49, Xrecurse_ioapic_level49, Xresume_ioapic_level49
+ .quad Xintr_ioapic_level50, Xrecurse_ioapic_level50, Xresume_ioapic_level50
+ .quad Xintr_ioapic_level51, Xrecurse_ioapic_level51, Xresume_ioapic_level51
+ .quad Xintr_ioapic_level52, Xrecurse_ioapic_level52, Xresume_ioapic_level52
+ .quad Xintr_ioapic_level53, Xrecurse_ioapic_level53, Xresume_ioapic_level53
+ .quad Xintr_ioapic_level54, Xrecurse_ioapic_level54, Xresume_ioapic_level54
+ .quad Xintr_ioapic_level55, Xrecurse_ioapic_level55, Xresume_ioapic_level55
+ .quad Xintr_ioapic_level56, Xrecurse_ioapic_level56, Xresume_ioapic_level56
+ .quad Xintr_ioapic_level57, Xrecurse_ioapic_level57, Xresume_ioapic_level57
+ .quad Xintr_ioapic_level58, Xrecurse_ioapic_level58, Xresume_ioapic_level58
+ .quad Xintr_ioapic_level59, Xrecurse_ioapic_level59, Xresume_ioapic_level59
+ .quad Xintr_ioapic_level60, Xrecurse_ioapic_level60, Xresume_ioapic_level60
+ .quad Xintr_ioapic_level61, Xrecurse_ioapic_level61, Xresume_ioapic_level61
+ .quad Xintr_ioapic_level62, Xrecurse_ioapic_level62, Xresume_ioapic_level62
+ .quad Xintr_ioapic_level63, Xrecurse_ioapic_level63, Xresume_ioapic_level63
END(ioapic_level_stubs)
#endif
@@ -1421,7 +1269,7 @@ KIDTVEC(softtty)
sti
incl CPUVAR(IDEPTH)
movl $X86_SOFTINTR_SOFTTTY,%edi
- call _C_LABEL(softintr_dispatch)
+ call softintr_dispatch
decl CPUVAR(IDEPTH)
jmp retpoline_r13
END(Xsofttty)
@@ -1431,7 +1279,7 @@ KIDTVEC(softnet)
sti
incl CPUVAR(IDEPTH)
movl $X86_SOFTINTR_SOFTNET,%edi
- call _C_LABEL(softintr_dispatch)
+ call softintr_dispatch
decl CPUVAR(IDEPTH)
jmp retpoline_r13
END(Xsoftnet)
@@ -1441,7 +1289,7 @@ KIDTVEC(softclock)
sti
incl CPUVAR(IDEPTH)
movl $X86_SOFTINTR_SOFTCLOCK,%edi
- call _C_LABEL(softintr_dispatch)
+ call softintr_dispatch
decl CPUVAR(IDEPTH)
jmp retpoline_r13
END(Xsoftclock)
diff --git a/sys/arch/amd64/amd64/vmm_support.S b/sys/arch/amd64/amd64/vmm_support.S
index b3c9e5d6740..3abaadd7207 100644
--- a/sys/arch/amd64/amd64/vmm_support.S
+++ b/sys/arch/amd64/amd64/vmm_support.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: vmm_support.S,v 1.20 2022/04/14 20:24:15 bluhm Exp $ */
+/* $OpenBSD: vmm_support.S,v 1.21 2022/12/01 00:26:15 guenther Exp $ */
/*
* Copyright (c) 2014 Mike Larkin <mlarkin@openbsd.org>
*
@@ -30,23 +30,23 @@
#define VMX_FAIL_LAUNCH_INVALID_VMCS 2
#define VMX_FAIL_LAUNCH_VALID_VMCS 3
- .global _C_LABEL(vmxon)
- .global _C_LABEL(vmxoff)
- .global _C_LABEL(vmclear)
- .global _C_LABEL(vmptrld)
- .global _C_LABEL(vmptrst)
- .global _C_LABEL(vmwrite)
- .global _C_LABEL(vmread)
- .global _C_LABEL(invvpid)
- .global _C_LABEL(invept)
- .global _C_LABEL(vmx_enter_guest)
- .global _C_LABEL(vmm_dispatch_intr)
- .global _C_LABEL(svm_enter_guest)
+ .global vmxon
+ .global vmxoff
+ .global vmclear
+ .global vmptrld
+ .global vmptrst
+ .global vmwrite
+ .global vmread
+ .global invvpid
+ .global invept
+ .global vmx_enter_guest
+ .global vmm_dispatch_intr
+ .global svm_enter_guest
.text
.code64
.align 16,0xcc
-_C_LABEL(vmm_dispatch_intr):
+vmm_dispatch_intr:
movq %rsp, %r11 /* r11 = temporary register */
andq $0xFFFFFFFFFFFFFFF0, %rsp
movw %ss, %ax
@@ -60,7 +60,7 @@ _C_LABEL(vmm_dispatch_intr):
ret
lfence
-_C_LABEL(vmxon):
+vmxon:
RETGUARD_SETUP(vmxon, r11)
xorq %rax, %rax
vmxon (%rdi)
@@ -69,7 +69,7 @@ _C_LABEL(vmxon):
ret
lfence
-_C_LABEL(vmxoff):
+vmxoff:
RETGUARD_SETUP(vmxoff, r11)
xorq %rax, %rax
vmxoff
@@ -78,7 +78,7 @@ _C_LABEL(vmxoff):
ret
lfence
-_C_LABEL(vmclear):
+vmclear:
RETGUARD_SETUP(vmclear, r11)
xorq %rax, %rax
vmclear (%rdi)
@@ -87,7 +87,7 @@ _C_LABEL(vmclear):
ret
lfence
-_C_LABEL(vmptrld):
+vmptrld:
RETGUARD_SETUP(vmptrld, r11)
xorq %rax, %rax
vmptrld (%rdi)
@@ -96,7 +96,7 @@ _C_LABEL(vmptrld):
ret
lfence
-_C_LABEL(vmptrst):
+vmptrst:
RETGUARD_SETUP(vmptrst, r11)
xorq %rax, %rax
vmptrst (%rdi)
@@ -105,7 +105,7 @@ _C_LABEL(vmptrst):
ret
lfence
-_C_LABEL(vmwrite):
+vmwrite:
RETGUARD_SETUP(vmwrite, r11)
xorq %rax, %rax
vmwrite %rsi, %rdi
@@ -114,7 +114,7 @@ _C_LABEL(vmwrite):
ret
lfence
-_C_LABEL(vmread):
+vmread:
RETGUARD_SETUP(vmread, r11)
xorq %rax, %rax
vmread %rdi, (%rsi)
@@ -123,21 +123,21 @@ _C_LABEL(vmread):
ret
lfence
-_C_LABEL(invvpid):
+invvpid:
RETGUARD_SETUP(invvpid, r11)
invvpid (%rsi), %rdi
RETGUARD_CHECK(invvpid, r11)
ret
lfence
-_C_LABEL(invept):
+invept:
RETGUARD_SETUP(invept, r11)
invept (%rsi), %rdi
RETGUARD_CHECK(invept, r11)
ret
lfence
-_C_LABEL(vmx_enter_guest):
+vmx_enter_guest:
RETGUARD_SETUP(vmx_enter_guest, r11)
movq %rdx, %r8 /* resume flag */
movq %rcx, %r9 /* L1DF MSR support */
@@ -511,7 +511,7 @@ restore_host:
ret
lfence
-_C_LABEL(svm_enter_guest):
+svm_enter_guest:
RETGUARD_SETUP(svm_enter_guest, r11)
clgi
movq %rdi, %r8
diff --git a/sys/arch/amd64/include/asm.h b/sys/arch/amd64/include/asm.h
index f7321821985..b4053a07e8d 100644
--- a/sys/arch/amd64/include/asm.h
+++ b/sys/arch/amd64/include/asm.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: asm.h,v 1.22 2022/08/30 16:26:29 miod Exp $ */
+/* $OpenBSD: asm.h,v 1.23 2022/12/01 00:26:15 guenther Exp $ */
/* $NetBSD: asm.h,v 1.2 2003/05/02 18:05:47 yamt Exp $ */
/*-
@@ -49,7 +49,7 @@
# define _C_LABEL(x) x
#define _ASM_LABEL(x) x
-#define CVAROFF(x,y) (_C_LABEL(x)+y)(%rip)
+#define CVAROFF(x,y) (x+y)(%rip)
#ifdef __STDC__
# define __CONCAT(x,y) x ## y
@@ -166,9 +166,9 @@
# define RETGUARD_SYMBOL(x)
#endif
-#define ENTRY(y) _ENTRY(_C_LABEL(y)); _PROF_PROLOGUE
-#define NENTRY(y) _NENTRY(_C_LABEL(y))
-#define ASENTRY(y) _NENTRY(_ASM_LABEL(y)); _PROF_PROLOGUE
+#define ENTRY(y) _ENTRY(y); _PROF_PROLOGUE
+#define NENTRY(y) _NENTRY(y)
+#define ASENTRY(y) _NENTRY(y); _PROF_PROLOGUE
#define ENTRY_NB(y) _ENTRY_NB(y); _PROF_PROLOGUE
#define END(y) .size y, . - y
diff --git a/sys/arch/amd64/include/i82093reg.h b/sys/arch/amd64/include/i82093reg.h
index 6f80d399a34..0e608024941 100644
--- a/sys/arch/amd64/include/i82093reg.h
+++ b/sys/arch/amd64/include/i82093reg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: i82093reg.h,v 1.7 2018/07/03 20:15:57 guenther Exp $ */
+/* $OpenBSD: i82093reg.h,v 1.8 2022/12/01 00:26:15 guenther Exp $ */
/* $NetBSD: i82093reg.h,v 1.1 2003/02/26 21:26:10 fvdl Exp $ */
/*-
@@ -116,7 +116,7 @@
#define ioapic_asm_ack(num) \
CODEPATCH_START ;\
- movl $0,(_C_LABEL(local_apic)+LAPIC_EOI)(%rip) ;\
+ movl $0,(local_apic+LAPIC_EOI)(%rip) ;\
CODEPATCH_END(CPTAG_EOI)