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

Subversion Repositories or1k

[/] [or1k/] [tags/] [start/] [gdb-5.0/] [utils/] [amd-udi/] [include/] [macros.h] - Blame information for rev 1778

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

Line No. Rev Author Line
1 106 markom
/* @(#)macros.h 5.19 93/07/30 16:39:54, Srini, AMD */
2
/******************************************************************************
3
 * Copyright 1991 Advanced Micro Devices, Inc.
4
 *
5
 * This software is the property of Advanced Micro Devices, Inc  (AMD)  which
6
 * specifically  grants the user the right to modify, use and distribute this
7
 * software provided this notice is not removed or altered.  All other rights
8
 * are reserved by AMD.
9
 *
10
 * AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS
11
 * SOFTWARE.  IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL
12
 * DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR
13
 * USE OF THIS SOFTWARE.
14
 *
15
 * So that all may benefit from your experience, please report  any  problems
16
 * or  suggestions about this software to the 29K Technical Support Center at
17
 * 800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131  in  the  UK,  or
18
 * 0031-11-1129 in Japan, toll free.  The direct dial number is 512-462-4118.
19
 *
20
 * Advanced Micro Devices, Inc.
21
 * 29K Support Products
22
 * Mail Stop 573
23
 * 5900 E. Ben White Blvd.
24
 * Austin, TX 78741
25
 * 800-292-9263
26
 *****************************************************************************
27
 *      Engineer: Srini Subramanian.
28
 *****************************************************************************
29
 * This header file defines various macros used by the host module of
30
 * MiniMON29K.
31
 *****************************************************************************
32
 */
33
 
34
#ifndef _MACROS_H_INCLUDED_
35
#define _MACROS_H_INCLUDED_
36
 
37
/*
38
** Macros
39
*/
40
 
41
#define MIN(x,y)            ((x)<(y) ? (x) : (y))
42
#define MAX(x,y)            ((x)<(y) ? (y) : (x))
43
 
44
/* Does the memory space contain registers? */
45
#define ISREG(x)      (((x) == LOCAL_REG) ||\
46
                       ((x) == ABSOLUTE_REG) ||\
47
                       ((x) == GLOBAL_REG) ||\
48
                       ((x) == SPECIAL_REG) ||\
49
                       ((x) == A_SPCL_REG) ||\
50
                       ((x) == TLB_REG) ||\
51
                       ((x) == PC_SPACE) ||\
52
                       ((x) == COPROC_REG))
53
 
54
#define ISMEM(x)      (((x) == I_MEM) ||\
55
                       ((x) == D_MEM) ||\
56
                       ((x) == I_ROM) ||\
57
                       ((x) == D_ROM) ||\
58
                       ((x) == PC_RELATIVE) ||\
59
                       ((x) == GENERIC_SPACE) ||\
60
                       ((x) == I_O))
61
 
62
#define ISGENERAL(x)   (((x) == LOCAL_REG) ||\
63
                       ((x) == ABSOLUTE_REG) ||\
64
                       ((x) == GLOBAL_REG))
65
 
66
#define ISSPECIAL(x)   (((x) == SPECIAL_REG) ||\
67
                        ((x) == A_SPCL_REG))
68
 
69
#define ISTLB(x)       (((x) == TLB_REG))
70
 
71
/*
72
** These macros are used to align addresses to 64, 32
73
** 16 and 8 bit boundaries (rounding upward).  The
74
** ALIGN8() macro is usually not necessary, but included
75
** for completeness.
76
*/
77
 
78
#define ALIGN64(x)     (((x) + 0x07) & 0xfffffff8);
79
#define ALIGN32(x)     (((x) + 0x03) & 0xfffffffc);
80
#define ALIGN16(x)     (((x) + 0x01) & 0xfffffffe);
81
#define ALIGN8(x)      (((x) + 0x00) & 0xffffffff);
82
 
83
/*
84
** This macro is used to get the processor from the PRL.
85
** It is assumed that the PRL is an eight bit quantity.
86
*/
87
 
88
#define PROCESSOR(prl)  (prl & 0xf1)
89
 
90
#endif /* _MACROS_H_INCLUDED_ */

powered by: WebSVN 2.1.0

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