]> git.pld-linux.org Git - packages/binutils.git/blame - binutils-gas-sparc64.patch
- fixes in opcodes.
[packages/binutils.git] / binutils-gas-sparc64.patch
CommitLineData
6436a76a
PS
1===================================================================
2RCS file: /cvs/src/src/opcodes/sparc-opc.c,v
3retrieving revision 1.9
4retrieving revision 1.10
5diff -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 */
This page took 0.105097 seconds and 4 git commands to generate.