xref: /original-bsd/old/adb/adb.vax/optab.c (revision 0b685140)
1 #include "defs.h"
2 static	char sccsid[] = "@(#)optab.c 4.1 05/14/81";
3 /*
4  * Argument access types
5  */
6 #define ACCA	(8<<3)	/* address only */
7 #define ACCR	(1<<3)	/* read */
8 #define ACCW	(2<<3)	/* write */
9 #define ACCM	(3<<3)	/* modify */
10 #define ACCB	(4<<3)	/* branch displacement */
11 #define ACCI	(5<<3)	/* XFC code */
12 
13 /*
14  * Argument data types
15  */
16 #define TYPB	0	/* byte */
17 #define TYPW	1	/* word */
18 #define TYPL	2	/* long */
19 #define TYPQ	3	/* quad */
20 #define TYPF	4	/* floating */
21 #define TYPD	5	/* double floating */
22 
23 
24 TYPE	struct optab	*OPTAB;
25 struct optab {
26 	char *iname;
27 	char val;
28 	char nargs;
29 	char argtype[6];
30 } optab[] = {
31 #define OP(a,b,c,d,e,f,g,h,i) {a,b,c,d,e,f,g,h,i}
32 #include "../as/instrs"
33 0};
34 
35 #define SYSTAB struct systab
36 SYSTAB {
37 	int	argc;
38 	char	*sname;
39 } systab[] = {
40 	1, "indir",
41 	0, "exit",
42 	0, "fork",
43 	2, "read",
44 	2, "write",
45 	2, "open",
46 	0, "close",
47 	0, "wait",
48 	2, "creat",
49 	2, "link",
50 	1, "unlink",
51 	2, "exec",
52 	1, "chdir",
53 	0, "time",
54 	3, "mknod",
55 	2, "chmod",
56 	2, "chown",
57 	1, "break",
58 	2, "stat",
59 	2, "seek",
60 	0, "getpid",
61 	3, "mount",
62 	1, "umount",
63 	0, "setuid",
64 	0, "getuid",
65 	0, "stime",
66 	3, "ptrace",
67 	0, "alarm",
68 	1, "fstat",
69 	0, "pause",
70 	1, "30",
71 	1, "stty",
72 	1, "gtty",
73 	0, "access",
74 	0, "nice",
75 	0, "sleep",
76 	0, "sync",
77 	1, "kill",
78 	0, "csw",
79 	0, "setpgrp",
80 	0, "tell",
81 	0, "dup",
82 	0, "pipe",
83 	1, "times",
84 	4, "profil",
85 	0, "tiu",
86 	0, "setgid",
87 	0, "getgid",
88 	2, "signal",
89 	0, "49",
90 	0, "50",
91 	0, "51",
92 	0, "52",
93 	0, "53",
94 	0, "54",
95 	0, "55",
96 	0, "56",
97 	0, "57",
98 	0, "58",
99 	0, "59",
100 	0, "60",
101 	0, "61",
102 	0, "62",
103 	0, "63",
104 };
105 
106 STRING	regname[] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
107 					"r8", "r9", "r10","r11","ap", "fp", "sp", "pc"};
108 STRING	fltimm[] = {
109 "0.5", "0.5625", "0.625", "0.6875", "0.75", "0.8125", "0.875", "0.9375",
110 "1.0", "1.125", "1.25", "1.375", "1.5", "1.625", "1.75", "1.875",
111 "2.0", "2.25", "2.5", "2.75", "3.0", "3.25", "3.5", "3.75",
112 "4.0", "4.5", "5.0", "5.5", "6.0", "6.5", "7.0", "7.5",
113 "8.0", "9.0", "10.0", "11.0", "12.0", "13.0", "14.0", "15.0",
114 "16.0", "18.0", "20.0", "22.0", "24.0", "26.0", "28.0", "30.0",
115 "32.0", "36.0", "40.0", "44.0", "48.0", "52.0", "56.0", "60.0",
116 "64.0", "72.0", "80.0", "88.0", "96.0", "104.0", "112.0", "120.0"
117 };
118 
119 char *fmtr = {"%r"};
120 char *fmtR = {"%R"};
121