1 1.1.12.2 martin /* $NetBSD: multiboot64.S,v 1.1.12.2 2020/04/13 08:03:54 martin Exp $ */ 2 1.1.12.2 martin #include <machine/asm.h> 3 1.1.12.2 martin #include <machine/specialreg.h> 4 1.1.12.2 martin 5 1.1.12.2 martin #define CODE_SEGMENT 0x08 6 1.1.12.2 martin #define DATA_SEGMENT 0x10 7 1.1.12.2 martin 8 1.1.12.2 martin .align 16 9 1.1.12.2 martin .globl _C_LABEL(multiboot64) 10 1.1.12.2 martin _C_LABEL(multiboot64): 11 1.1.12.2 martin .quad 0 12 1.1.12.2 martin 13 1.1.12.2 martin .globl _C_LABEL(multiboot64_size) 14 1.1.12.2 martin _C_LABEL(multiboot64_size): 15 1.1.12.2 martin .long multiboot64_end - _C_LABEL(multiboot64_start) 16 1.1.12.2 martin 17 1.1.12.2 martin .text 18 1.1.12.2 martin .p2align 4,,15 19 1.1.12.2 martin 20 1.1.12.2 martin /* 21 1.1.12.2 martin * multiboot64(entry %rdi, multiboot2_info %rsi, magic %rdx); 22 1.1.12.2 martin */ 23 1.1.12.2 martin ENTRY(multiboot64_start) 24 1.1.12.2 martin start: 25 1.1.12.2 martin 26 1.1.12.2 martin movq %rdx, %rax 27 1.1.12.2 martin movq %rsi, %rbx 28 1.1.12.2 martin jmp *%rdi 29 1.1.12.2 martin multiboot64_end: 30