145 lines
4.3 KiB
C
145 lines
4.3 KiB
C
#ifndef HUDSON_MACROS_LOADED
|
|
#define HUDSON_MACROS_LOADED 1
|
|
|
|
/*
|
|
* VID: [T1.2] PT: [Fri Apr 21 16:47:16 1995] SF: [macros.h]
|
|
* TI: [/sae_users/cruz/bin/vice -iplatform.s -l// -p# -DEB164 -h -m -aeb164 ]
|
|
*/
|
|
/*
|
|
*****************************************************************************
|
|
** *
|
|
** Copyright © 1993, 1994 *
|
|
** by Digital Equipment Corporation, Maynard, Massachusetts. *
|
|
** *
|
|
** All Rights Reserved *
|
|
** *
|
|
** Permission is hereby granted to use, copy, modify and distribute *
|
|
** this software and its documentation, in both source code and *
|
|
** object code form, and without fee, for the purpose of distribution *
|
|
** of this software or modifications of this software within products *
|
|
** incorporating an integrated circuit implementing Digital's AXP *
|
|
** architecture, regardless of the source of such integrated circuit, *
|
|
** provided that the above copyright notice and this permission notice *
|
|
** appear in all copies, and that the name of Digital Equipment *
|
|
** Corporation not be used in advertising or publicity pertaining to *
|
|
** distribution of the document or software without specific, written *
|
|
** prior permission. *
|
|
** *
|
|
** Digital Equipment Corporation disclaims all warranties and/or *
|
|
** guarantees with regard to this software, including all implied *
|
|
** warranties of fitness for a particular purpose and merchantability, *
|
|
** and makes no representations regarding the use of, or the results *
|
|
** of the use of, the software and documentation in terms of correctness, *
|
|
** accuracy, reliability, currentness or otherwise; and you rely on *
|
|
** the software, documentation and results solely at your own risk. *
|
|
** *
|
|
** AXP is a trademark of Digital Equipment Corporation. *
|
|
** *
|
|
*****************************************************************************
|
|
**
|
|
** FACILITY:
|
|
**
|
|
** DECchip 21164 PALcode
|
|
**
|
|
** MODULE:
|
|
**
|
|
** macros.h
|
|
**
|
|
** MODULE DESCRIPTION:
|
|
**
|
|
** DECchip 21164 PALcode macro definitions
|
|
**
|
|
** AUTHOR: ER
|
|
**
|
|
** CREATION DATE: 29-Nov-1993
|
|
**
|
|
** $Id: fromHudsonMacros.h,v 1.1.1.1 1997/10/30 23:27:19 verghese Exp $
|
|
**
|
|
** MODIFICATION HISTORY:
|
|
**
|
|
** $Log: fromHudsonMacros.h,v $
|
|
** Revision 1.1.1.1 1997/10/30 23:27:19 verghese
|
|
** current 10/29/97
|
|
**
|
|
** Revision 1.1 1995/11/18 01:46:23 boyle
|
|
** Initial revision
|
|
**
|
|
** Revision 1.5 1994/07/08 17:03:12 samberg
|
|
** Changes to support platform specific additions
|
|
**
|
|
** Revision 1.4 1994/05/20 19:24:19 ericr
|
|
** Moved STALL macro from osfpal.s to here
|
|
** Added LDLI macro
|
|
**
|
|
** Revision 1.3 1994/05/20 18:08:14 ericr
|
|
** Changed line comments to C++ style comment character
|
|
**
|
|
** Revision 1.2 1994/02/28 18:45:51 ericr
|
|
** Fixed EGORE related bugs
|
|
**
|
|
** Revision 1.1 1993/12/16 21:55:05 eric
|
|
** Initial revision
|
|
**
|
|
**
|
|
**--
|
|
*/
|
|
|
|
#define STALL \
|
|
mfpr r31, pt0
|
|
|
|
#define NOP \
|
|
bis $31, $31, $31
|
|
|
|
/*
|
|
** Align code on an 8K byte page boundary.
|
|
*/
|
|
|
|
#define ALIGN_PAGE \
|
|
.align 13
|
|
|
|
/*
|
|
** Align code on a 32 byte block boundary.
|
|
*/
|
|
|
|
#define ALIGN_BLOCK \
|
|
.align 5
|
|
|
|
/*
|
|
** Align code on a quadword boundary.
|
|
*/
|
|
|
|
#define ALIGN_BRANCH \
|
|
.align 3
|
|
|
|
/*
|
|
** Hardware vectors go in .text 0 sub-segment.
|
|
*/
|
|
|
|
#define HDW_VECTOR(offset) \
|
|
. = offset
|
|
|
|
/*
|
|
** Privileged CALL_PAL functions are in .text 1 sub-segment.
|
|
*/
|
|
|
|
#define CALL_PAL_PRIV(vector) \
|
|
. = (PAL_CALL_PAL_PRIV_ENTRY+(vector<<6))
|
|
|
|
/*
|
|
** Unprivileged CALL_PAL functions are in .text 1 sub-segment,
|
|
** the privileged bit is removed from these vectors.
|
|
*/
|
|
|
|
#define CALL_PAL_UNPRIV(vector) \
|
|
. = (PAL_CALL_PAL_UNPRIV_ENTRY+((vector&0x3F)<<6))
|
|
|
|
/*
|
|
** Implements a load "immediate" longword function
|
|
*/
|
|
#define LDLI(reg,val) \
|
|
ldah reg, ((val+0x8000) >> 16)(zero); \
|
|
lda reg, (val&0xffff)(reg)
|
|
|
|
|
|
|
|
#endif
|