diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-08-01 15:35:16 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-08-22 16:27:01 +0200 |
commit | 0e26c19a07853422e15444835394ba28e1f17e2a (patch) | |
tree | 90f2418bf118a9ae40be41980771d0415730d0dc /c/src/lib/libbsp/powerpc/shared | |
parent | bsps/powerpc: Rename ppc_exc_wrap_async_normal_end (diff) | |
download | rtems-0e26c19a07853422e15444835394ba28e1f17e2a.tar.bz2 |
bsps/powerpc: Add 64-bit CRT init/fini support
Update #3082.
Diffstat (limited to 'c/src/lib/libbsp/powerpc/shared')
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/start/rtems_crti.S | 34 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/start/rtems_crtn.S | 27 |
2 files changed, 61 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/shared/start/rtems_crti.S b/c/src/lib/libbsp/powerpc/shared/start/rtems_crti.S index c72e1958f0..a664ae2522 100644 --- a/c/src/lib/libbsp/powerpc/shared/start/rtems_crti.S +++ b/c/src/lib/libbsp/powerpc/shared/start/rtems_crti.S @@ -1,7 +1,40 @@ +/* + * Copyright (c) 2017 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + /* rtems_crti.S */ #include <rtems/asm.h> #include <rtems/score/cpu.h> +#if defined(__powerpc64__) + .section ".init","ax" + .align 2 + .globl _init + .type _init,@function +_init: + mflr r0 + std r0,16(1) + stdu r1,-96(1) + + .section ".fini","ax" + .align 2 + .globl _fini + .type _fini,@function +_fini: + mflr r0 + std r0,16(r1) + stdu r1,-96(r1) +#else /* terminate the __init() function and create * a new head '_init' for use by RTEMS to * invoke C++ global constructors @@ -32,3 +65,4 @@ _init: stwu r1,-16(r1) mflr r0 stw r0,20(r1) +#endif diff --git a/c/src/lib/libbsp/powerpc/shared/start/rtems_crtn.S b/c/src/lib/libbsp/powerpc/shared/start/rtems_crtn.S new file mode 100644 index 0000000000..747d83dbce --- /dev/null +++ b/c/src/lib/libbsp/powerpc/shared/start/rtems_crtn.S @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2017 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Dornierstr. 4 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#if defined(__powerpc64__) + .section ".init","ax" + addi 1,1,96 + ld 0,16(1) + mtlr 0 + blr + + .section ".fini","ax" + addi 1,1,96 + ld 0,16(1) + mtlr 0 + blr +#endif |