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