BSD 4 development
[unix-history] / .ref-5cb41021d721f4e0ac572d592613f963e495d1ff / usr / src / old / sdb / optab.c
CommitLineData
e416c913
BJ
1static char sccsid[] = "@(#)optab.c 4.1 %G%";
2#include "defs.h"
3
4/*
5 * Instruction printing routines.
6 * MACHINE DEPENDENT
7 *
8 */
9
10/*
11 * Argument access types
12 */
13#define ACCA (8<<3) /* address only */
14#define ACCR (1<<3) /* read */
15#define ACCW (2<<3) /* write */
16#define ACCM (3<<3) /* modify */
17#define ACCB (4<<3) /* branch displacement */
18#define ACCI (5<<3) /* XFC code */
19
20/*
21 * Argument data types
22 */
23#define TYPB 0 /* byte */
24#define TYPW 1 /* word */
25#define TYPL 2 /* long */
26#define TYPQ 3 /* quad */
27#define TYPF 4 /* floating */
28#define TYPD 5 /* double floating */
29
30
31TYPE struct optab *OPTAB;
32struct optab {
33 char *iname;
34 char val;
35 char nargs;
36 char argtype[6];
37} optab[] = {
38#define OP(a,b,c,d,e,f,g,h,i) {a,b,c,d,e,f,g,h,i}
39#include "../as/instrs"
400};
41
42#define SYSTAB struct systab
43SYSTAB {
44 int argc;
45 char *sname;
46} systab[] = {
47 1, "indir",
48 0, "exit",
49 0, "fork",
50 2, "read",
51 2, "write",
52 2, "open",
53 0, "close",
54 0, "wait",
55 2, "creat",
56 2, "link",
57 1, "unlink",
58 2, "exec",
59 1, "chdir",
60 0, "time",
61 3, "mknod",
62 2, "chmod",
63 2, "chown",
64 1, "break",
65 2, "stat",
66 2, "seek",
67 0, "getpid",
68 3, "mount",
69 1, "umount",
70 0, "setuid",
71 0, "getuid",
72 0, "stime",
73 3, "ptrace",
74 0, "alarm",
75 1, "fstat",
76 0, "pause",
77 1, "30",
78 1, "stty",
79 1, "gtty",
80 0, "access",
81 0, "nice",
82 0, "sleep",
83 0, "sync",
84 1, "kill",
85 0, "csw",
86 0, "setpgrp",
87 0, "tell",
88 0, "dup",
89 0, "pipe",
90 1, "times",
91 4, "profil",
92 0, "tiu",
93 0, "setgid",
94 0, "getgid",
95 2, "signal",
96 0, "49",
97 0, "50",
98 0, "51",
99 0, "52",
100 0, "53",
101 0, "54",
102 0, "55",
103 0, "56",
104 0, "57",
105 0, "58",
106 0, "59",
107 0, "60",
108 0, "61",
109 0, "62",
110 0, "63",
111};
112
113STRING regname[] = { "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
114 "r8", "r9", "r10","r11","ap", "fp", "sp", "pc"};
115STRING fltimm[] = {
116"0.5", "0.5625", "0.625", "0.6875", "0.75", "0.8125", "0.875", "0.9375",
117"1.0", "1.125", "1.25", "1.375", "1.5", "1.625", "1.75", "1.875",
118"2.0", "2.25", "2.5", "2.75", "3.0", "3.25", "3.5", "3.75",
119"4.0", "4.5", "5.0", "5.5", "6.0", "6.5", "7.0", "7.5",
120"8.0", "9.0", "10.0", "11.0", "12.0", "13.0", "14.0", "15.0",
121"16.0", "18.0", "20.0", "22.0", "24.0", "26.0", "28.0", "30.0",
122"32.0", "36.0", "40.0", "44.0", "48.0", "52.0", "56.0", "60.0",
123"64.0", "72.0", "80.0", "88.0", "96.0", "104.0", "112.0", "120.0"
124};
125
126char *fmtr = {"%r"};
127char *fmtR = {"%R"};
128
129REGLIST reglist [] = {
130 "p1lr", P1LR,
131 "p1br",P1BR,
132 "p0lr", P0LR,
133 "p0br",P0BR,
134 "ksp",KSP,
135 "esp",ESP,
136 "ssp",SSP,
137 "psl", PSL,
138 "pc", PC,
139 "usp",USP,
140 "fp", FP,
141 "ap", AP,
142 "r11", R11,
143 "r10", R10,
144 "r9", R9,
145 "r8", R8,
146 "r7", R7,
147 "r6", R6,
148 "r5", R5,
149 "r4", R4,
150 "r3", R3,
151 "r2", R2,
152 "r1", R1,
153 "r0", R0,
154};
155