Rev 5191 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5191 | Rev 6324 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | /* Opcode decoder for the Renesas RX |
1 | /* Opcode decoder for the Renesas RX |
2 | Copyright 2008, 2009, 2010 |
- | |
3 | Free Software Foundation, Inc. |
2 | Copyright (C) 2008-2015 Free Software Foundation, Inc. |
4 | Written by DJ Delorie |
3 | Written by DJ Delorie |
Line 5... | Line 4... | ||
5 | 4 | ||
Line 6... | Line 5... | ||
6 | This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler. |
5 | This file is part of GDB, the GNU Debugger and GAS, the GNU Assembler. |
Line 22... | Line 21... | ||
22 | 21 | ||
23 | /* The RX decoder in libopcodes is used by the simulator, gdb's |
22 | /* The RX decoder in libopcodes is used by the simulator, gdb's |
24 | analyzer, and the disassembler. Given an opcode data source, |
23 | analyzer, and the disassembler. Given an opcode data source, |
Line -... | Line 24... | ||
- | 24 | it decodes the next opcode into the following structures. */ |
|
- | 25 | ||
- | 26 | #ifdef __cplusplus |
|
- | 27 | extern "C" { |
|
25 | it decodes the next opcode into the following structures. */ |
28 | #endif |
26 | 29 | ||
27 | typedef enum |
30 | typedef enum |
28 | { |
31 | { |
29 | RX_AnySize = 0, |
32 | RX_AnySize = 0, |
Line 33... | Line 36... | ||
33 | RX_Word, /* undefined extension */ |
36 | RX_Word, /* undefined extension */ |
34 | RX_UWord, |
37 | RX_UWord, |
35 | RX_SWord, |
38 | RX_SWord, |
36 | RX_3Byte, |
39 | RX_3Byte, |
37 | RX_Long, |
40 | RX_Long, |
- | 41 | RX_Bad_Size, |
|
- | 42 | RX_MAX_SIZE |
|
38 | } RX_Size; |
43 | } RX_Size; |
Line 39... | Line 44... | ||
39 | 44 | ||
40 | typedef enum |
45 | typedef enum |
41 | { |
46 | { |
42 | RX_Operand_None, |
47 | RX_Operand_None, |
43 | RX_Operand_Immediate, /* #addend */ |
48 | RX_Operand_Immediate, /* #addend */ |
44 | RX_Operand_Register, /* Rn */ |
49 | RX_Operand_Register, /* Rn */ |
- | 50 | RX_Operand_Indirect, /* [Rn + addend] */ |
|
45 | RX_Operand_Indirect, /* [Rn + addend] */ |
51 | RX_Operand_Zero_Indirect,/* [Rn] */ |
46 | RX_Operand_Postinc, /* [Rn+] */ |
52 | RX_Operand_Postinc, /* [Rn+] */ |
47 | RX_Operand_Predec, /* [-Rn] */ |
53 | RX_Operand_Predec, /* [-Rn] */ |
48 | RX_Operand_Condition, /* eq, gtu, etc */ |
54 | RX_Operand_Condition, /* eq, gtu, etc */ |
49 | RX_Operand_Flag, /* [UIOSZC] */ |
55 | RX_Operand_Flag, /* [UIOSZC] */ |
Line 96... | Line 102... | ||
96 | RXO_jsrrel, /* pc += d */ |
102 | RXO_jsrrel, /* pc += d */ |
97 | RXO_rts, |
103 | RXO_rts, |
98 | RXO_nop, |
104 | RXO_nop, |
99 | RXO_nop2, |
105 | RXO_nop2, |
100 | RXO_nop3, |
106 | RXO_nop3, |
- | 107 | RXO_nop4, |
|
- | 108 | RXO_nop5, |
|
- | 109 | RXO_nop6, |
|
- | 110 | RXO_nop7, |
|
Line 101... | Line 111... | ||
101 | 111 | ||
102 | RXO_scmpu, |
112 | RXO_scmpu, |
103 | RXO_smovu, |
113 | RXO_smovu, |
104 | RXO_smovb, |
114 | RXO_smovb, |
Line 211... | Line 221... | ||
211 | 221 | ||
212 | Register numbers 0..15 are general registers. 16..31 are control |
222 | Register numbers 0..15 are general registers. 16..31 are control |
Line 213... | Line 223... | ||
213 | registers. 32..47 are condition codes. */ |
223 | registers. 32..47 are condition codes. */ |
- | 224 | ||
- | 225 | int rx_decode_opcode (unsigned long, RX_Opcode_Decoded *, int (*)(void *), void *); |
|
- | 226 | ||
- | 227 | #ifdef __cplusplus |