fromHudsonMacros.h revision 7997:b91bdbee66c3
1#ifndef HUDSON_MACROS_LOADED
2#define	HUDSON_MACROS_LOADED	    1
3
4/*
5 *      VID: [T1.2] PT: [Fri Apr 21 16:47:16 1995] SF: [macros.h]
6 *       TI: [/sae_users/cruz/bin/vice -iplatform.s -l// -p# -DEB164 -h -m -aeb164 ]
7 */
8/*
9*****************************************************************************
10**                                                                          *
11**  Copyright � 1993, 1994						    *
12**  by Digital Equipment Corporation, Maynard, Massachusetts.		    *
13**                                                                          *
14**  All Rights Reserved							    *
15**                                                                          *
16**  Permission  is  hereby  granted  to  use, copy, modify and distribute   *
17**  this  software  and  its  documentation,  in  both  source  code  and   *
18**  object  code  form,  and without fee, for the purpose of distribution   *
19**  of this software  or  modifications  of this software within products   *
20**  incorporating  an  integrated   circuit  implementing  Digital's  AXP   *
21**  architecture,  regardless  of the  source of such integrated circuit,   *
22**  provided that the  above copyright  notice and this permission notice   *
23**  appear  in  all copies,  and  that  the  name  of  Digital  Equipment   *
24**  Corporation  not  be  used  in advertising or publicity pertaining to   *
25**  distribution of the  document  or  software without specific, written   *
26**  prior permission.							    *
27**                                                                          *
28**  Digital  Equipment  Corporation   disclaims  all   warranties  and/or   *
29**  guarantees  with  regard  to  this  software,  including  all implied   *
30**  warranties of fitness for  a  particular purpose and merchantability,   *
31**  and makes  no  representations  regarding  the use of, or the results   *
32**  of the use of, the software and documentation in terms of correctness,  *
33**  accuracy,  reliability,  currentness  or  otherwise;  and you rely on   *
34**  the software, documentation and results solely at your own risk.	    *
35**                                                                          *
36**  AXP is a trademark of Digital Equipment Corporation.		    *
37**                                                                          *
38*****************************************************************************
39**
40**  FACILITY:
41**
42**	DECchip 21164 PALcode
43**
44**  MODULE:
45**
46**	macros.h
47**
48**  MODULE DESCRIPTION:
49**
50**      DECchip 21164 PALcode macro definitions
51**
52**  AUTHOR: ER
53**
54**  CREATION DATE:  29-Nov-1993
55**
56**  $Id: fromHudsonMacros.h,v 1.1.1.1 1997/10/30 23:27:19 verghese Exp $
57**
58**  MODIFICATION HISTORY:
59**
60**  $Log: fromHudsonMacros.h,v $
61**  Revision 1.1.1.1  1997/10/30 23:27:19  verghese
62**  current 10/29/97
63**
64**  Revision 1.1  1995/11/18 01:46:23  boyle
65**  Initial revision
66**
67**  Revision 1.5  1994/07/08  17:03:12  samberg
68**  Changes to support platform specific additions
69**
70**  Revision 1.4  1994/05/20  19:24:19  ericr
71**  Moved STALL macro from osfpal.s to here
72**  Added LDLI macro
73**
74**  Revision 1.3  1994/05/20  18:08:14  ericr
75**  Changed line comments to C++ style comment character
76**
77**  Revision 1.2  1994/02/28  18:45:51  ericr
78**  Fixed EGORE related bugs
79**
80**  Revision 1.1  1993/12/16  21:55:05  eric
81**  Initial revision
82**
83**
84**--
85*/
86
87#define	STALL \
88    mfpr    r31, pt0
89
90#define	NOP \
91    bis	    $31, $31, $31
92
93/*
94** Align code on an 8K byte page boundary.
95*/
96
97#define	ALIGN_PAGE \
98    .align  13
99
100/*
101** Align code on a 32 byte block boundary.
102*/
103
104#define	ALIGN_BLOCK \
105    .align  5
106
107/*
108** Align code on a quadword boundary.
109*/
110
111#define ALIGN_BRANCH \
112    .align  3
113
114/*
115** Hardware vectors go in .text 0 sub-segment.
116*/
117
118#define	HDW_VECTOR(offset) \
119    . = offset
120
121/*
122** Privileged CALL_PAL functions are in .text 1 sub-segment.
123*/
124
125#define	CALL_PAL_PRIV(vector) \
126    . = (PAL_CALL_PAL_PRIV_ENTRY+(vector<<6))
127
128/*
129** Unprivileged CALL_PAL functions are in .text 1 sub-segment,
130** the privileged bit is removed from these vectors.
131*/
132
133#define CALL_PAL_UNPRIV(vector) \
134    . = (PAL_CALL_PAL_UNPRIV_ENTRY+((vector&0x3F)<<6))
135
136/*
137** Implements a load "immediate" longword function
138*/
139#define LDLI(reg,val) \
140        ldah	reg, ((val+0x8000) >> 16)(zero); \
141        lda	reg, (val&0xffff)(reg)
142
143
144
145#endif
146