_C_LABEL() is no longer useful in the "everything is ELF" world.
authorguenther <guenther@openbsd.org>
Thu, 1 Dec 2022 00:26:15 +0000 (00:26 +0000)
committerguenther <guenther@openbsd.org>
Thu, 1 Dec 2022 00:26:15 +0000 (00:26 +0000)
Start eliminating it.

ok mpi@ mlarkin@ krw@

12 files changed:
sys/arch/amd64/amd64/acpi_wakecode.S
sys/arch/amd64/amd64/copy.S
sys/arch/amd64/amd64/locore.S
sys/arch/amd64/amd64/locore0.S
sys/arch/amd64/amd64/mptramp.S
sys/arch/amd64/amd64/spl.S
sys/arch/amd64/amd64/vector.S
sys/arch/amd64/amd64/vmm_support.S
sys/arch/amd64/include/asm.h
sys/arch/amd64/include/i82093reg.h
sys/lib/libkern/arch/amd64/htonl.S
sys/lib/libkern/arch/amd64/htons.S

index cd9c924..ddcdc74 100644 (file)
@@ -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>
 #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)
 
        .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)
 
        /*
index 87bdd00..f9f619e 100644 (file)
@@ -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
index d2093a7..838b11e 100644 (file)
@@ -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 $     */
 
 /*
        .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 */
index 4ed7d97..fa739e3 100644 (file)
@@ -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 $     */
 
 /*
 #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.
  */
 
        .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
index 4bb5dac..082f1d4 100644 (file)
@@ -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 $ */
 
 /*-
 #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)
index 84c6c6f..b2327d0 100644 (file)
@@ -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 $     */
 
 /*
 /*
  * 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)
index 825a661..160a267 100644 (file)
@@ -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)
index b3c9e5d..3abaadd 100644 (file)
@@ -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>
  *
 #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
index f732182..b4053a0 100644 (file)
@@ -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
 # 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
 
index 6f80d39..0e60802 100644 (file)
@@ -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 $ */
 
 /*-
 
 #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)
 
 
index 07965cd..6073506 100644 (file)
@@ -40,9 +40,9 @@
 
 #include <machine/asm.h>
 
-_ENTRY(_C_LABEL(htonl))
-_NENTRY(_C_LABEL(ntohl))
-_NENTRY(_C_LABEL(bswap32))
+_ENTRY(htonl)
+_NENTRY(ntohl)
+_NENTRY(bswap32)
 _PROF_PROLOGUE
        RETGUARD_SETUP(htonl, r11)
        movl    %edi,%eax
index 3a70259..189bcba 100644 (file)
@@ -40,9 +40,9 @@
 
 #include <machine/asm.h>
 
-_ENTRY(_C_LABEL(htons))
-_NENTRY(_C_LABEL(ntohs))
-_NENTRY(_C_LABEL(bswap16))
+_ENTRY(htons)
+_NENTRY(ntohs)
+_NENTRY(bswap16)
 _PROF_PROLOGUE
        RETGUARD_SETUP(htons, r11)
        movl    %edi,%eax