file reorg, pathnames.h, paths.h
[unix-history] / usr / src / old / dbx / ops.tahoe.c
CommitLineData
2265b224
SL
1/*
2 * Copyright (c) 1985 Regents of the University of California.
3 * All rights reserved. The Berkeley software License Agreement
4 * specifies the terms and conditions for redistribution.
5 */
6
7#ifndef lint
d969d8a3 8static char sccsid[] = "@(#)ops.tahoe.c 5.5 (Berkeley) %G%";
2265b224
SL
9#endif not lint
10
11/*
12 * Machine operators.
13 */
14
15#include "defs.h"
16#include "ops.h"
17
18#ifndef public
19typedef unsigned char Opcode;
20
21/*
22 * Opcode definitions.
23 */
24
25/*
26 * Argument access types
27 */
28#define ACCA (8<<3) /* address only */
29#define ACCR (1<<3) /* read */
30#define ACCW (2<<3) /* write */
31#define ACCM (3<<3) /* modify */
32#define ACCB (4<<3) /* branch displacement */
33#define ACCI (5<<3) /* XFC code */
34
35/*
36 * Argument data types
37 */
38#define TYPB 0 /* byte */
39#define TYPW 1 /* word */
40#define TYPL 2 /* long */
41#define TYPQ 3 /* quad */
42#define TYPF 4 /* float */
43#define TYPD 5 /* double */
44
45/*
46 * Addressing modes.
47 */
48#define LITSHORT 0x0 /* short literals */
49#define LITUPTO31 0x1
50#define LITUPTO47 0x2
51#define LITUPTO63 0x3
52#define INDEX 0x4 /* i[r] */
53#define REG 0x5 /* r */
54#define REGDEF 0x6 /* (r) */
55#define AUTODEC 0x7 /* -(r) */
56#define AUTOINC 0x8 /* (r)+ */
57#define AUTOINCDEF 0x9 /* *(r)+ */
58#define BYTEDISP 0xA /* BD(r) */
59#define BYTEDISPDEF 0xB /* *BD(r) */
60#define WORDDISP 0xC /* WD(r) */
61#define WORDDISPDEF 0xD /* *WD(r) */
62#define LONGDISP 0xE /* LD(r) */
63#define LONGDISPDEF 0xF /* *LD(r) */
64
65#define is_branch_disp(arg) ((arg & ACCB) != 0)
66#define typelen(arg) (arg & 07)
67#define regnm(mode) (mode & 0xF)
68#define addrmode(mode) (mode >> 4)
69
70/*
71 * Certain opcodes values are used either in calculating
72 * the next address a process will go to, or for other
73 * random reasons -- these are defined here.
74 */
75#define O_AOBLEQ 0x3f
76#define O_AOBLSS 0x2f
77#define O_BBC 0x1e
78#define O_BBS 0x0e
79#define O_BBSSI 0x5f
80#define O_BCC 0xf1
81#define O_BCS 0xe1
82#define O_BEQL 0x31
83#define O_BGEQ 0x81
84#define O_BGEQU 0xe1
85#define O_BGTR 0x41
86#define O_BGTRU 0xa1
87#define O_BLEQ 0x51
88#define O_BLEQU 0xb1
89#define O_BLSS 0x91
90#define O_BLSSU 0xf1
91#define O_BNEQ 0x21
92#define O_BPT 0x30
93#define O_BRB 0x11
94#define O_BRW 0x13
95#define O_BTCS 0xce
96#define O_BVC 0xc1
97#define O_BVS 0xd1
98#define O_CALLF 0xfe
99#define O_CALLS 0xbf
100#define O_CASEL 0xfc
101#define O_JMP 0x71
102#define O_KCALL 0xcf
103#define O_RET 0x40
104
105/*
106 * Operator information structure.
107 */
108typedef struct {
109 char *iname;
110 char val;
111 char numargs;
112 char argtype[6];
113} Optab;
114
115#define SYSSIZE 151 /* # of system calls */
116#endif
117
86872dab 118#ifndef ADBINSTRS
d969d8a3 119#define ADBINSTRS "../../bin/adb/adb.tahoe/instrs.adb"
86872dab
DS
120#endif
121
2265b224
SL
122public Optab optab[] = {
123#define OP(a,b,c,d,e,f,g,h,i) {a,b,c,d,e,f,g,h,i}
86872dab 124#include ADBINSTRS
2265b224
SL
1250};
126
127/*
128 * Register names.
129 */
130
131public String regname[] = {
132 "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
133 "r8", "r9", "r10","r11","r12", "fp", "sp", "pc"
134};
135
136public String systab[SYSSIZE] = {
137 "indir", "exit", "fork", "read",
138 "write", "open", "close", "owait",
139 "creat", "link", "unlink", "execv",
140 "chdir", "otime", "mknod", "chmod",
141 "chown", "obreak", "ostat", "lseek",
142 "getpid", "mount", "umount", "osetuid",
143 "getuid", "ostime", "ptrace", "oalarm",
144 "ofstat", "opause", "outime", "ostty",
145 "ogtty", "access", "onice", "oftime",
146 "sync", "kill", "stat", "osetpgrp",
147 "lstat", "dup", "pipe", "otimes",
148 "profil", 0, "osetgid", "getgid",
149 "osig", 0, 0, "acct",
150 "ophys", "olock", "ioctl", "reboot",
151 "ompxchan", "symlink", "readlink", "execve",
152 "umask", "chroot", "fstat", 0,
153 "getpagesize", "mremap", "vfork", "ovread",
154 "ovwrite", "sbrk", "sstk", "mmap",
155 "ovadvise", "munmap", "mprotect", "madvise",
156 "vhangup", "ovlimit", "mincore", "getgroups",
157 "setgroups", "getpgrp", "setpgrp", "setitimer",
158 "wait", "swapon", "getitimer", "gethostname",
159 "sethostname", "getdtablesize","dup2", "getdopt",
160 "fcntl", "select", "setdopt", "fsync",
161 "setpriority", "socket", "connect", "accept",
162 "getpriority", "send", "recv", "osocketaddr",
163 "bind", "setsockopt", "listen", "ovtimes",
164 "sigvec", "sigblock", "sigsetmask", "sigpause",
165 "sigstack", "recvmsg", "sendmsg", "vtrace",
166 "gettimeofday", "getrusage", "getsockopt", "resuba",
167 "readv", "writev", "settimeofday", "fchown",
168 "fchmod", "recvfrom", "setreuid", "setregid",
169 "rename", "truncate", "ftruncate", "flock",
170 0, "sendto", "shutdown", "socketpair",
171 "mkdir", "rmdir", "utimes", 0,
172 0, "getpeername", "gethostid", "sethostid",
173 "getrlimit", "setrlimit", "killpg", 0,
174 "quota", "qquota", "getsockname",
175};