File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / d / dmp4 / old_defs.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:30:21 2019 UTC (7 years ago) by root
Branches: bsd, MAIN
CVS tags: v121, HEAD
Power 6/32 Unix version 1.21

#include "../fpp_defs.h"


/**************************************************************************
*
*	FLOATING POINT PROCESSOR DEMAND PAGING TEST DEFINITIONS
*
*  19-Feb-85: JJM created the little beast
*
**************************************************************************/


/*
 * Instruction definitions used in Addressing and Demand Paging Tests
*/
struct	instruction_t {
                  int  inst_code;		/* instruction's op code     */
                 char  *name;			/* instruction's name        */
                  int  precision;		/* sgl / dbl precision instr */
                  int  no_operands;		/* # operands used by instr  */
		  int  type;			/* load / store type instr   */
   struct addd_data_t  *data;			/* ptr to current data table */
                  int  (*test_routine)();	/* prt to inst test funcion  */
    };

/*
 * instruction definition array ( in Common.c )
*/
extern struct  instruction_t   instruction_table[];


/*
 * data for use in the addressing / demand paging tests
*/
extern struct addd_data_t    ldf_data[];	/*   LDF instr data  */
extern struct addd_data_t    stf_data[];	/*   STF instr data  */
extern struct addd_data_t    lnf_data[];	/*   LNF instr data  */
extern struct addd_data_t   negf_data[];	/*  NEGF instr data  */
extern struct addd_data_t   addf_data[];	/*  ADDF instr data  */
extern struct addd_data_t   cmpf_data[];	/*  CMPF instr data  */
extern struct addd_data_t   cosf_data[];	/*  COSF instr data  */
extern struct addd_data_t   cvfl_data[];	/*  CVFL instr data  */
extern struct addd_data_t   cvlf_data[];	/*  CVLF instr data  */
extern struct addd_data_t   divf_data[];	/*  DIVF instr data  */
extern struct addd_data_t   expf_data[];	/*  EXPF instr data  */
extern struct addd_data_t   logf_data[];	/*  LOGF instr data  */
extern struct addd_data_t   mulf_data[];	/*  MULF instr data  */
extern struct addd_data_t   sinf_data[];	/*  SINF instr data  */
extern struct addd_data_t   subf_data[];	/*  SUBF instr data  */
extern struct addd_data_t   tstf_data[];	/*  TSTF instr data  */
extern struct addd_data_t  atanf_data[];	/* ATANF instr data  */
extern struct addd_data_t  sqrtf_data[];	/* SQRTF instr data  */
extern struct addd_data_t    ldd_data[];	/*   LDD instr data  */
extern struct addd_data_t    std_data[];	/*   STD instr data  */
extern struct addd_data_t    lnd_data[];	/*   LND instr data  */
extern struct addd_data_t   negd_data[];	/*  NEGD instr data  */
extern struct addd_data_t   addd_data[];	/*  ADDD instr data  */
extern struct addd_data_t   cmpd_data[];	/*  CMPD instr data  */
extern struct addd_data_t   cvdf_data[];	/*  CVDF instr data  */
extern struct addd_data_t   cvdl_data[];	/*  CVDL instr data  */
extern struct addd_data_t   cvld_data[];	/*  CVLD instr data  */
extern struct addd_data_t   divd_data[];	/*  DIVD instr data  */
extern struct addd_data_t   ldfd_data[];	/*  LDFD instr data  */
extern struct addd_data_t   muld_data[];	/*  MULD instr data  */
extern struct addd_data_t   subd_data[];	/*  SUBD instr data  */
extern struct addd_data_t   tstd_data[];	/*  TSTD instr data  */
extern struct addd_data_t  pushd_data[];	/* PUSHD instr data  */
extern struct addd_data_t   dbl_null_data[];	/* dbl null data ptr */
extern struct addd_data_t   sgl_null_data[];	/* sgl null data ptr */



/*
 * test routines used in the demand paging tests
*/
extern int chk_dbl_acc();     /* check final dbl. Acc */
extern int chk_dbl_psl();     /* check PSL flags      */
extern int chk_dbl_s();       /* check stored value   */
extern int chk_sgl_acc();     /* check final sgl. Acc */
extern int chk_sgl_psl();     /* check PSL flags      */
extern int chk_sgl_s();       /* check stored value   */



/*
 * variables used with the event / demand paging / emulation tests
*/
extern int  op_code;				/* op-code of the inst.     */
extern char *op_name;				/* ascii instruction name   */
extern int  precision;				/* sgl / dbl instruction    */
extern int  acc_ld_size;			/* load sgl of dbl operand  */
extern int  acc_st_size;			/* store sgl of dbl operand */
extern int  no_ops;				/* # of operands used       */
extern int  op_type;				/* load / store type instr. */
extern int  d_to_s;				/* inst converts dbl to sgl */
extern int  s_to_d;				/* inst converts sgl to dbl */
extern int  sgl_op;				/* inst has sgl operand(s)  */
extern int  force_sp;				/* flag -set the Stack Ptr  */
extern int  min_shift;			        /* min # bytes to shift code */
extern int  inst_buf[];			        /* instruction code buffer  */
extern int  end_of_inst_buf;		        /* end address of code buff */
extern int  code_addr;				/* start of test code       */
extern int  addr_size;				/* # bytes in addr specifier*/
extern int  addr_1;				/* address specifier # 1    */
extern int  addr_2;				/* address specifier # 2    */
extern int  shift_count;			/* # bytes to shift inst_buf*/
extern int  no_page_faults;			/* # addr translation faults*/
extern int  exp_page_faults;			/* # addr trans faults exp'd*/
extern struct addd_data_t *data_ptr;		/* pointer to current data  */
extern int  (*test_ptr)();			/* ptr to results test func */

/*
 * demand paging data definitions
*/
extern int  os_b_op1;				/* offset to byte operand 1 */
extern int  os_b_op2;				/* offset to byte operand 2 */
extern int  os_op1;				/* offset to operand # 1    */
extern int  os_op2;				/* offset to operand # 2    */
extern int  os_ad_op1;				/* offset to op. pointer #1 */
extern int  os_ad_op2;				/* offset to op. pointer #2 */
extern int *adr_b_op1;				/* ptr. to byte operand 1   */
extern int *adr_bop1_lsw;			/* ptr. to byte op 1's LSW  */
extern int *adr_bop2_lsw;			/* ptr. to byte op 2's LSW  */
extern int *adr_b_op2;				/* ptr. to byte operand 2   */
extern int *adr_op1;				/* ptr. to operand #1       */
extern int *adr_op2;				/* ptr. to operand #2       */
extern int *adr_op1_lsw;			/* ptr. to dbl op #1's LSW  */
extern int *adr_op2_lsw;			/* ptr. to dbl op #2's LSW  */
extern int *adr_op1_ptr;			/* ptr. to pointer to op #1 */
extern int *adr_op2_ptr;			/* ptr. to pointer to op #2 */

/*
 * These definitions must agree with those in "diagnostics/INCLUDE"
*/
#define	DMP_PG_0   0x36000
#define	DMP_PG_1   DMP_PG_0+0x400
#define	DMP_PG_2   DMP_PG_1+0x400
#define	DMP_PG_3   DMP_PG_2+0x400
#define	DMP_PG_4   DMP_PG_3+0x400
#define	DMP_PG_5   DMP_PG_4+0x400
#define DMP_PG_6   DMP_PG_5+0x400
#define DMP_PG_7   DMP_PG_6+0x400

#define	DMP_OP_1   DMP_PG_3-4		/* 1st data word      */
#define	DMP_OP_2   DMP_PG_7-4		/* 2nd data word      */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.