source: rtems/cpukit/score/cpu/m68k/rtems/asm.h @ 66fffc7

4.115
Last change on this file since 66fffc7 was 66fffc7, checked in by Alex Ivanov <alexivanov97@…>, on Jan 8, 2013 at 3:22:33 PM

score: Doxygen Clean Up Task #15

  • Property mode set to 100644
File size: 3.3 KB
Line 
1/**
2 * @file
3 *
4 * @brief Address the Problems Caused by Incompatible Flavor of
5 * Assemblers and Toolsets
6 *
7 * This include file attempts to address the problems
8 * caused by incompatible flavors of assemblers and
9 * toolsets.  It primarily addresses variations in the
10 * use of leading underscores on symbols and the requirement
11 * that register names be preceded by a %.
12 *
13 * NOTE: The spacing in the use of these macros
14 *       is critical to them working as advertised.
15 */
16
17/*
18 *  COPYRIGHT:
19 *
20 *  This file is based on similar code found in newlib available
21 *  from ftp.cygnus.com.  The file which was used had no copyright
22 *  notice.  This file is freely distributable as long as the source
23 *  of the file is noted.  This file is:
24 *
25 *  COPYRIGHT (c) 1994-1997.
26 *  On-Line Applications Research Corporation (OAR).
27 */
28
29#ifndef _RTEMS_ASM_H
30#define _RTEMS_ASM_H
31
32/*
33 *  Indicate we are in an assembly file and get the basic CPU definitions.
34 */
35
36#ifndef ASM
37#define ASM
38#endif
39#include <rtems/score/cpuopts.h>
40#include <rtems/score/cpu.h>
41
42/*
43 *  Recent versions of GNU cpp define variables which indicate the
44 *  need for underscores and percents.  If not using GNU cpp or
45 *  the version does not support this, then you will obviously
46 *  have to define these as appropriate.
47 */
48
49#ifndef __USER_LABEL_PREFIX__
50#define __USER_LABEL_PREFIX__ _
51#endif
52
53#ifndef __REGISTER_PREFIX__
54#define __REGISTER_PREFIX__
55#endif
56
57#include <rtems/concat.h>
58
59/* Use the right prefix for global labels.  */
60
61#define SYM(x) CONCAT0 (__USER_LABEL_PREFIX__, x)
62
63/* Use the right prefix for registers.  */
64
65#define REG(x) CONCAT0 (__REGISTER_PREFIX__, x)
66
67#define d0 REG (d0)
68#define d1 REG (d1)
69#define d2 REG (d2)
70#define d3 REG (d3)
71#define d4 REG (d4)
72#define d5 REG (d5)
73#define d6 REG (d6)
74#define d7 REG (d7)
75#define a0 REG (a0)
76#define a1 REG (a1)
77#define a2 REG (a2)
78#define a3 REG (a3)
79#define a4 REG (a4)
80#define a5 REG (a5)
81#define a6 REG (a6)
82#define a7 REG (a7)
83#define sp REG (sp)
84
85#define msp REG (msp)
86#define usp REG (usp)
87#define isp REG (isp)
88#define sr  REG (sr)
89#define vbr REG (vbr)
90#define dfc REG (dfc)
91#define sfc REG (sfc)
92
93/* mcf52xx special regs */
94#define cacr    REG (cacr)
95#define acr0    REG (acr0)
96#define acr1    REG (acr1)
97#define rambar0 REG (rambar0)
98#define mbar    REG (mbar)
99
100/* additional v4e special regs */
101#define rambar1   REG (rambar1)
102#define macsr     REG (macsr)
103#define acc0      REG (acc0)
104#define acc1      REG (acc1)
105#define acc2      REG (acc2)
106#define acc3      REG (acc3)
107#define accext01  REG (accext01)
108#define accext23  REG (accext23)
109#define mask      REG (mask)
110
111
112#define fp0 REG (fp0)
113#define fp1 REG (fp1)
114#define fp2 REG (fp2)
115#define fp3 REG (fp3)
116#define fp4 REG (fp4)
117#define fp5 REG (fp5)
118#define fp6 REG (fp6)
119#define fp7 REG (fp7)
120
121#define fpc REG (fpc)
122#define fpi REG (fpi)
123#define fps REG (fps)
124#define fpsr REG (fpsr)
125
126
127/*
128 *  Define macros to handle section beginning and ends.
129 */
130
131
132#define BEGIN_CODE_DCL .text
133#define END_CODE_DCL
134#define BEGIN_DATA_DCL .data
135#define END_DATA_DCL
136#define BEGIN_CODE .text
137#define END_CODE
138#define BEGIN_DATA .data
139#define END_DATA
140#define BEGIN_BSS .bss
141#define END_BSS
142#define END
143
144/*
145 *  Following must be tailor for a particular flavor of the C compiler.
146 *  They may need to put underscores in front of the symbols.
147 */
148
149#define PUBLIC(sym) .globl SYM (sym)
150#define EXTERN(sym) .globl SYM (sym)
151
152#endif
Note: See TracBrowser for help on using the repository browser.