OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [hal/] [openrisc/] [arch/] [current/] [include/] [arch.inc] - Blame information for rev 587

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 27 unneback
##=============================================================================
2
##
3
##      arch.inc
4
##
5
##      OpenRISC assembler header file
6
##
7
##=============================================================================
8
#####ECOSGPLCOPYRIGHTBEGIN####
9
## -------------------------------------------
10
## This file is part of eCos, the Embedded Configurable Operating System.
11
## Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
12
##
13
## eCos is free software; you can redistribute it and/or modify it under
14
## the terms of the GNU General Public License as published by the Free
15
## Software Foundation; either version 2 or (at your option) any later version.
16
##
17
## eCos is distributed in the hope that it will be useful, but WITHOUT ANY
18
## WARRANTY; without even the implied warranty of MERCHANTABILITY or
19
## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
20
## for more details.
21
##
22
## You should have received a copy of the GNU General Public License along
23
## with eCos; if not, write to the Free Software Foundation, Inc.,
24
## 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
25
##
26
## As a special exception, if other files instantiate templates or use macros
27
## or inline functions from this file, or you compile this file and link it
28
## with other works to produce a work based on this file, this file does not
29
## by itself cause the resulting work to be covered by the GNU General Public
30
## License. However the source code for this file must still be made available
31
## in accordance with section (3) of the GNU General Public License.
32
##
33
## This exception does not invalidate any other reasons why a work based on
34
## this file might be covered by the GNU General Public License.
35
##
36
## Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
37
## at http://sources.redhat.com/ecos/ecos-license/
38
## -------------------------------------------
39
#####ECOSGPLCOPYRIGHTEND####
40
##=============================================================================
41
#######DESCRIPTIONBEGIN####
42
##
43
## Author(s):   sfurman
44
## Contributors:
45
## Date:        2003-01-15
46
## Purpose:     Architecture definitions.
47
## Description: This file contains various definitions and macros that are
48
##              useful for writing assembly code for the OpenRISC CPU family.
49
## Usage:
50
##              #include 
51
##              ...
52
##
53
##
54
######DESCRIPTIONEND####
55
##
56
##=============================================================================
57
 
58
#ifndef CYGONCE_HAL_ARCH_INC
59
#define CYGONCE_HAL_ARCH_INC
60
 
61
# Declare given label name as the start of a function accessible from C code
62
#define FUNC_START(name)        \
63
        .type _##name,@function;   \
64
        .globl _##name;            \
65
_##name:
66
 
67
#define FUNC_END(name)
68
 
69
# Make aliases for ABI distinguished registers
70
#define sp r1
71
#define fp r2
72
#define lr r9
73
 
74
# Size of GPR regs - 4 bytes for or32
75
#define OR1K_GPRSIZE    4
76
 
77
# Size of all other registers
78
#define OR1K_REGSIZE    4
79
 
80
# Utility macro: Load a 32-bit constant into a register
81
        .macro  load32i reg const
82
        l.movhi \reg,hi(\const)
83
        l.ori   \reg,\reg,lo(\const)
84
        .endm
85
 
86
##-----------------------------------------------------------------------------
87
 
88
## OpenRISC thread and interrupt saved state structure. These offsets
89
## must match the layout of the HAL_SavedRegisters struct in
90
## hal_arch.h. Do not change this without changing the layout there,
91
## or viceversa.
92
 
93
#define OR1KREGS_GPRS   0
94
#define OR1KREG_MACHI   (OR1KREGS_GPRS + OR1K_GPRSIZE * 32)
95
#define OR1KREG_MACLO   (OR1KREG_MACHI + OR1K_REGSIZE)
96
#define OR1KREG_VECTOR  (OR1KREG_MACLO + OR1K_REGSIZE)
97
#define OR1KREG_SR      (OR1KREG_VECTOR+ OR1K_REGSIZE)
98
#define OR1KREG_PC      (OR1KREG_SR    + OR1K_REGSIZE)
99
#define OR1KREG_EEAR    (OR1KREG_PC    + OR1K_REGSIZE)
100
 
101
#define SIZEOF_OR1KREGS (OR1KREG_EEAR  + OR1K_REGSIZE)
102
 
103
#include 
104
#include 
105
 
106
#endif // #ifndef CYGONCE_HAL_ARCH_INC

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.