standardize sccs keyword lines
[unix-history] / usr / src / old / as.vax / assizetab.c
CommitLineData
a38c4d91
RH
1/*
2 * Copyright (c) 1982 Regents of the University of California
3 */
4#ifndef lint
b590f970 5static char sccsid[] = "@(#)assizetab.c 4.4 %G%";
a38c4d91
RH
6#endif not lint
7
8#ifdef AS
9#include <stdio.h>
10#include "as.h"
11#include "assyms.h"
12
13/*
14 * Convert loader reference types (plus PCREL) to bytes and lg bytes
15 */
16int reflen[] = { /* {LEN*+PCREL} ==> number of bytes */
17 0, 0,
18 1, 1, /* LEN1, LEN1 + PCREL */
19 2, 2, /* LEN2, LEN2 + PCREL */
20 4, 4, /* LEN4, LEN2 + PCREL */
21 8, 8, /* LEN8, LEN2 + PCREL */
22 16, 16 /* LEN16, LEN16 + PCREL */
23};
24int lgreflen[] = { /* {LEN*+PCREL} ==> number of bytes */
25 -1, -1,
26 0, 0, /* LEN1, LEN1 + PCREL */
27 1, 1, /* LEN2, LEN2 + PCREL */
28 2, 2, /* LEN4, LEN2 + PCREL */
29 3, 3, /* LEN8, LEN2 + PCREL */
30 4, 4 /* LEN16, LEN16 + PCREL */
31};
32
33/*
34 * Convert sizes to loader reference types and type flags
35 */
36/*0 1 2 3 4 5 6 7 8*/
37/*
38 * Convert {1,2,4,8} into {LEN1, LEN2, LEN4, LEN8}
39 */
40int len124[] = {
41 0, LEN1, /* 0 */
42 LEN2, 0, /* 2 */
43 LEN4, 0, /* 4 */
44 0, 0, /* 6 */
45 LEN8, 0, /* 8 */
46 0, 0, /* 10 */
47 0, 0, /* 12 */
48 0, 0, /* 14 */
49 LEN16, 0 /* 16 */
50};
51/*
52 * Convert {1,2,4,8} into {bits to construct operands}
53 */
54char mod124[] = {
55 0, 0x00, /* 0 */
56 0x20, 0, /* 2 */
57 0x40, 0, /* 4 */
58 0, 0, /* 6 */
59 0, 0, /* 8 */
60 0, 0, /* 10 */
61 0, 0, /* 12 */
62 0, 0, /* 14 */
63 0, 0 /* 16 */
64};
65/*
66 * {1,2,4,8} into {TYPB, TYPW, TYPL, TYPQ}
67 */
68int type_124[] = {
69 0, TYPB, /* 0 */
70 TYPW, 0, /* 2 */
71 TYPL, 0, /* 4 */
72 0, 0, /* 6 */
73 TYPQ, 0, /* 8 */
74 0, 0, /* 10 */
75 0, 0, /* 12 */
76 0, 0, /* 14 */
77 TYPO, 0 /* 16 */
78};
79#endif AS
80/*
81 * Convert TYP[BWLQOFDGH] into {1 if relocation not OK}
82 */
83int ty_NORELOC[] = {
84 0, /* TYPB */
85 0, /* TYPW */
86 0, /* TYPL */
87 1, /* TYPQ */
88 1, /* TYPO */
89 1, /* TYPF */
90 1, /* TYPD */
91 1, /* TYPG */
92 1, /* TYPH */
93 1 /* TYPNONE */
94};
b590f970 95#ifndef ADB
a38c4d91
RH
96/*
97 * Convert TYP[BWLQOFDGH] into {1 if a floating point number}
98 */
99int ty_float[] = {
100 0, /* TYPB */
101 0, /* TYPW */
102 0, /* TYPL */
103 0, /* TYPQ */
104 0, /* TYPO */
105 1, /* TYPF */
106 1, /* TYPD */
107 1, /* TYPG */
108 1, /* TYPH */
109 0 /* TYPNONE */
110};
b590f970 111#endif
a38c4d91
RH
112#ifdef AS
113/*
114 * Convert TYP[BWLQOFDGH] into {LEN1 ... LEN16}
115 */
116int ty_LEN[] = {
117 LEN1, /* TYPB */
118 LEN2, /* TYPW */
119 LEN4, /* TYPL */
120 LEN8, /* TYPQ */
121 LEN16, /* TYPO */
122 LEN4, /* TYPF */
123 LEN8, /* TYPD */
124 LEN8, /* TYPG */
125 LEN16, /* TYPH */
126 0 /* TYPNONE */
127};
128#endif AS
129/*
130 * Convert TYP[BWLQOFDGH] into {1 ... 16}
131 */
132int ty_nbyte[] = {
133 1, /* TYPB */
134 2, /* TYPW */
135 4, /* TYPL */
136 8, /* TYPQ */
137 16, /* TYPO */
138 4, /* TYPF */
139 8, /* TYPD */
140 8, /* TYPG */
141 16, /* TYPH */
142 0 /* TYPNONE */
143};
b590f970 144#ifndef ADB
a38c4d91
RH
145/*
146 * Convert TYP[BWLQOFDGH] into lg{1 ... 16}
147 */
148int ty_nlg[] = {
149 0, /* TYPB */
150 1, /* TYPW */
151 2, /* TYPL */
152 3, /* TYPQ */
153 4, /* TYPO */
154 2, /* TYPF */
155 3, /* TYPD */
156 3, /* TYPG */
157 4, /* TYPH */
158 -1 /* TYPNONE */
159};
160/*
161 * Convert TYP[BWLQOFDGH] into strings
162 */
163char *ty_string[] = {
164 "byte", /* TYPB */
165 "word", /* TYPW */
166 "long", /* TYPL */
167 "quad", /* TYPQ */
168 "octa", /* TYPO */
169 "f_float", /* TYPF */
170 "d_float", /* TYPD */
171 "g_float", /* TYPG */
172 "h_float", /* TYPH */
173 "unpackd", /* TYPUNPACKED */
174 "??snark??" /* TYPNONE */
175};
b590f970 176#endif