Mercurial > hg > CbC > CbC_gcc
annotate gcc/config/arm/crti.asm @ 90:99e7b6776dd1
implemeted __rectype expression. add CbC-exanples/fact-rectype.s
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 25 Dec 2011 04:04:42 +0900 |
parents | f6334be47118 |
children |
rev | line source |
---|---|
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1 # Copyright (C) 2001, 2008, 2009, 2010 Free Software Foundation, Inc. |
0 | 2 # Written By Nick Clifton |
3 # | |
4 # This file is free software; you can redistribute it and/or modify it | |
5 # under the terms of the GNU General Public License as published by the | |
6 # Free Software Foundation; either version 3, or (at your option) any | |
7 # later version. | |
8 # | |
9 # This file is distributed in the hope that it will be useful, but | |
10 # WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 # General Public License for more details. | |
13 # | |
14 # Under Section 7 of GPL version 3, you are granted additional | |
15 # permissions described in the GCC Runtime Library Exception, version | |
16 # 3.1, as published by the Free Software Foundation. | |
17 # | |
18 # You should have received a copy of the GNU General Public License and | |
19 # a copy of the GCC Runtime Library Exception along with this program; | |
20 # see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
21 # <http://www.gnu.org/licenses/>. | |
22 | |
23 /* An executable stack is *not* required for these functions. */ | |
24 #if defined(__ELF__) && defined(__linux__) | |
25 .section .note.GNU-stack,"",%progbits | |
26 .previous | |
27 #endif | |
28 | |
29 # This file just make a stack frame for the contents of the .fini and | |
30 # .init sections. Users may put any desired instructions in those | |
31 # sections. | |
32 | |
33 #ifdef __ELF__ | |
34 #define TYPE(x) .type x,function | |
35 #else | |
36 #define TYPE(x) | |
37 #endif | |
63
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
38 #ifdef __ARM_EABI__ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
39 /* Some attributes that are common to all routines in this file. */ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
40 /* Tag_ABI_align_needed: This code does not require 8-byte |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
41 alignment from the caller. */ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
42 /* .eabi_attribute 24, 0 -- default setting. */ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
43 /* Tag_ABI_align_preserved: This code preserves 8-byte |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
44 alignment in any callee. */ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
45 .eabi_attribute 25, 1 |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
46 #endif /* __ARM_EABI__ */ |
0 | 47 |
48 # Note - this macro is complemented by the FUNC_END macro | |
49 # in crtn.asm. If you change this macro you must also change | |
50 # that macro match. | |
51 .macro FUNC_START | |
52 #ifdef __thumb__ | |
53 .thumb | |
54 | |
55 push {r3, r4, r5, r6, r7, lr} | |
56 #else | |
57 .arm | |
58 # Create a stack frame and save any call-preserved registers | |
59 mov ip, sp | |
60 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, ip, lr, pc} | |
61 sub fp, ip, #4 | |
62 #endif | |
63 .endm | |
64 | |
65 .section ".init" | |
66 .align 2 | |
67 .global _init | |
68 #ifdef __thumb__ | |
69 .thumb_func | |
70 #endif | |
71 TYPE(_init) | |
72 _init: | |
73 FUNC_START | |
74 | |
75 | |
76 .section ".fini" | |
77 .align 2 | |
78 .global _fini | |
79 #ifdef __thumb__ | |
80 .thumb_func | |
81 #endif | |
82 TYPE(_fini) | |
83 _fini: | |
84 FUNC_START | |
85 | |
86 # end of crti.asm |