Update contrib.
1 // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
2 // All rights reserved.
3 // This component and the accompanying materials are made available
4 // under the terms of the License "ARM EABI LICENCE.txt"
5 // which accompanies this distribution, and is available
6 // in kernel/eka/compsupp.
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // toplevel initialization/destruction routines for 'user side' code compiled
15 // with the ARMCC EABI compiler. intended for static linking
16 // The code supports 2.2 both bpabi and non-bpabi. The values in .init_array are
17 // pointers in both environments, so the library is common to both.
23 // This calls each of the compiler constructed functions referenced from pi_ctorvec.
24 // These functions arrange to 'call' the appropriate constructor for the 'static' instance
25 // (in fact the call may be inlined). If the class of the instance has a destructor then
26 // compiler records that this object needs 'destructing' at 'exit' time. It does this by
27 // calling the function __cxa_atexit. We provide our own definition of this.
31 __asm void __cpp_initialize__aeabi_(void)
35 IMPORT _fp_init [WEAK]
37 IMPORT |SHT$$INIT_ARRAY$$Base| [WEAK]
38 IMPORT |SHT$$INIT_ARRAY$$Limit| [WEAK]
40 // export std::nothrow from here
72 // cheat - saved a whole 4 bytes!!! - value is never used
75 DCD |SHT$$INIT_ARRAY$$Base|
77 DCD |SHT$$INIT_ARRAY$$Limit|
82 __asm void __cpp_initialize__aeabi_(void)
86 IMPORT _fp_init [WEAK]
88 IMPORT |SHT$$INIT_ARRAY$$Base| [WEAK]
89 IMPORT |SHT$$INIT_ARRAY$$Limit| [WEAK]
91 // export std::nothrow from here
97 STMFD r13!,{r3-r5,r14}
107 LDMEQFD r13!,{r3-r5,pc}
110 #ifdef __MARM_ARMV4__
120 LDMFD r13!,{r3-r5,pc}
128 DCD |SHT$$INIT_ARRAY$$Base|
130 DCD |SHT$$INIT_ARRAY$$Limit|
132 // cheat - defining this here saves a whole 4 bytes!!! - value is never used