/* $NetBSD: multiboot64.S,v 1.1 2019/09/13 02:19:46 manu Exp $ */
#include <machine/asm.h>
#include <machine/specialreg.h>
#define CODE_SEGMENT 0x08
#define DATA_SEGMENT 0x10
.align 16
.globl _C_LABEL(multiboot64)
_C_LABEL(multiboot64):
.quad 0
.globl _C_LABEL(multiboot64_size)
_C_LABEL(multiboot64_size):
.long multiboot64_end - _C_LABEL(multiboot64_start)
.text
.p2align 4,,15
/*
* multiboot64(entry %rdi, multiboot2_info %rsi, magic %rdx);
*/
ENTRY(multiboot64_start)
start:
movq %rdx, %rax
movq %rsi, %rbx
jmp *%rdi
multiboot64_end: