Commit | Line | Data |
---|---|---|
645a3a24 | 1 | #include "defs.h" |
64342bf9 | 2 | static char sccsid[] = "@(#)optab.c 4.2 %G%"; |
645a3a24 BJ |
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} | |
64342bf9 | 32 | #include "instrs" |
645a3a24 BJ |
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"}; |