RTEMS CPU Kit with SuperCore
4.11.3
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
+
Data Fields
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Files
File List
+
Globals
+
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Functions
_
a
b
c
d
e
f
g
i
j
l
m
n
o
p
q
r
s
t
u
v
w
+
Variables
_
b
c
d
i
r
+
Typedefs
a
b
c
d
f
h
i
m
o
p
q
r
s
t
u
w
x
+
Enumerations
b
c
d
e
h
i
m
o
p
r
s
t
w
+
Enumerator
c
i
m
p
r
s
t
w
+
Macros
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
w
mnt
data0
chrisj
rtems
releases
rtems-release.git
4.11.3
ws-rtems
rtems-4.11.3
cpukit
score
cpu
epiphany
rtems
asm.h
Go to the documentation of this file.
1
11
/*
12
* NOTE: The spacing in the use of these macros
13
* is critical to them working as advertised.
14
*
15
* This file is based on similar code found in newlib available
16
* from ftp.cygnus.com. The file which was used had no copyright
17
* notice. This file is freely distributable as long as the source
18
* of the file is noted. This file is:
19
*
20
* Copyright (c) 2015 University of York.
21
* Hesham ALMatary <hmka501@york.ac.uk>
22
*
23
*
24
* COPYRIGHT (c) 1994-1997.
25
* On-Line Applications Research Corporation (OAR).
26
*
27
* Redistribution and use in source and binary forms, with or without
28
* modification, are permitted provided that the following conditions
29
* are met:
30
* 1. Redistributions of source code must retain the above copyright
31
* notice, this list of conditions and the following disclaimer.
32
* 2. Redistributions in binary form must reproduce the above copyright
33
* notice, this list of conditions and the following disclaimer in the
34
* documentation and/or other materials provided with the distribution.
35
*
36
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
37
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
39
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
40
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
41
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
42
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
43
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
44
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
45
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46
* SUCH DAMAGE.
47
*/
48
49
#ifndef __EPIPHANY_ASM_H
50
#define __EPIPHANY_ASM_H
51
52
/*
53
* Indicate we are in an assembly file and get the basic CPU definitions.
54
*/
55
56
#ifndef ASM
57
#define ASM
58
#endif
59
#include <rtems/score/cpuopts.h>
60
#include <
rtems/score/epiphany.h
>
61
62
/*
63
* Recent versions of GNU cpp define variables which indicate the
64
* need for underscores and percents. If not using GNU cpp or
65
* the version does not support this, then you will obviously
66
* have to define these as appropriate.
67
*/
68
69
#ifndef __USER_LABEL_PREFIX__
70
#define __USER_LABEL_PREFIX__ _
71
#endif
72
73
#ifndef __REGISTER_PREFIX__
74
#define __REGISTER_PREFIX__
75
#endif
76
77
/* ANSI concatenation macros. */
78
79
#define CONCAT1(a, b) CONCAT2(a, b)
80
#define CONCAT2(a, b) a ## b
81
82
/* Use the right prefix for global labels. */
83
84
#define SYM(x) CONCAT1 (__USER_LABEL_PREFIX__, x)
85
86
/* Use the right prefix for registers. */
87
88
#define REG(x) CONCAT1 (__REGISTER_PREFIX__, x)
89
90
/*
91
* define macros for all of the registers on this CPU
92
*
93
* EXAMPLE: #define d0 REG (d0)
94
*/
95
96
/*
97
* Define macros to handle section beginning and ends.
98
*/
99
#define BEGIN_CODE_DCL .text
100
#define END_CODE_DCL
101
#define BEGIN_DATA_DCL .data
102
#define END_DATA_DCL
103
#define BEGIN_CODE .text
104
#define END_CODE
105
#define BEGIN_DATA
106
#define END_DATA
107
#define BEGIN_BSS
108
#define END_BSS
109
#define END
110
111
/*
112
* Following must be tailor for a particular flavor of the C compiler.
113
* They may need to put underscores in front of the symbols.
114
*/
115
116
#define PUBLIC(sym) .global SYM (sym)
117
#define EXTERN(sym) .extern SYM (sym)
118
#define TYPE_FUNC(sym) .type SYM (sym), %function
119
120
#endif
epiphany.h
Generated by
1.8.13