]>
Commit | Line | Data |
---|---|---|
6436a76a PS |
1 | =================================================================== |
2 | RCS file: /cvs/src/src/opcodes/sparc-opc.c,v | |
3 | retrieving revision 1.9 | |
4 | retrieving revision 1.10 | |
5 | diff -u -r1.9 -r1.10 | |
6 | --- src/opcodes/sparc-opc.c 2004/01/18 23:46:32 1.9 | |
7 | +++ src/opcodes/sparc-opc.c 2004/04/20 10:23:51 1.10 | |
8 | @@ -1273,110 +1273,72 @@ | |
9 | #define FM_DF 2 /* v9 */ | |
10 | #define FM_QF 3 /* v9 */ | |
11 | ||
12 | -#define fmovicc(opcode, fpsize, cond, flags) /* v9 */ \ | |
13 | -{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z,f,g", flags, v9 }, \ | |
14 | -{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z,f,g", flags, v9 } | |
15 | - | |
16 | -#define fmovfcc(opcode, fpsize, fcond, flags) /* v9 */ \ | |
17 | -{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags, v9 }, \ | |
18 | -{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags, v9 }, \ | |
19 | -{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags, v9 }, \ | |
20 | -{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags, v9 } | |
21 | +#define fmoviccx(opcode, fpsize, args, cond, flags) /* v9 */ \ | |
22 | +{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z," args, flags, v9 }, \ | |
23 | +{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z," args, flags, v9 } | |
24 | + | |
25 | +#define fmovfccx(opcode, fpsize, args, fcond, flags) /* v9 */ \ | |
26 | +{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags, v9 }, \ | |
27 | +{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags, v9 }, \ | |
28 | +{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags, v9 }, \ | |
29 | +{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags, v9 } | |
30 | ||
31 | /* FIXME: use fmovicc/fmovfcc? */ /* v9 */ | |
32 | -#define fmovcc(opcode, fpsize, cond, fcond, flags) /* v9 */ \ | |
33 | -{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z,f,g", flags | F_FLOAT, v9 }, \ | |
34 | -{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6,f,g", flags | F_FLOAT, v9 }, \ | |
35 | -{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z,f,g", flags | F_FLOAT, v9 }, \ | |
36 | -{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7,f,g", flags | F_FLOAT, v9 }, \ | |
37 | -{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8,f,g", flags | F_FLOAT, v9 }, \ | |
38 | -{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9,f,g", flags | F_FLOAT, v9 } | |
39 | - | |
40 | -/* v9 */ fmovcc ("fmovda", FM_DF, CONDA, FCONDA, 0), | |
41 | -/* v9 */ fmovcc ("fmovqa", FM_QF, CONDA, FCONDA, 0), | |
42 | -/* v9 */ fmovcc ("fmovsa", FM_SF, CONDA, FCONDA, 0), | |
43 | -/* v9 */ fmovicc ("fmovdcc", FM_DF, CONDCC, 0), | |
44 | -/* v9 */ fmovicc ("fmovqcc", FM_QF, CONDCC, 0), | |
45 | -/* v9 */ fmovicc ("fmovscc", FM_SF, CONDCC, 0), | |
46 | -/* v9 */ fmovicc ("fmovdcs", FM_DF, CONDCS, 0), | |
47 | -/* v9 */ fmovicc ("fmovqcs", FM_QF, CONDCS, 0), | |
48 | -/* v9 */ fmovicc ("fmovscs", FM_SF, CONDCS, 0), | |
49 | -/* v9 */ fmovcc ("fmovde", FM_DF, CONDE, FCONDE, 0), | |
50 | -/* v9 */ fmovcc ("fmovqe", FM_QF, CONDE, FCONDE, 0), | |
51 | -/* v9 */ fmovcc ("fmovse", FM_SF, CONDE, FCONDE, 0), | |
52 | -/* v9 */ fmovcc ("fmovdg", FM_DF, CONDG, FCONDG, 0), | |
53 | -/* v9 */ fmovcc ("fmovqg", FM_QF, CONDG, FCONDG, 0), | |
54 | -/* v9 */ fmovcc ("fmovsg", FM_SF, CONDG, FCONDG, 0), | |
55 | -/* v9 */ fmovcc ("fmovdge", FM_DF, CONDGE, FCONDGE, 0), | |
56 | -/* v9 */ fmovcc ("fmovqge", FM_QF, CONDGE, FCONDGE, 0), | |
57 | -/* v9 */ fmovcc ("fmovsge", FM_SF, CONDGE, FCONDGE, 0), | |
58 | -/* v9 */ fmovicc ("fmovdgeu", FM_DF, CONDGEU, F_ALIAS), | |
59 | -/* v9 */ fmovicc ("fmovqgeu", FM_QF, CONDGEU, F_ALIAS), | |
60 | -/* v9 */ fmovicc ("fmovsgeu", FM_SF, CONDGEU, F_ALIAS), | |
61 | -/* v9 */ fmovicc ("fmovdgu", FM_DF, CONDGU, 0), | |
62 | -/* v9 */ fmovicc ("fmovqgu", FM_QF, CONDGU, 0), | |
63 | -/* v9 */ fmovicc ("fmovsgu", FM_SF, CONDGU, 0), | |
64 | -/* v9 */ fmovcc ("fmovdl", FM_DF, CONDL, FCONDL, 0), | |
65 | -/* v9 */ fmovcc ("fmovql", FM_QF, CONDL, FCONDL, 0), | |
66 | -/* v9 */ fmovcc ("fmovsl", FM_SF, CONDL, FCONDL, 0), | |
67 | -/* v9 */ fmovcc ("fmovdle", FM_DF, CONDLE, FCONDLE, 0), | |
68 | -/* v9 */ fmovcc ("fmovqle", FM_QF, CONDLE, FCONDLE, 0), | |
69 | -/* v9 */ fmovcc ("fmovsle", FM_SF, CONDLE, FCONDLE, 0), | |
70 | -/* v9 */ fmovicc ("fmovdleu", FM_DF, CONDLEU, 0), | |
71 | -/* v9 */ fmovicc ("fmovqleu", FM_QF, CONDLEU, 0), | |
72 | -/* v9 */ fmovicc ("fmovsleu", FM_SF, CONDLEU, 0), | |
73 | -/* v9 */ fmovfcc ("fmovdlg", FM_DF, FCONDLG, 0), | |
74 | -/* v9 */ fmovfcc ("fmovqlg", FM_QF, FCONDLG, 0), | |
75 | -/* v9 */ fmovfcc ("fmovslg", FM_SF, FCONDLG, 0), | |
76 | -/* v9 */ fmovicc ("fmovdlu", FM_DF, CONDLU, F_ALIAS), | |
77 | -/* v9 */ fmovicc ("fmovqlu", FM_QF, CONDLU, F_ALIAS), | |
78 | -/* v9 */ fmovicc ("fmovslu", FM_SF, CONDLU, F_ALIAS), | |
79 | -/* v9 */ fmovcc ("fmovdn", FM_DF, CONDN, FCONDN, 0), | |
80 | -/* v9 */ fmovcc ("fmovqn", FM_QF, CONDN, FCONDN, 0), | |
81 | -/* v9 */ fmovcc ("fmovsn", FM_SF, CONDN, FCONDN, 0), | |
82 | -/* v9 */ fmovcc ("fmovdne", FM_DF, CONDNE, FCONDNE, 0), | |
83 | -/* v9 */ fmovcc ("fmovqne", FM_QF, CONDNE, FCONDNE, 0), | |
84 | -/* v9 */ fmovcc ("fmovsne", FM_SF, CONDNE, FCONDNE, 0), | |
85 | -/* v9 */ fmovicc ("fmovdneg", FM_DF, CONDNEG, 0), | |
86 | -/* v9 */ fmovicc ("fmovqneg", FM_QF, CONDNEG, 0), | |
87 | -/* v9 */ fmovicc ("fmovsneg", FM_SF, CONDNEG, 0), | |
88 | -/* v9 */ fmovcc ("fmovdnz", FM_DF, CONDNZ, FCONDNZ, F_ALIAS), | |
89 | -/* v9 */ fmovcc ("fmovqnz", FM_QF, CONDNZ, FCONDNZ, F_ALIAS), | |
90 | -/* v9 */ fmovcc ("fmovsnz", FM_SF, CONDNZ, FCONDNZ, F_ALIAS), | |
91 | -/* v9 */ fmovfcc ("fmovdo", FM_DF, FCONDO, 0), | |
92 | -/* v9 */ fmovfcc ("fmovqo", FM_QF, FCONDO, 0), | |
93 | -/* v9 */ fmovfcc ("fmovso", FM_SF, FCONDO, 0), | |
94 | -/* v9 */ fmovicc ("fmovdpos", FM_DF, CONDPOS, 0), | |
95 | -/* v9 */ fmovicc ("fmovqpos", FM_QF, CONDPOS, 0), | |
96 | -/* v9 */ fmovicc ("fmovspos", FM_SF, CONDPOS, 0), | |
97 | -/* v9 */ fmovfcc ("fmovdu", FM_DF, FCONDU, 0), | |
98 | -/* v9 */ fmovfcc ("fmovqu", FM_QF, FCONDU, 0), | |
99 | -/* v9 */ fmovfcc ("fmovsu", FM_SF, FCONDU, 0), | |
100 | -/* v9 */ fmovfcc ("fmovdue", FM_DF, FCONDUE, 0), | |
101 | -/* v9 */ fmovfcc ("fmovque", FM_QF, FCONDUE, 0), | |
102 | -/* v9 */ fmovfcc ("fmovsue", FM_SF, FCONDUE, 0), | |
103 | -/* v9 */ fmovfcc ("fmovdug", FM_DF, FCONDUG, 0), | |
104 | -/* v9 */ fmovfcc ("fmovqug", FM_QF, FCONDUG, 0), | |
105 | -/* v9 */ fmovfcc ("fmovsug", FM_SF, FCONDUG, 0), | |
106 | -/* v9 */ fmovfcc ("fmovduge", FM_DF, FCONDUGE, 0), | |
107 | -/* v9 */ fmovfcc ("fmovquge", FM_QF, FCONDUGE, 0), | |
108 | -/* v9 */ fmovfcc ("fmovsuge", FM_SF, FCONDUGE, 0), | |
109 | -/* v9 */ fmovfcc ("fmovdul", FM_DF, FCONDUL, 0), | |
110 | -/* v9 */ fmovfcc ("fmovqul", FM_QF, FCONDUL, 0), | |
111 | -/* v9 */ fmovfcc ("fmovsul", FM_SF, FCONDUL, 0), | |
112 | -/* v9 */ fmovfcc ("fmovdule", FM_DF, FCONDULE, 0), | |
113 | -/* v9 */ fmovfcc ("fmovqule", FM_QF, FCONDULE, 0), | |
114 | -/* v9 */ fmovfcc ("fmovsule", FM_SF, FCONDULE, 0), | |
115 | -/* v9 */ fmovicc ("fmovdvc", FM_DF, CONDVC, 0), | |
116 | -/* v9 */ fmovicc ("fmovqvc", FM_QF, CONDVC, 0), | |
117 | -/* v9 */ fmovicc ("fmovsvc", FM_SF, CONDVC, 0), | |
118 | -/* v9 */ fmovicc ("fmovdvs", FM_DF, CONDVS, 0), | |
119 | -/* v9 */ fmovicc ("fmovqvs", FM_QF, CONDVS, 0), | |
120 | -/* v9 */ fmovicc ("fmovsvs", FM_SF, CONDVS, 0), | |
121 | -/* v9 */ fmovcc ("fmovdz", FM_DF, CONDZ, FCONDZ, F_ALIAS), | |
122 | -/* v9 */ fmovcc ("fmovqz", FM_QF, CONDZ, FCONDZ, F_ALIAS), | |
123 | -/* v9 */ fmovcc ("fmovsz", FM_SF, CONDZ, FCONDZ, F_ALIAS), | |
124 | - | |
125 | +#define fmovccx(opcode, fpsize, args, cond, fcond, flags) /* v9 */ \ | |
126 | +{ opcode, F3F(2, 0x35, 0x100+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x100+fpsize))|MCOND(~cond,~0), "z," args, flags | F_FLOAT, v9 }, \ | |
127 | +{ opcode, F3F(2, 0x35, 0x000+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x000+fpsize))|MCOND(~fcond,~0), "6," args, flags | F_FLOAT, v9 }, \ | |
128 | +{ opcode, F3F(2, 0x35, 0x180+fpsize)|MCOND(cond,0), F3F(~2, ~0x35, ~(0x180+fpsize))|MCOND(~cond,~0), "Z," args, flags | F_FLOAT, v9 }, \ | |
129 | +{ opcode, F3F(2, 0x35, 0x040+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x040+fpsize))|MCOND(~fcond,~0), "7," args, flags | F_FLOAT, v9 }, \ | |
130 | +{ opcode, F3F(2, 0x35, 0x080+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x080+fpsize))|MCOND(~fcond,~0), "8," args, flags | F_FLOAT, v9 }, \ | |
131 | +{ opcode, F3F(2, 0x35, 0x0c0+fpsize)|MCOND(fcond,0), F3F(~2, ~0x35, ~(0x0c0+fpsize))|MCOND(~fcond,~0), "9," args, flags | F_FLOAT, v9 } | |
132 | + | |
133 | +#define fmovicc(suffix, cond, flags) /* v9 */ \ | |
134 | +fmoviccx("fmovd" suffix, FM_DF, "B,H", cond, flags), \ | |
135 | +fmoviccx("fmovq" suffix, FM_QF, "R,J", cond, flags), \ | |
136 | +fmoviccx("fmovs" suffix, FM_SF, "f,g", cond, flags) | |
137 | + | |
138 | +#define fmovfcc(suffix, fcond, flags) /* v9 */ \ | |
139 | +fmovfccx("fmovd" suffix, FM_DF, "B,H", fcond, flags), \ | |
140 | +fmovfccx("fmovq" suffix, FM_QF, "R,J", fcond, flags), \ | |
141 | +fmovfccx("fmovs" suffix, FM_SF, "f,g", fcond, flags) | |
142 | + | |
143 | +#define fmovcc(suffix, cond, fcond, flags) /* v9 */ \ | |
144 | +fmovccx("fmovd" suffix, FM_DF, "B,H", cond, fcond, flags), \ | |
145 | +fmovccx("fmovq" suffix, FM_QF, "R,J", cond, fcond, flags), \ | |
146 | +fmovccx("fmovs" suffix, FM_SF, "f,g", cond, fcond, flags) | |
147 | + | |
148 | +/* v9 */ fmovcc ("a", CONDA, FCONDA, 0), | |
149 | +/* v9 */ fmovicc ("cc", CONDCC, 0), | |
150 | +/* v9 */ fmovicc ("cs", CONDCS, 0), | |
151 | +/* v9 */ fmovcc ("e", CONDE, FCONDE, 0), | |
152 | +/* v9 */ fmovcc ("g", CONDG, FCONDG, 0), | |
153 | +/* v9 */ fmovcc ("ge", CONDGE, FCONDGE, 0), | |
154 | +/* v9 */ fmovicc ("geu", CONDGEU, F_ALIAS), | |
155 | +/* v9 */ fmovicc ("gu", CONDGU, 0), | |
156 | +/* v9 */ fmovcc ("l", CONDL, FCONDL, 0), | |
157 | +/* v9 */ fmovcc ("le", CONDLE, FCONDLE, 0), | |
158 | +/* v9 */ fmovicc ("leu", CONDLEU, 0), | |
159 | +/* v9 */ fmovfcc ("lg", FCONDLG, 0), | |
160 | +/* v9 */ fmovicc ("lu", CONDLU, F_ALIAS), | |
161 | +/* v9 */ fmovcc ("n", CONDN, FCONDN, 0), | |
162 | +/* v9 */ fmovcc ("ne", CONDNE, FCONDNE, 0), | |
163 | +/* v9 */ fmovicc ("neg", CONDNEG, 0), | |
164 | +/* v9 */ fmovcc ("nz", CONDNZ, FCONDNZ, F_ALIAS), | |
165 | +/* v9 */ fmovfcc ("o", FCONDO, 0), | |
166 | +/* v9 */ fmovicc ("pos", CONDPOS, 0), | |
167 | +/* v9 */ fmovfcc ("u", FCONDU, 0), | |
168 | +/* v9 */ fmovfcc ("ue", FCONDUE, 0), | |
169 | +/* v9 */ fmovfcc ("ug", FCONDUG, 0), | |
170 | +/* v9 */ fmovfcc ("uge", FCONDUGE, 0), | |
171 | +/* v9 */ fmovfcc ("ul", FCONDUL, 0), | |
172 | +/* v9 */ fmovfcc ("ule", FCONDULE, 0), | |
173 | +/* v9 */ fmovicc ("vc", CONDVC, 0), | |
174 | +/* v9 */ fmovicc ("vs", CONDVS, 0), | |
175 | +/* v9 */ fmovcc ("z", CONDZ, FCONDZ, F_ALIAS), | |
176 | + | |
177 | +#undef fmoviccx /* v9 */ | |
178 | +#undef fmovfccx /* v9 */ | |
179 | +#undef fmovccx /* v9 */ | |
180 | #undef fmovicc /* v9 */ | |
181 | #undef fmovfcc /* v9 */ | |
182 | #undef fmovcc /* v9 */ |