33 lines
901 B
ArmAsm

.section ".text", "ax"
.org 0x200
.global entry64
entry64: // 64-bit entry point for kernel decompression
// get the cckernel image base. if the opcode generated by the assembler changes, this will break
lea -0x207(%rip), %rdi
// we might get some stack space from the previous kernel, but we have no idea how much
// it could just be a few bytes for all we know. it's far safer to just use our own
mov $einit_stack, %rsp
mov %rsp, %rbp
// lets get out of here -- ccmain(rdi: IMGBASE, rsi: BOOTPARAMS)
call ccmain
// what the fuck is going on, why have you returned here, was my work not enough for you
// ungrateful fucking machine. away with you, you do not deserve the privilege of my
// loving grace.
int3
int3
int3
int3
// begone
cli
1: hlt
jmp 1b
.section ".bss"
init_stack: // this should be sufficient for kernel decompression
.skip 0x8000, 0
einit_stack: