1 ;; Pipeline descriptions of Andes NDS32 cpu for GNU compiler
2 ;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
3 ;; Contributed by Andes Technology Corporation.
5 ;; This file is part of GCC.
7 ;; GCC is free software; you can redistribute it and/or modify it
8 ;; under the terms of the GNU General Public License as published
9 ;; by the Free Software Foundation; either version 3, or (at your
10 ;; option) any later version.
12 ;; GCC is distributed in the hope that it will be useful, but WITHOUT
13 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 ;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 ;; License for more details.
17 ;; You should have received a copy of the GNU General Public License
18 ;; along with GCC; see the file COPYING3. If not see
19 ;; <http://www.gnu.org/licenses/>.
22 ;; ------------------------------------------------------------------------
23 ;; Define N10 pipeline settings.
24 ;; ------------------------------------------------------------------------
26 (define_automaton "nds32_n10_machine")
28 ;; ------------------------------------------------------------------------
30 ;; ------------------------------------------------------------------------
31 ;; IF - Instruction Fetch
32 ;; II - Instruction Issue / Instruction Decode
33 ;; EX - Instruction Execution
34 ;; MM - Memory Execution
35 ;; WB - Instruction Retire / Result Write-Back
37 (define_cpu_unit "n10_ii" "nds32_n10_machine")
38 (define_cpu_unit "n10_ex" "nds32_n10_machine")
39 (define_cpu_unit "n10_mm" "nds32_n10_machine")
40 (define_cpu_unit "n10_wb" "nds32_n10_machine")
41 (define_cpu_unit "n10f_iq" "nds32_n10_machine")
42 (define_cpu_unit "n10f_rf" "nds32_n10_machine")
43 (define_cpu_unit "n10f_e1" "nds32_n10_machine")
44 (define_cpu_unit "n10f_e2" "nds32_n10_machine")
45 (define_cpu_unit "n10f_e3" "nds32_n10_machine")
46 (define_cpu_unit "n10f_e4" "nds32_n10_machine")
48 (define_insn_reservation "nds_n10_unknown" 1
49 (and (eq_attr "type" "unknown")
50 (eq_attr "pipeline_model" "n10"))
51 "n10_ii, n10_ex, n10_mm, n10_wb")
53 (define_insn_reservation "nds_n10_misc" 1
54 (and (eq_attr "type" "misc")
55 (eq_attr "pipeline_model" "n10"))
56 "n10_ii, n10_ex, n10_mm, n10_wb")
58 (define_insn_reservation "nds_n10_mmu" 1
59 (and (eq_attr "type" "mmu")
60 (eq_attr "pipeline_model" "n10"))
61 "n10_ii, n10_ex, n10_mm, n10_wb")
63 (define_insn_reservation "nds_n10_alu" 1
64 (and (eq_attr "type" "alu")
65 (eq_attr "pipeline_model" "n10"))
66 "n10_ii, n10_ex, n10_mm, n10_wb")
68 (define_insn_reservation "nds_n10_alu_shift" 1
69 (and (eq_attr "type" "alu_shift")
70 (eq_attr "pipeline_model" "n10"))
71 "n10_ii, n10_ii+n10_ex, n10_ex+n10_mm, n10_mm+n10_wb, n10_wb")
73 (define_insn_reservation "nds_n10_pbsad" 1
74 (and (eq_attr "type" "pbsad")
75 (eq_attr "pipeline_model" "n10"))
76 "n10_ii, n10_ex*3, n10_mm, n10_wb")
78 (define_insn_reservation "nds_n10_pbsada" 1
79 (and (eq_attr "type" "pbsada")
80 (eq_attr "pipeline_model" "n10"))
81 "n10_ii, n10_ex*3, n10_mm, n10_wb")
83 (define_insn_reservation "nds_n10_load" 1
84 (and (match_test "nds32::load_single_p (insn)")
85 (eq_attr "pipeline_model" "n10"))
86 "n10_ii, n10_ex, n10_mm, n10_wb")
88 (define_insn_reservation "nds_n10_store" 1
89 (and (match_test "nds32::store_single_p (insn)")
90 (eq_attr "pipeline_model" "n10"))
91 "n10_ii, n10_ex, n10_mm, n10_wb")
93 (define_insn_reservation "nds_n10_load_multiple_1" 1
94 (and (eq_attr "pipeline_model" "n10")
95 (and (eq_attr "type" "load_multiple")
96 (eq_attr "combo" "1")))
97 "n10_ii, n10_ex, n10_mm, n10_wb")
99 (define_insn_reservation "nds_n10_load_multiple_2" 1
100 (and (eq_attr "pipeline_model" "n10")
101 (ior (and (eq_attr "type" "load_multiple")
102 (eq_attr "combo" "2"))
103 (match_test "nds32::load_double_p (insn)")))
104 "n10_ii, n10_ii+n10_ex, n10_ex+n10_mm, n10_mm+n10_wb, n10_wb")
106 (define_insn_reservation "nds_n10_load_multiple_3" 1
107 (and (eq_attr "pipeline_model" "n10")
108 (and (eq_attr "type" "load_multiple")
109 (eq_attr "combo" "3")))
110 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
112 (define_insn_reservation "nds_n10_load_multiple_4" 1
113 (and (eq_attr "pipeline_model" "n10")
114 (and (eq_attr "type" "load_multiple")
115 (eq_attr "combo" "4")))
116 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, n10_ii+n10_ex+n10_mm+n10_wb, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
118 (define_insn_reservation "nds_n10_load_multiple_5" 1
119 (and (eq_attr "pipeline_model" "n10")
120 (and (eq_attr "type" "load_multiple")
121 (eq_attr "combo" "5")))
122 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, (n10_ii+n10_ex+n10_mm+n10_wb)*2, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
124 (define_insn_reservation "nds_n10_load_multiple_6" 1
125 (and (eq_attr "pipeline_model" "n10")
126 (and (eq_attr "type" "load_multiple")
127 (eq_attr "combo" "6")))
128 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, (n10_ii+n10_ex+n10_mm+n10_wb)*3, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
130 (define_insn_reservation "nds_n10_load_multiple_7" 1
131 (and (eq_attr "pipeline_model" "n10")
132 (and (eq_attr "type" "load_multiple")
133 (eq_attr "combo" "7")))
134 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, (n10_ii+n10_ex+n10_mm+n10_wb)*4, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
136 (define_insn_reservation "nds_n10_load_multiple_N" 1
137 (and (eq_attr "pipeline_model" "n10")
138 (and (eq_attr "type" "load_multiple")
139 (match_test "get_attr_combo (insn) >= 8")))
140 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, (n10_ii+n10_ex+n10_mm+n10_wb)*5, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
142 (define_insn_reservation "nds_n10_store_multiple_1" 1
143 (and (eq_attr "pipeline_model" "n10")
144 (and (eq_attr "type" "store_multiple")
145 (eq_attr "combo" "1")))
146 "n10_ii, n10_ex, n10_mm, n10_wb")
148 (define_insn_reservation "nds_n10_store_multiple_2" 1
149 (and (eq_attr "pipeline_model" "n10")
150 (ior (and (eq_attr "type" "store_multiple")
151 (eq_attr "combo" "2"))
152 (match_test "nds32::store_double_p (insn)")))
153 "n10_ii, n10_ii+n10_ex, n10_ex+n10_mm, n10_mm+n10_wb, n10_wb")
155 (define_insn_reservation "nds_n10_store_multiple_3" 1
156 (and (eq_attr "pipeline_model" "n10")
157 (and (eq_attr "type" "store_multiple")
158 (eq_attr "combo" "3")))
159 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
161 (define_insn_reservation "nds_n10_store_multiple_4" 1
162 (and (eq_attr "pipeline_model" "n10")
163 (and (eq_attr "type" "store_multiple")
164 (eq_attr "combo" "4")))
165 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, n10_ii+n10_ex+n10_mm+n10_wb, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
167 (define_insn_reservation "nds_n10_store_multiple_5" 1
168 (and (eq_attr "pipeline_model" "n10")
169 (and (eq_attr "type" "store_multiple")
170 (eq_attr "combo" "5")))
171 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, (n10_ii+n10_ex+n10_mm+n10_wb)*2, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
173 (define_insn_reservation "nds_n10_store_multiple_6" 1
174 (and (eq_attr "pipeline_model" "n10")
175 (and (eq_attr "type" "store_multiple")
176 (eq_attr "combo" "6")))
177 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, (n10_ii+n10_ex+n10_mm+n10_wb)*3, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
179 (define_insn_reservation "nds_n10_store_multiple_7" 1
180 (and (eq_attr "pipeline_model" "n10")
181 (and (eq_attr "type" "store_multiple")
182 (eq_attr "combo" "7")))
183 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, (n10_ii+n10_ex+n10_mm+n10_wb)*4, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
185 (define_insn_reservation "nds_n10_store_multiple_N" 1
186 (and (eq_attr "pipeline_model" "n10")
187 (and (eq_attr "type" "store_multiple")
188 (match_test "get_attr_combo (insn) >= 8")))
189 "n10_ii, n10_ii+n10_ex, n10_ii+n10_ex+n10_mm, (n10_ii+n10_ex+n10_mm+n10_wb)*5, n10_ex+n10_mm+n10_wb, n10_mm+n10_wb, n10_wb")
191 (define_insn_reservation "nds_n10_mul" 1
192 (and (eq_attr "type" "mul")
193 (eq_attr "pipeline_model" "n10"))
194 "n10_ii, n10_ex, n10_mm, n10_wb")
196 (define_insn_reservation "nds_n10_mac" 1
197 (and (eq_attr "type" "mac")
198 (eq_attr "pipeline_model" "n10"))
199 "n10_ii, n10_ex, n10_mm, n10_wb")
201 (define_insn_reservation "nds_n10_div" 1
202 (and (eq_attr "type" "div")
203 (eq_attr "pipeline_model" "n10"))
204 "n10_ii, n10_ex*34, n10_mm, n10_wb")
206 (define_insn_reservation "nds_n10_branch" 1
207 (and (eq_attr "type" "branch")
208 (eq_attr "pipeline_model" "n10"))
209 "n10_ii, n10_ex, n10_mm, n10_wb")
211 (define_insn_reservation "nds_n10_dsp_alu" 1
212 (and (eq_attr "type" "dalu")
213 (eq_attr "pipeline_model" "n10"))
214 "n10_ii, n10_ex, n10_mm, n10_wb")
216 (define_insn_reservation "nds_n10_dsp_alu64" 1
217 (and (eq_attr "type" "dalu64")
218 (eq_attr "pipeline_model" "n10"))
219 "n10_ii, n10_ex, n10_mm, n10_wb")
221 (define_insn_reservation "nds_n10_dsp_alu_round" 1
222 (and (eq_attr "type" "daluround")
223 (eq_attr "pipeline_model" "n10"))
224 "n10_ii, n10_ex, n10_mm, n10_wb")
226 (define_insn_reservation "nds_n10_dsp_cmp" 1
227 (and (eq_attr "type" "dcmp")
228 (eq_attr "pipeline_model" "n10"))
229 "n10_ii, n10_ex, n10_mm, n10_wb")
231 (define_insn_reservation "nds_n10_dsp_clip" 1
232 (and (eq_attr "type" "dclip")
233 (eq_attr "pipeline_model" "n10"))
234 "n10_ii, n10_ex, n10_mm, n10_wb")
236 (define_insn_reservation "nds_n10_dsp_mul" 1
237 (and (eq_attr "type" "dmul")
238 (eq_attr "pipeline_model" "n10"))
239 "n10_ii, n10_ex, n10_mm, n10_wb")
241 (define_insn_reservation "nds_n10_dsp_mac" 1
242 (and (eq_attr "type" "dmac")
243 (eq_attr "pipeline_model" "n10"))
244 "n10_ii, n10_ex, n10_mm, n10_wb")
246 (define_insn_reservation "nds_n10_dsp_insb" 1
247 (and (eq_attr "type" "dinsb")
248 (eq_attr "pipeline_model" "n10"))
249 "n10_ii, n10_ex, n10_mm, n10_wb")
251 (define_insn_reservation "nds_n10_dsp_pack" 1
252 (and (eq_attr "type" "dpack")
253 (eq_attr "pipeline_model" "n10"))
254 "n10_ii, n10_ex, n10_mm, n10_wb")
256 (define_insn_reservation "nds_n10_dsp_bpick" 1
257 (and (eq_attr "type" "dbpick")
258 (eq_attr "pipeline_model" "n10"))
259 "n10_ii, n10_ex, n10_mm, n10_wb")
261 (define_insn_reservation "nds_n10_dsp_wext" 1
262 (and (eq_attr "type" "dwext")
263 (eq_attr "pipeline_model" "n10"))
264 "n10_ii, n10_ex, n10_mm, n10_wb")
266 (define_insn_reservation "nds_n10_fpu_alu" 4
267 (and (eq_attr "type" "falu")
268 (eq_attr "pipeline_model" "n10"))
269 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2, n10f_e3, n10f_e4")
271 (define_insn_reservation "nds_n10_fpu_muls" 4
272 (and (eq_attr "type" "fmuls")
273 (eq_attr "pipeline_model" "n10"))
274 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2, n10f_e3, n10f_e4")
276 (define_insn_reservation "nds_n10_fpu_muld" 4
277 (and (eq_attr "type" "fmuld")
278 (eq_attr "pipeline_model" "n10"))
279 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2*2, n10f_e3, n10f_e4")
281 (define_insn_reservation "nds_n10_fpu_macs" 4
282 (and (eq_attr "type" "fmacs")
283 (eq_attr "pipeline_model" "n10"))
284 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2*3, n10f_e3, n10f_e4")
286 (define_insn_reservation "nds_n10_fpu_macd" 4
287 (and (eq_attr "type" "fmacd")
288 (eq_attr "pipeline_model" "n10"))
289 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2*4, n10f_e3, n10f_e4")
291 (define_insn_reservation "nds_n10_fpu_divs" 4
292 (and (ior (eq_attr "type" "fdivs")
293 (eq_attr "type" "fsqrts"))
294 (eq_attr "pipeline_model" "n10"))
295 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2*14, n10f_e3, n10f_e4")
297 (define_insn_reservation "nds_n10_fpu_divd" 4
298 (and (ior (eq_attr "type" "fdivd")
299 (eq_attr "type" "fsqrtd"))
300 (eq_attr "pipeline_model" "n10"))
301 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2*28, n10f_e3, n10f_e4")
303 (define_insn_reservation "nds_n10_fpu_fast_alu" 2
304 (and (ior (eq_attr "type" "fcmp")
305 (ior (eq_attr "type" "fabs")
306 (ior (eq_attr "type" "fcpy")
307 (eq_attr "type" "fcmov"))))
308 (eq_attr "pipeline_model" "n10"))
309 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2, n10f_e3, n10f_e4")
311 (define_insn_reservation "nds_n10_fpu_fmtsr" 4
312 (and (eq_attr "type" "fmtsr")
313 (eq_attr "pipeline_model" "n10"))
314 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2, n10f_e3, n10f_e4")
316 (define_insn_reservation "nds_n10_fpu_fmtdr" 4
317 (and (eq_attr "type" "fmtdr")
318 (eq_attr "pipeline_model" "n10"))
319 "n10_ii, n10_ii+n10f_iq, n10f_iq+n10f_rf, n10f_rf+n10f_e1, n10f_e1+n10f_e2, n10f_e2+n10f_e3, n10f_e3+n10f_e4, n10f_e4")
321 (define_insn_reservation "nds_n10_fpu_fmfsr" 2
322 (and (eq_attr "type" "fmfsr")
323 (eq_attr "pipeline_model" "n10"))
324 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2, n10f_e3, n10f_e4")
326 (define_insn_reservation "nds_n10_fpu_fmfdr" 2
327 (and (eq_attr "type" "fmfdr")
328 (eq_attr "pipeline_model" "n10"))
329 "n10_ii, n10_ii+n10f_iq, n10f_iq+n10f_rf, n10f_rf+n10f_e1, n10f_e1+n10f_e2, n10f_e2+n10f_e3, n10f_e3+n10f_e4, n10f_e4")
331 (define_insn_reservation "nds_n10_fpu_load" 3
332 (and (eq_attr "type" "fload")
333 (eq_attr "pipeline_model" "n10"))
334 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2, n10f_e3, n10f_e4")
336 (define_insn_reservation "nds_n10_fpu_store" 1
337 (and (eq_attr "type" "fstore")
338 (eq_attr "pipeline_model" "n10"))
339 "n10_ii, n10f_iq, n10f_rf, n10f_e1, n10f_e2, n10f_e3, n10f_e4")
341 ;; ------------------------------------------------------------------------
342 ;; Comment Notations and Bypass Rules
343 ;; ------------------------------------------------------------------------
346 ;; Load data from the memory and produce the loaded data. The result is
349 ;; There are N micro-operations within an instruction that loads multiple
350 ;; words. The result produced by the M-th micro-operation is sent to
351 ;; consumers. The result is ready at MM.
353 ;; Compute data in the multiply-adder and produce the data. The result
356 ;; Compute data in the divider and produce the data. The result is ready
360 ;; ALU, MOVD44, PBSAD, PBSADA_RaRb, MUL, MAC, DIV, MMU
361 ;; Require operands at EX.
363 ;; An ALU-SHIFT instruction consists of a shift micro-operation followed
364 ;; by an arithmetic micro-operation. The operand Rb is used by the first
365 ;; micro-operation, and there are some latencies if data dependency occurs.
367 ;; A MAC instruction does multiplication at EX and does accumulation at MM,
368 ;; so the operand Rt is required at MM, and operands Ra and Rb are required
371 ;; If an instruction requires an address as its input operand, the address
372 ;; is required at EX.
374 ;; A store instruction requires its data at MM.
376 ;; There are N micro-operations within an instruction that stores multiple
377 ;; words. Each M-th micro-operation requires its data at MM.
379 ;; If a branch instruction is conditional, its input data is required at EX.
381 ;; FPU_ADDR_OUT -> FPU_ADDR_IN
382 ;; Main pipeline rules don't need this because those default latency is 1.
384 "nds_n10_fpu_load, nds_n10_fpu_store"
385 "nds_n10_fpu_load, nds_n10_fpu_store"
386 "nds32_n10_ex_to_ex_p"
389 ;; LD, MUL, MAC, DIV, DALU64, DMUL, DMAC, DALUROUND, DBPICK, DWEXT
390 ;; -> ALU, ALU_SHIFT_Rb, PBSAD, PBSADA_RaRb, MOVD44, MUL, MAC_RaRb, DIV, ADDR_IN, BR, MMU,
391 ;; DALU, DALUROUND, DMUL, DMAC_RaRb, DPACK, DINSB, DCMP, DCLIP, WEXT_O, BPICK_RaRb
393 "nds_n10_load, nds_n10_mul, nds_n10_mac, nds_n10_div,\
394 nds_n10_dsp_alu64, nds_n10_dsp_mul, nds_n10_dsp_mac,\
395 nds_n10_dsp_alu_round, nds_n10_dsp_bpick, nds_n10_dsp_wext"
396 "nds_n10_alu, nds_n10_alu_shift,\
397 nds_n10_pbsad, nds_n10_pbsada,\
398 nds_n10_mul, nds_n10_mac, nds_n10_div,\
400 nds_n10_load, nds_n10_store,\
401 nds_n10_load_multiple_1, nds_n10_load_multiple_2, nds_n10_load_multiple_3,\
402 nds_n10_load_multiple_4, nds_n10_load_multiple_5, nds_n10_load_multiple_6,\
403 nds_n10_load_multiple_7, nds_n10_load_multiple_N,\
404 nds_n10_store_multiple_1, nds_n10_store_multiple_2, nds_n10_store_multiple_3,\
405 nds_n10_store_multiple_4, nds_n10_store_multiple_5, nds_n10_store_multiple_6,\
406 nds_n10_store_multiple_7, nds_n10_store_multiple_N,\
408 nds_n10_dsp_alu, nds_n10_dsp_alu_round,\
409 nds_n10_dsp_mul, nds_n10_dsp_mac, nds_n10_dsp_pack,\
410 nds_n10_dsp_insb, nds_n10_dsp_cmp, nds_n10_dsp_clip,\
411 nds_n10_dsp_wext, nds_n10_dsp_bpick"
412 "nds32_n10_mm_to_ex_p"
416 ;; -> ALU, ALU_SHIFT_Rb, PBSAD, PBSADA_RaRb, MOVD44, MUL, MAC_RaRb, DIV, ADDR_IN, BR, MMU
417 ;; DALU, DALUROUND, DMUL, DMAC_RaRb, DPACK, DINSB, DCMP, DCLIP, WEXT_O, BPICK_RaRb
419 "nds_n10_load_multiple_1, nds_n10_load_multiple_2, nds_n10_load_multiple_3,\
420 nds_n10_load_multiple_4, nds_n10_load_multiple_5, nds_n10_load_multiple_6,\
421 nds_n10_load_multiple_7, nds_n10_load_multiple_N"
422 "nds_n10_alu, nds_n10_alu_shift,\
423 nds_n10_pbsad, nds_n10_pbsada,\
424 nds_n10_mul, nds_n10_mac, nds_n10_div,\
426 nds_n10_load, nds_n10_store,\
427 nds_n10_load_multiple_1, nds_n10_load_multiple_2, nds_n10_load_multiple_3,\
428 nds_n10_load_multiple_4, nds_n10_load_multiple_5, nds_n10_load_multiple_6,\
429 nds_n10_load_multiple_7, nds_n10_load_multiple_N,\
430 nds_n10_store_multiple_1, nds_n10_store_multiple_2, nds_n10_store_multiple_3,\
431 nds_n10_store_multiple_4, nds_n10_store_multiple_5, nds_n10_store_multiple_6,\
432 nds_n10_store_multiple_7, nds_n10_store_multiple_N,\
434 nds_n10_dsp_alu, nds_n10_dsp_alu_round,\
435 nds_n10_dsp_mul, nds_n10_dsp_mac, nds_n10_dsp_pack,\
436 nds_n10_dsp_insb, nds_n10_dsp_cmp, nds_n10_dsp_clip,\
437 nds_n10_dsp_wext, nds_n10_dsp_bpick"
438 "nds32_n10_last_load_to_ex_p"