Mercurial > hg > CbC > CbC_gcc
annotate gcc/config/arm/crtn.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, 2004, 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 | |
63
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
29 #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
|
30 /* 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
|
31 /* 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
|
32 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
|
33 /* .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
|
34 /* 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
|
35 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
|
36 .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
|
37 #endif /* __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
|
38 |
0 | 39 # This file just makes sure that the .fini and .init sections do in |
40 # fact return. Users may put any desired instructions in those sections. | |
41 # This file is the last thing linked into any executable. | |
42 | |
43 # Note - this macro is complemented by the FUNC_START macro | |
44 # in crti.asm. If you change this macro you must also change | |
45 # that macro match. | |
46 # | |
47 # Note - we do not try any fancy optimizations of the return | |
48 # sequences here, it is just not worth it. Instead keep things | |
49 # simple. Restore all the save resgisters, including the link | |
50 # register and then perform the correct function return instruction. | |
51 # We also save/restore r3 to ensure stack alignment. | |
52 .macro FUNC_END | |
53 #ifdef __thumb__ | |
54 .thumb | |
55 | |
56 pop {r3, r4, r5, r6, r7} | |
57 pop {r3} | |
58 mov lr, r3 | |
59 #else | |
60 .arm | |
61 | |
62 sub sp, fp, #40 | |
63 ldmfd sp, {r4, r5, r6, r7, r8, r9, sl, fp, sp, lr} | |
64 #endif | |
65 | |
66 #if defined __THUMB_INTERWORK__ || defined __thumb__ | |
67 bx lr | |
68 #else | |
69 mov pc, lr | |
70 #endif | |
71 .endm | |
72 | |
73 | |
74 .section ".init" | |
75 ;; | |
76 FUNC_END | |
77 | |
78 .section ".fini" | |
79 ;; | |
80 FUNC_END | |
81 | |
82 # end of crtn.asm |