OSDN Git Service

* ps.cc (prog_name): New global variable.
[pf3gnuchains/pf3gnuchains3x.git] / utils / amd-udi / include / macros.h
1 /* @(#)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_ */