101 #define NIOS2_INSN_MACRO 0x80000000
102 #define NIOS2_INSN_MACRO_MOV 0x80000001
103 #define NIOS2_INSN_MACRO_MOVI 0x80000002
104 #define NIOS2_INSN_MACRO_MOVIA 0x80000004
106 #define NIOS2_INSN_RELAXABLE 0x40000000
107 #define NIOS2_INSN_UBRANCH 0x00000010
108 #define NIOS2_INSN_CBRANCH 0x00000020
109 #define NIOS2_INSN_CALL 0x00000040
111 #define NIOS2_INSN_ADDI 0x00000080
112 #define NIOS2_INSN_ANDI 0x00000100
113 #define NIOS2_INSN_ORI 0x00000200
114 #define NIOS2_INSN_XORI 0x00000400
126 #define GET_INSN_FIELD(X, i) \
127 (((i)&OP_MASK_##X) >> OP_SH_##X)
128 #define SET_INSN_FIELD(X, i, j) \
129 ((i) = (((i) & ~OP_MASK_##X) | (((j) << OP_SH_##X) & OP_MASK_##X)))
135 #define IW_A_MASK 0x1f
140 #define IW_B_MASK 0x1f
145 #define IW_C_MASK 0x1f
147 #define IW_IMM16_LSB 6
148 #define IW_IMM16_MSB 21
149 #define IW_IMM16_SZ 16
150 #define IW_IMM16_MASK 0xffff
152 #define IW_IMM26_LSB 6
153 #define IW_IMM26_MSB 31
154 #define IW_IMM26_SZ 26
155 #define IW_IMM26_MASK 0x3ffffff
160 #define IW_OP_MASK 0x3f
162 #define IW_OPX_LSB 11
163 #define IW_OPX_MSB 16
165 #define IW_OPX_MASK 0x3f
167 #define IW_SHIFT_IMM5_LSB 6
168 #define IW_SHIFT_IMM5_MSB 10
169 #define IW_SHIFT_IMM5_SZ 5
170 #define IW_SHIFT_IMM5_MASK 0x1f
172 #define IW_CONTROL_REGNUM_LSB 6
173 #define IW_CONTROL_REGNUM_MSB 9
174 #define IW_CONTROL_REGNUM_SZ 4
175 #define IW_CONTROL_REGNUM_MASK 0xf
178 #define OP_MASK_OP (IW_OP_MASK << IW_OP_LSB)
179 #define OP_SH_OP IW_OP_LSB
182 #define OP_MASK_IOP (IW_OP_MASK << IW_OP_LSB)
183 #define OP_SH_IOP IW_OP_LSB
185 #define OP_MASK_IMM16 (IW_IMM16_MASK << IW_IMM16_LSB)
186 #define OP_SH_IMM16 IW_IMM16_LSB
188 #define OP_MASK_IRD (IW_B_MASK << IW_B_LSB)
189 #define OP_SH_IRD IW_B_LSB
191 #define OP_MASK_IRT (IW_B_MASK << IW_B_LSB)
192 #define OP_SH_IRT IW_B_LSB
194 #define OP_MASK_IRS (IW_A_MASK << IW_A_LSB)
195 #define OP_SH_IRS IW_A_LSB
198 #define OP_MASK_ROP (IW_OP_MASK << IW_OP_LSB)
199 #define OP_SH_ROP IW_OP_LSB
201 #define OP_MASK_ROPX (IW_OPX_MASK << IW_OPX_LSB)
202 #define OP_SH_ROPX IW_OPX_LSB
204 #define OP_MASK_RRD (IW_C_MASK << IW_C_LSB)
205 #define OP_SH_RRD IW_C_LSB
207 #define OP_MASK_RRT (IW_B_MASK << IW_B_LSB)
208 #define OP_SH_RRT IW_B_LSB
210 #define OP_MASK_RRS (IW_A_MASK << IW_A_LSB)
211 #define OP_SH_RRS IW_A_LSB
214 #define OP_MASK_JOP (IW_OP_MASK << IW_OP_LSB)
215 #define OP_SH_JOP IW_OP_LSB
217 #define OP_MASK_IMM26 (IW_IMM26_MASK << IW_IMM26_LSB)
218 #define OP_SH_IMM26 IW_IMM26_LSB
221 #define OP_MASK_RCTL 0x000007c0
225 #define OP_MASK_TRAP_IMM5 0x000007c0
226 #define OP_SH_TRAP_IMM5 6
229 #define OP_MASK_IMM5 (IW_SHIFT_IMM5_MASK << IW_SHIFT_IMM5_LSB)
230 #define OP_SH_IMM5 IW_SHIFT_IMM5_LSB
233 #define OP_MASK_CACHE_OPX (IW_B_MASK << IW_B_LSB)
234 #define OP_SH_CACHE_OPX IW_B_LSB
235 #define OP_MASK_CACHE_RRS (IW_A_MASK << IW_A_LSB)
236 #define OP_SH_CACHE_RRS IW_A_LSB
239 #define OP_MASK_CUSTOM_A 0x00010000
240 #define OP_SH_CUSTOM_A 16
242 #define OP_MASK_CUSTOM_B 0x00008000
243 #define OP_SH_CUSTOM_B 15
245 #define OP_MASK_CUSTOM_C 0x00004000
246 #define OP_SH_CUSTOM_C 14
248 #define OP_MASK_CUSTOM_N 0x00003fc0
249 #define OP_SH_CUSTOM_N 6
250 #define OP_MAX_CUSTOM_N 255
266 #define OP_CMPGEUI 40
268 #define OP_CMPLTUI 48
272 #define OP_FLUSHDA 27
310 #define OPX_CMPGEU 40
312 #define OPX_CMPLTU 48
318 #define OPX_FLUSHI 12
320 #define OPX_HBREAK 53
325 #define OPX_MULXSS 31
326 #define OPX_MULXSU 23
328 #define OPX_NEXTPC 28
353 #define OP_MATCH_ADDI OP_ADDI
354 #define OP_MATCH_ANDHI OP_ANDHI
355 #define OP_MATCH_ANDI OP_ANDI
356 #define OP_MATCH_BEQ OP_BEQ
357 #define OP_MATCH_BGE OP_BGE
358 #define OP_MATCH_BGEU OP_BGEU
359 #define OP_MATCH_BLT OP_BLT
360 #define OP_MATCH_BLTU OP_BLTU
361 #define OP_MATCH_BNE OP_BNE
362 #define OP_MATCH_BR OP_BR
363 #define OP_MATCH_FLUSHD OP_FLUSHD
364 #define OP_MATCH_FLUSHDA OP_FLUSHDA
365 #define OP_MATCH_INITD OP_INITD
366 #define OP_MATCH_INITDA OP_INITDA
367 #define OP_MATCH_CALL OP_CALL
368 #define OP_MATCH_CMPEQI OP_CMPEQI
369 #define OP_MATCH_CMPGEI OP_CMPGEI
370 #define OP_MATCH_CMPGEUI OP_CMPGEUI
371 #define OP_MATCH_CMPLTI OP_CMPLTI
372 #define OP_MATCH_CMPLTUI OP_CMPLTUI
373 #define OP_MATCH_CMPNEI OP_CMPNEI
374 #define OP_MATCH_JMPI OP_JMPI
375 #define OP_MATCH_LDB OP_LDB
376 #define OP_MATCH_LDBIO OP_LDBIO
377 #define OP_MATCH_LDBU OP_LDBU
378 #define OP_MATCH_LDBUIO OP_LDBUIO
379 #define OP_MATCH_LDH OP_LDH
380 #define OP_MATCH_LDHIO OP_LDHIO
381 #define OP_MATCH_LDHU OP_LDHU
382 #define OP_MATCH_LDHUIO OP_LDHUIO
383 #define OP_MATCH_LDL OP_LDL
384 #define OP_MATCH_LDW OP_LDW
385 #define OP_MATCH_LDWIO OP_LDWIO
386 #define OP_MATCH_MULI OP_MULI
387 #define OP_MATCH_OPX OP_OPX
388 #define OP_MATCH_ORHI OP_ORHI
389 #define OP_MATCH_ORI OP_ORI
390 #define OP_MATCH_RDPRS OP_RDPRS
391 #define OP_MATCH_STB OP_STB
392 #define OP_MATCH_STBIO OP_STBIO
393 #define OP_MATCH_STC OP_STC
394 #define OP_MATCH_STH OP_STH
395 #define OP_MATCH_STHIO OP_STHIO
396 #define OP_MATCH_STW OP_STW
397 #define OP_MATCH_STWIO OP_STWIO
398 #define OP_MATCH_CUSTOM OP_CUSTOM
399 #define OP_MATCH_XORHI OP_XORHI
400 #define OP_MATCH_XORI OP_XORI
401 #define OP_MATCH_OPX OP_OPX
404 #define OPX_MATCH(code) ((code << IW_OPX_LSB) | OP_OPX)
406 #define OP_MATCH_ADD OPX_MATCH(OPX_ADD)
407 #define OP_MATCH_AND OPX_MATCH(OPX_AND)
408 #define OP_MATCH_BREAK ((0x1e << 17) | OPX_MATCH(OPX_BREAK))
409 #define OP_MATCH_BRET (0xf0000000 | OPX_MATCH(OPX_BRET))
410 #define OP_MATCH_CALLR ((0x1f << 17) | OPX_MATCH(OPX_CALLR))
411 #define OP_MATCH_CMPEQ OPX_MATCH(OPX_CMPEQ)
412 #define OP_MATCH_CMPGE OPX_MATCH(OPX_CMPGE)
413 #define OP_MATCH_CMPGEU OPX_MATCH(OPX_CMPGEU)
414 #define OP_MATCH_CMPLT OPX_MATCH(OPX_CMPLT)
415 #define OP_MATCH_CMPLTU OPX_MATCH(OPX_CMPLTU)
416 #define OP_MATCH_CMPNE OPX_MATCH(OPX_CMPNE)
417 #define OP_MATCH_DIV OPX_MATCH(OPX_DIV)
418 #define OP_MATCH_DIVU OPX_MATCH(OPX_DIVU)
419 #define OP_MATCH_JMP OPX_MATCH(OPX_JMP)
420 #define OP_MATCH_MUL OPX_MATCH(OPX_MUL)
421 #define OP_MATCH_MULXSS OPX_MATCH(OPX_MULXSS)
422 #define OP_MATCH_MULXSU OPX_MATCH(OPX_MULXSU)
423 #define OP_MATCH_MULXUU OPX_MATCH(OPX_MULXUU)
424 #define OP_MATCH_NEXTPC OPX_MATCH(OPX_NEXTPC)
425 #define OP_MATCH_NOR OPX_MATCH(OPX_NOR)
426 #define OP_MATCH_OR OPX_MATCH(OPX_OR)
427 #define OP_MATCH_RDCTL OPX_MATCH(OPX_RDCTL)
428 #define OP_MATCH_RET (0xf8000000 | OPX_MATCH(OPX_RET))
429 #define OP_MATCH_ROL OPX_MATCH(OPX_ROL)
430 #define OP_MATCH_ROLI OPX_MATCH(OPX_ROLI)
431 #define OP_MATCH_ROR OPX_MATCH(OPX_ROR)
432 #define OP_MATCH_SLL OPX_MATCH(OPX_SLL)
433 #define OP_MATCH_SLLI OPX_MATCH(OPX_SLLI)
434 #define OP_MATCH_SRA OPX_MATCH(OPX_SRA)
435 #define OP_MATCH_SRAI OPX_MATCH(OPX_SRAI)
436 #define OP_MATCH_SRL OPX_MATCH(OPX_SRL)
437 #define OP_MATCH_SRLI OPX_MATCH(OPX_SRLI)
438 #define OP_MATCH_SUB OPX_MATCH(OPX_SUB)
439 #define OP_MATCH_SYNC OPX_MATCH(OPX_SYNC)
440 #define OP_MATCH_TRAP ((0x1d << 17) | OPX_MATCH(OPX_TRAP))
441 #define OP_MATCH_ERET (0xef800000 | OPX_MATCH(OPX_ERET))
442 #define OP_MATCH_WRCTL OPX_MATCH(OPX_WRCTL)
443 #define OP_MATCH_WRPRS OPX_MATCH(OPX_WRPRS)
444 #define OP_MATCH_XOR OPX_MATCH(OPX_XOR)
445 #define OP_MATCH_FLUSHI OPX_MATCH(OPX_FLUSHI)
446 #define OP_MATCH_FLUSHP OPX_MATCH(OPX_FLUSHP)
447 #define OP_MATCH_INITI OPX_MATCH(OPX_INITI)
450 #define OP_MASK_BREAK ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP) & 0xfffff03f)
451 #define OP_MASK_CALLR ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP))
452 #define OP_MASK_JMP ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP))
453 #define OP_MASK_SYNC ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP))
454 #define OP_MASK_TRAP ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP) & 0xfffff83f)
455 #define OP_MASK_WRCTL ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP))
456 #define OP_MASK_NEXTPC ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP))
457 #define OP_MASK_FLUSHI ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP))
458 #define OP_MASK_INITI ((OP_MASK_RRT | OP_MASK_RRD | OP_MASK_ROPX | OP_MASK_OP))
460 #define OP_MASK_ROLI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP))
461 #define OP_MASK_SLLI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP))
462 #define OP_MASK_SRAI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP))
463 #define OP_MASK_SRLI ((OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP))
464 #define OP_MASK_RDCTL ((OP_MASK_RRS | OP_MASK_RRT | OP_MASK_ROPX | OP_MASK_OP))
467 #define OP_MASK 0xffffffff
471 #define GET_IW_A(Iw) \
472 (((Iw) >> IW_A_LSB) & IW_A_MASK)
473 #define GET_IW_B(Iw) \
474 (((Iw) >> IW_B_LSB) & IW_B_MASK)
475 #define GET_IW_C(Iw) \
476 (((Iw) >> IW_C_LSB) & IW_C_MASK)
477 #define GET_IW_CONTROL_REGNUM(Iw) \
478 (((Iw) >> IW_CONTROL_REGNUM_LSB) & IW_CONTROL_REGNUM_MASK)
479 #define GET_IW_IMM16(Iw) \
480 (((Iw) >> IW_IMM16_LSB) & IW_IMM16_MASK)
481 #define GET_IW_IMM26(Iw) \
482 (((Iw) >> IW_IMM26_LSB) & IW_IMM26_MASK)
483 #define GET_IW_OP(Iw) \
484 (((Iw) >> IW_OP_LSB) & IW_OP_MASK)
485 #define GET_IW_OPX(Iw) \
486 (((Iw) >> IW_OPX_LSB) & IW_OPX_MASK)
501 #define NUMOPCODES bfd_nios2_num_opcodes
502 #define NUMREGISTERS nios2_num_regs;
const struct nios2_opcode nios2_builtin_opcodes[]
const int bfd_nios2_num_builtin_opcodes
const struct nios2_opcode * nios2_find_opcode_hash(unsigned long)
struct nios2_reg * nios2_regs
@ signed_immed16_overflow
@ address_offset_overflow
@ unsigned_immed5_overflow
@ unsigned_immed16_overflow
int bfd_nios2_num_opcodes
struct nios2_opcode * nios2_opcodes
const int nios2_num_builtin_regs
const struct nios2_reg nios2_builtin_regs[]
enum overflow_type overflow_msg