⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 instrs.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
字号:
/*  * @(#)instrs.h	4.1	ULTRIX	7/2/90 *//************************************************************************ *									* *			Copyright (c) 1984 by				* *		Digital Equipment Corporation, Maynard, MA		* *			All rights reserved.				* *									* *   This software is furnished under a license and may be used and	* *   copied  only  in accordance with the terms of such license and	* *   with the  inclusion  of  the  above  copyright  notice.   This	* *   software  or  any  other copies thereof may not be provided or	* *   otherwise made available to any other person.  No title to and	* *   ownership of the software is hereby transferred.			* *									* *   This software is  derived  from  software  received  from  the	* *   University    of   California,   Berkeley,   and   from   Bell	* *   Laboratories.  Use, duplication, or disclosure is  subject  to	* *   restrictions  under  license  agreements  with  University  of	* *   California and with AT&T.						* *									* *   The information in this software is subject to change  without	* *   notice  and should not be construed as a commitment by Digital	* *   Equipment Corporation.						* *									* *   Digital assumes no responsibility for the use  or  reliability	* *   of its software on equipment which is not supplied by Digital.	* *									* ************************************************************************//* *	Copyright (c) 1982 Regents of the University of California *	@(#)instrs.h 4.5 6/9/83 *//* *	Argument data types * *	If you change these definitions, you must also change the tables *	in assizetab.c */#define	TYPB		000	/* byte integer */#define	TYPW		001	/* word integer */#define	TYPL		002	/* long integer */#define	TYPQ		003	/* quad integer */#define	TYPO		004	/* octa integer */#define	TYPF		005	/* F float */#define	TYPD		006	/* D float */#define	TYPG		007	/* G float */#define	TYPH		010	/* H float */#define	TYPUNPACKED	011	/* when unpacked into mantissa & exponent */#define	TYPNONE		012	/* when nothing */#define	TYPLG		4	/* number of bits the above take up */#define	TYPMASK	((1<<TYPLG)-1)	/* the mask (assumes 2's comp arith) *//* *	Constructors and extractors for argument access kinds and types */#define A_CONS(access, type)	((access) | (type))#define	A_ACCEXT(consed)	((consed) & (TYPMASK << TYPLG))#define	A_TYPEXT(consed)	((consed) & TYPMASK)/* * Argument access types used to test validity of operands to operators */#define	ACCR	(1<<TYPLG)			/* read */#define	ACCW	(2<<TYPLG)			/* write */#define	ACCB	(4<<TYPLG)			/* branch displacement */#define	ACCA	(8<<TYPLG)			/* address only */#define	ACCV	(8<<TYPLG)			/* address only */#define	ACCM	(ACCR | ACCW)			/* modify */#define	ACCI	(ACCB | ACCR)			/* XFC code */#define ACCESSMASK	(ACCA | ACCR | ACCW | ACCB)	/* the mask *//* *	Construction of TYPX and ACCX, to make the instrs table *	easy to use and read. *//* *	For real memory address */#define	A_AB	A_CONS(ACCA, TYPB)#define	A_AW	A_CONS(ACCA, TYPW)#define	A_AL	A_CONS(ACCA, TYPL)#define	A_AQ	A_CONS(ACCA, TYPQ)#define	A_AO	A_CONS(ACCA, TYPO)#define	A_AF	A_CONS(ACCA, TYPF)#define	A_AD	A_CONS(ACCA, TYPD)#define	A_AG	A_CONS(ACCA, TYPG)#define	A_AH	A_CONS(ACCA, TYPH)/* *	For real memory addresses, or register addresses [sic] * *	CHEAT! we just call these read access, since *	registers are allowed. All field instruction, except insv, *	are are read access fields. */#define	A_VB	A_CONS(ACCR, TYPB)#define	A_VW	A_CONS(ACCR, TYPW)#define	A_VL	A_CONS(ACCR, TYPL)#define	A_VQ	A_CONS(ACCR, TYPQ)#define	A_VO	A_CONS(ACCR, TYPO)#define	A_VF	A_CONS(ACCR, TYPF)#define	A_VD	A_CONS(ACCR, TYPD)#define	A_VG	A_CONS(ACCR, TYPG)#define	A_VH	A_CONS(ACCR, TYPH)/* *	For branch displacement */#define	A_BB	A_CONS(ACCB, TYPB)#define	A_BW	A_CONS(ACCB, TYPW)/* *	For modification */#define	A_MB	A_CONS(ACCM, TYPB)#define	A_MW	A_CONS(ACCM, TYPW)#define	A_ML	A_CONS(ACCM, TYPL)#define	A_MF	A_CONS(ACCM, TYPF)#define	A_MD	A_CONS(ACCM, TYPD)#define	A_MG	A_CONS(ACCM, TYPG)#define	A_MH	A_CONS(ACCM, TYPH)/* *	For reading */#define	A_RB	A_CONS(ACCR, TYPB)#define	A_RW	A_CONS(ACCR, TYPW)#define	A_RL	A_CONS(ACCR, TYPL)#define	A_RQ	A_CONS(ACCR, TYPQ)#define	A_RO	A_CONS(ACCR, TYPO)#define	A_RF	A_CONS(ACCR, TYPF)#define	A_RD	A_CONS(ACCR, TYPD)#define	A_RG	A_CONS(ACCR, TYPG)#define	A_RH	A_CONS(ACCR, TYPH)/* *	For writing */#define	A_WB	A_CONS(ACCW, TYPB)#define	A_WW	A_CONS(ACCW, TYPW)#define	A_WL	A_CONS(ACCW, TYPL)#define	A_WQ	A_CONS(ACCW, TYPQ)#define	A_WO	A_CONS(ACCW, TYPO)#define	A_WF	A_CONS(ACCW, TYPF)#define	A_WD	A_CONS(ACCW, TYPD)#define	A_WG	A_CONS(ACCW, TYPG)#define	A_WH	A_CONS(ACCW, TYPH)#ifndef INSTTAB/* *	Define what the entries in the table look like. *	This is only used for adb and sdb; not for as. */#define	INSTTABstruct insttab{	char	*iname;	u_char	eopcode;	u_char	popcode;	char	nargs;	u_char	argtype[6];} insttab[];#define OP(name,eopcode,popdcode,nargs,a1,a2,a3,a4,a5,a6) {name,eopcode,popdcode,nargs,a1,a2,a3,a4,a5,a6}#endif INSTTAB/* *	Definitions for the escape bytes */#define	CORE	0#define	NEW	1#define	ESCD	0xfd#define	ESCF	0xff

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -