asmdefs.h
Go to the documentation of this file.
1 //*****************************************************************************
2 //
3 // asmdefs.h - Macros to allow assembly code be portable among toolchains.
4 //
5 // Copyright (c) 2005-2017 Texas Instruments Incorporated. All rights reserved.
6 // Software License Agreement
7 //
8 // Redistribution and use in source and binary forms, with or without
9 // modification, are permitted provided that the following conditions
10 // are met:
11 //
12 // Redistributions of source code must retain the above copyright
13 // notice, this list of conditions and the following disclaimer.
14 //
15 // Redistributions in binary form must reproduce the above copyright
16 // notice, this list of conditions and the following disclaimer in the
17 // documentation and/or other materials provided with the
18 // distribution.
19 //
20 // Neither the name of Texas Instruments Incorporated nor the names of
21 // its contributors may be used to endorse or promote products derived
22 // from this software without specific prior written permission.
23 //
24 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
27 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
28 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
29 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
30 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
31 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
32 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
34 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 //
36 //*****************************************************************************
37 
38 #ifndef __ASMDEFS_H__
39 #define __ASMDEFS_H__
40 
41 //*****************************************************************************
42 //
43 // The defines required for code_red.
44 //
45 //*****************************************************************************
46 #ifdef codered
47 
48 //
49 // The assembly code preamble required to put the assembler into the correct
50 // configuration.
51 //
52  .syntax unified
53  .thumb
54 
55 //
56 // Section headers.
57 //
58 #define __LIBRARY__ @
59 #define __TEXT__ .text
60 #define __DATA__ .data
61 #define __BSS__ .bss
62 #define __TEXT_NOROOT__ .text
63 
64 //
65 // Assembler nmenonics.
66 //
67 #define __ALIGN__ .balign 4
68 #define __END__ .end
69 #define __EXPORT__ .globl
70 #define __IMPORT__ .extern
71 #define __LABEL__ :
72 #define __STR__ .ascii
73 #define __THUMB_LABEL__ .thumb_func
74 #define __WORD__ .word
75 #define __INLINE_DATA__
76 
77 #endif // codered
78 
79 //*****************************************************************************
80 //
81 // The defines required for EW-ARM.
82 //
83 //*****************************************************************************
84 #if defined ( __ICCARM__ )
85 
86 //
87 // Section headers.
88 //
89 #define __LIBRARY__ module
90 #define __TEXT__ rseg CODE:CODE(2)
91 #define __DATA__ rseg DATA:DATA(2)
92 #define __BSS__ rseg DATA:DATA(2)
93 #define __TEXT_NOROOT__ rseg CODE:CODE:NOROOT(2)
94 
95 //
96 // Assembler nmenonics.
97 //
98 #define __ALIGN__ alignrom 2
99 #define __END__ end
100 #define __EXPORT__ export
101 #define __IMPORT__ import
102 #define __LABEL__
103 #define __STR__ dcb
104 #define __THUMB_LABEL__ thumb
105 #define __WORD__ dcd
106 #define __INLINE_DATA__ data
107 
108 #endif // ICCARM
109 
110 //*****************************************************************************
111 //
112 // The defines required for GCC.
113 //
114 //*****************************************************************************
115 #if defined ( __GNUC__ )
116 
117 //
118 // The assembly code preamble required to put the assembler into the correct
119 // configuration.
120 //
121  .syntax unified
122  .thumb
123 
124 //
125 // Section headers.
126 //
127 #define __LIBRARY__ @
128 #define __TEXT__ .text
129 #define __DATA__ .data
130 #define __BSS__ .bss
131 #define __TEXT_NOROOT__ .text
132 
133 //
134 // Assembler nmenonics.
135 //
136 #define __ALIGN__ .balign 4
137 #define __END__ .end
138 #define __EXPORT__ .globl
139 #define __IMPORT__ .extern
140 #define __LABEL__ :
141 #define __STR__ .ascii
142 #define __THUMB_LABEL__ .thumb_func
143 #define __WORD__ .word
144 #define __INLINE_DATA__
145 
146 #endif // gcc
147 
148 //*****************************************************************************
149 //
150 // The defines required for RV-MDK.
151 //
152 //*****************************************************************************
153 #ifdef rvmdk
154 
155 //
156 // The assembly code preamble required to put the assembler into the correct
157 // configuration.
158 //
159  thumb
160  require8
161  preserve8
162 
163 //
164 // Section headers.
165 //
166 #define __LIBRARY__ ;
167 #define __TEXT__ area ||.text||, code, readonly, align=2
168 #define __DATA__ area ||.data||, data, align=2
169 #define __BSS__ area ||.bss||, noinit, align=2
170 #define __TEXT_NOROOT__ area ||.text||, code, readonly, align=2
171 
172 //
173 // Assembler nmenonics.
174 //
175 #define __ALIGN__ align 4
176 #define __END__ end
177 #define __EXPORT__ export
178 #define __IMPORT__ import
179 #define __LABEL__
180 #define __STR__ dcb
181 #define __THUMB_LABEL__
182 #define __WORD__ dcd
183 #define __INLINE_DATA__
184 
185 #endif // rvmdk
186 
187 //*****************************************************************************
188 //
189 // The defines required for Sourcery G++.
190 //
191 //*****************************************************************************
192 #if defined(sourcerygxx)
193 
194 //
195 // The assembly code preamble required to put the assembler into the correct
196 // configuration.
197 //
198  .syntax unified
199  .thumb
200 
201 //
202 // Section headers.
203 //
204 #define __LIBRARY__ @
205 #define __TEXT__ .text
206 #define __DATA__ .data
207 #define __BSS__ .bss
208 #define __TEXT_NOROOT__ .text
209 
210 //
211 // Assembler nmenonics.
212 //
213 #define __ALIGN__ .balign 4
214 #define __END__ .end
215 #define __EXPORT__ .globl
216 #define __IMPORT__ .extern
217 #define __LABEL__ :
218 #define __STR__ .ascii
219 #define __THUMB_LABEL__ .thumb_func
220 #define __WORD__ .word
221 #define __INLINE_DATA__
222 
223 #endif // sourcerygxx
224 
225 #endif // __ASMDEF_H__
Copyright 2017, Texas Instruments Incorporated