|
|
1.1 root 1: /* Copyright (c) 1979 Regents of the University of California */
2: #include <stdio.h>
3: #include "as.h"
4:
5: #define OP(name,opcode,nargs,arg1,arg2,arg3,arg4,arg5,arg6) \
6: { \
7: name,(nargs==0 ? INST0:INSTn), opcode,nargs, \
8: arg1,arg2,arg3,arg4,arg5,arg6 \
9: }
10: #define PSEUDO(name, type, tag) \
11: { \
12: name, tag, type \
13: }
14:
15: readonly struct instab instab[] = {
16: PSEUDO(".space", 0, ISPACE),
17: PSEUDO(".byte", 0, IBYTE),
18: PSEUDO(".word", 0, IWORD),
19: PSEUDO(".long", 0, ILONG),
20: PSEUDO(".int", 0, IINT),
21: PSEUDO(".data", 0, IDATA),
22: PSEUDO(".globl", 0, IGLOBAL),
23: PSEUDO(".set", 0, ISET),
24: PSEUDO(".text", 0, ITEXT),
25: PSEUDO(".comm", 0, ICOMM),
26: PSEUDO(".lcomm", 0, ILCOMM),
27: PSEUDO(".lsym", 0, ILSYM),
28: PSEUDO(".align", 0, IALIGN),
29: PSEUDO(".float", 0, IFLOAT),
30: PSEUDO(".double", 0, IDOUBLE),
31: PSEUDO(".org", 0, IORG),
32: PSEUDO(".stab", 0, ISTAB),
33: PSEUDO(".stabs", 0, ISTABSTR),
34: PSEUDO(".stabn", 0, ISTABNONE),
35: PSEUDO(".stabd", 0, ISTABDOT),
36: PSEUDO(".ascii", 0, IASCII),
37: PSEUDO(".asciz", 0, IASCIZ),
38: PSEUDO(".file", 0, IFILE),
39: PSEUDO(".line", 0, ILINENO),
40: PSEUDO(".ABORT", 0, IABORT),
41:
42: PSEUDO("r0", 0, REG),
43: PSEUDO("r1", 1, REG),
44: PSEUDO("r2", 2, REG),
45: PSEUDO("r3", 3, REG),
46: PSEUDO("r4", 4, REG),
47: PSEUDO("r5", 5, REG),
48: PSEUDO("r6", 6, REG),
49: PSEUDO("r7", 7, REG),
50: PSEUDO("r8", 8, REG),
51: PSEUDO("r9", 9, REG),
52: PSEUDO("r10", 10, REG),
53: PSEUDO("r11", 11, REG),
54: PSEUDO("r12", 12, REG),
55: PSEUDO("r13", 13, REG),
56: PSEUDO("r14", 14, REG),
57: PSEUDO("r15", 15, REG),
58: PSEUDO("ap", 12, REG),
59: PSEUDO("fp", 13, REG),
60: PSEUDO("sp", 14, REG),
61: PSEUDO("pc", 15, REG),
62:
63: PSEUDO("jcc", 0x1e, IJXXX),
64: PSEUDO("jcs", 0x1f, IJXXX),
65: PSEUDO("jeql", 0x13, IJXXX),
66: PSEUDO("jeqlu", 0x13, IJXXX),
67: PSEUDO("jgeq", 0x18, IJXXX),
68: PSEUDO("jgequ", 0x1e, IJXXX),
69: PSEUDO("jgtr", 0x14, IJXXX),
70: PSEUDO("jgtru", 0x1a, IJXXX),
71: PSEUDO("jleq", 0x15, IJXXX),
72: PSEUDO("jlequ", 0x1b, IJXXX),
73: PSEUDO("jlss", 0x19, IJXXX),
74: PSEUDO("jlssu", 0x1f, IJXXX),
75: PSEUDO("jneq", 0x12, IJXXX),
76: PSEUDO("jnequ", 0x12, IJXXX),
77: PSEUDO("jvc", 0x1c, IJXXX),
78: PSEUDO("jvs", 0x1d, IJXXX),
79: PSEUDO("jbr", 0x11, IJXXX),
80: PSEUDO("jbc", 0xe1, IJXXX),
81: PSEUDO("jbs", 0xe0, IJXXX),
82: PSEUDO("jbcc", 0xe5, IJXXX),
83: PSEUDO("jbsc", 0xe4, IJXXX),
84: PSEUDO("jbcs", 0xe3, IJXXX),
85: PSEUDO("jbss", 0xe2, IJXXX),
86: PSEUDO("jlbc", 0xe9, IJXXX),
87: PSEUDO("jlbs", 0xe8, IJXXX),
88:
89: #include "instrs"
90:
91: 0
92: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.