Added x86_64 glue code.
This commit is contained in:
@@ -0,0 +1,7 @@
|
|||||||
|
SubDir HAIKU_TOP src system glue arch x86_64 ;
|
||||||
|
|
||||||
|
KernelObjects
|
||||||
|
crti.S
|
||||||
|
crtn.S
|
||||||
|
;
|
||||||
|
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2005-2006, Axel Dörfler, axeld@pinc-software.de.
|
||||||
|
* Copyright 2012, Alex Smith, alex@alex-smith.me.uk.
|
||||||
|
* Distributed under the terms of the MIT License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <asm_defs.h>
|
||||||
|
|
||||||
|
|
||||||
|
/** This file contains the first part of the ".init" and ".fini" sections in
|
||||||
|
* the ELF executable.
|
||||||
|
* The functions defined here will be called during initialization/termination
|
||||||
|
* of the loaded executable/library. The ".init" and ".fini" sections are
|
||||||
|
* stacked together like this:
|
||||||
|
*
|
||||||
|
* crti.S entry point
|
||||||
|
* call to _init_before/_term_before
|
||||||
|
* crtbegin.S GCC specific: constructors/destructors are called, ...
|
||||||
|
* crtend.S
|
||||||
|
* crtn.S call to _init_after/_term_after
|
||||||
|
* exit
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
.section .init
|
||||||
|
FUNCTION(_init):
|
||||||
|
push %rbp
|
||||||
|
movq %rsp, %rbp
|
||||||
|
|
||||||
|
// Preserve image ID for call to __haiku_init_after.
|
||||||
|
push %rdi
|
||||||
|
|
||||||
|
call __haiku_init_before
|
||||||
|
// crtbegin.o stuff comes here
|
||||||
|
|
||||||
|
.section .fini
|
||||||
|
FUNCTION(_fini):
|
||||||
|
push %rbp
|
||||||
|
movq %rsp, %rbp
|
||||||
|
push %rdi
|
||||||
|
call __haiku_term_before
|
||||||
|
// crtend.o stuff comes here
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2005-2006, Axel Dörfler, axeld@pinc-software.de.
|
||||||
|
* Copyright 2012, Alex Smith, alex@alex-smith.me.uk.
|
||||||
|
* Distributed under the terms of the MIT License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/** This file contains the final part of the ".init" and ".fini" sections in
|
||||||
|
* the ELF executable. It is tightly connected to crti.S.
|
||||||
|
* Have a look at crti.S to find a description of what happens here.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
.section .init
|
||||||
|
// The image ID is preserved on the stack.
|
||||||
|
pop %rdi
|
||||||
|
call __haiku_init_after
|
||||||
|
movq %rbp, %rsp
|
||||||
|
pop %rbp
|
||||||
|
ret
|
||||||
|
|
||||||
|
.section .fini
|
||||||
|
pop %rdi
|
||||||
|
call __haiku_term_after
|
||||||
|
movq %rbp, %rsp
|
||||||
|
pop %rbp
|
||||||
|
ret
|
||||||
Reference in New Issue
Block a user