Previous 199869 Revisions Next

r33946 Thursday 18th December, 2014 at 12:51:50 UTC by David Haywood
arcompact - some dasm helpers for LR/SR (nw)
[src/emu/cpu/arcompact]arcompactdasm_ops.c

trunk/src/emu/cpu/arcompact/arcompactdasm_ops.c
r242457r242458
5858   /* 1f */ "0x1f Reserved"
5959};
6060
61#define UNUSED_REG "unusedreg"
6162
63#define AUX_UNUSED_16 \
64   /* 0xxx0 */ UNUSED_REG,   /* 0xxx1 */ UNUSED_REG,   /* 0xxx2 */ UNUSED_REG,   /* 0xxx3 */ UNUSED_REG,   /* 0xxx4 */ UNUSED_REG,   /* 0xxx5 */ UNUSED_REG,   /* 0xxx6 */ UNUSED_REG,   /* 0xxx7 */ UNUSED_REG,   /* 0xxx8 */ UNUSED_REG,   /* 0xxx9 */ UNUSED_REG,   /* 0xxxa */ UNUSED_REG,   /* 0xxxb */ UNUSED_REG,   /* 0xxxc */ UNUSED_REG,   /* 0xxxd */ UNUSED_REG,   /* 0xxxe */ UNUSED_REG,   /* 0xxxf */ UNUSED_REG,
65
66// the Auxiliary Register set is actually a 2^32 dword address space (so 16 GB / 34-bit)
67// this table just allows us to improve the debugger display for some of the common core / internal ones
68static const char *auxregnames[0x420] =
69{
70   /* 0x000 */ "STATUS",
71   /* 0x001 */ "SEMAPHOR",
72   /* 0x002 */ "LP_START",
73   /* 0x003 */ "LP_END",
74   /* 0x004 */ "IDENTITY",
75   /* 0x005 */ "DEBUG",
76   /* 0x006 */ "PC",
77   /* 0x007 */ UNUSED_REG,
78   /* 0x008 */ UNUSED_REG,
79   /* 0x009 */ UNUSED_REG,
80   /* 0x00a */ "STATUS32",
81   /* 0x00b */ "STATUS32_L1",
82   /* 0x00c */ "STATUS32_L2",
83   /* 0x00d */ UNUSED_REG,
84   /* 0x00e */ UNUSED_REG,
85   /* 0x00f */ UNUSED_REG,
86
87   /* 0x010 */ UNUSED_REG,
88   /* 0x011 */ UNUSED_REG,
89   /* 0x012 */ "MULHI", // extension register
90   /* 0x013 */ UNUSED_REG,
91   /* 0x014 */ UNUSED_REG,
92   /* 0x015 */ UNUSED_REG,
93   /* 0x016 */ UNUSED_REG,
94   /* 0x017 */ UNUSED_REG,
95   /* 0x018 */ UNUSED_REG,
96   /* 0x019 */ UNUSED_REG,
97   /* 0x01a */ UNUSED_REG,
98   /* 0x01b */ UNUSED_REG,
99   /* 0x01c */ UNUSED_REG,
100   /* 0x01d */ UNUSED_REG,
101   /* 0x01e */ UNUSED_REG,
102   /* 0x01f */ UNUSED_REG,
103
104   /* 0x020 */ UNUSED_REG,
105   /* 0x021 */ "COUNT0",
106   /* 0x022 */ "CONTROL0",
107   /* 0x023 */ "LIMIT0",
108   /* 0x024 */ UNUSED_REG,
109   /* 0x025 */ "INT_VECTOR_BASE",
110   /* 0x026 */ UNUSED_REG,
111   /* 0x027 */ UNUSED_REG,
112   /* 0x028 */ UNUSED_REG,
113   /* 0x029 */ UNUSED_REG,
114   /* 0x02a */ UNUSED_REG,
115   /* 0x02b */ UNUSED_REG,
116   /* 0x02c */ UNUSED_REG,
117   /* 0x02d */ UNUSED_REG,
118   /* 0x02e */ UNUSED_REG,
119   /* 0x02f */ UNUSED_REG,
120   AUX_UNUSED_16 /* 0x030 - 0x03f */
121   /* 0x040 */ UNUSED_REG,
122   /* 0x041 */ "AUX_MACMODE",
123   /* 0x042 */ UNUSED_REG,
124   /* 0x043 */ "AUX_IRQLV12",
125   /* 0x044 */ UNUSED_REG,
126   /* 0x045 */ UNUSED_REG,
127   /* 0x046 */ UNUSED_REG,
128   /* 0x047 */ UNUSED_REG,
129   /* 0x048 */ UNUSED_REG,
130   /* 0x049 */ UNUSED_REG,
131   /* 0x04a */ UNUSED_REG,
132   /* 0x04b */ UNUSED_REG,
133   /* 0x04c */ UNUSED_REG,
134   /* 0x04d */ UNUSED_REG,
135   /* 0x04e */ UNUSED_REG,
136   /* 0x04f */ UNUSED_REG,
137   AUX_UNUSED_16 /* 0x050 - 0x05f */
138   // build configuration registers 0x060 - 0x07f
139   /* 0x060 */ "RESERVED AUX 0x60",/* 0x061 */ "RESERVED AUX 0x61",/* 0x062 */ "RESERVED AUX 0x62",/* 0x063 */ "RESERVED AUX 0x63",/* 0x064 */ "RESERVED AUX 0x64",/* 0x065 */ "RESERVED AUX 0x65",/* 0x066 */ "RESERVED AUX 0x66",/* 0x067 */ "RESERVED AUX 0x67",/* 0x068 */ "RESERVED AUX 0x68",/* 0x069 */ "RESERVED AUX 0x69",/* 0x06a */ "RESERVED AUX 0x6a",/* 0x06b */ "RESERVED AUX 0x6b",/* 0x06c */ "RESERVED AUX 0x6c",/* 0x06d */ "RESERVED AUX 0x6d",/* 0x06e */ "RESERVED AUX 0x6e",/* 0x06f */ "RESERVED AUX 0x6f",
140   /* 0x070 */ "RESERVED AUX 0x70",/* 0x071 */ "RESERVED AUX 0x71",/* 0x072 */ "RESERVED AUX 0x72",/* 0x073 */ "RESERVED AUX 0x73",/* 0x074 */ "RESERVED AUX 0x74",/* 0x075 */ "RESERVED AUX 0x75",/* 0x076 */ "RESERVED AUX 0x76",/* 0x077 */ "RESERVED AUX 0x77",/* 0x078 */ "RESERVED AUX 0x78",/* 0x079 */ "RESERVED AUX 0x79",/* 0x07a */ "RESERVED AUX 0x7a",/* 0x07b */ "RESERVED AUX 0x7b",/* 0x07c */ "RESERVED AUX 0x7c",/* 0x07d */ "RESERVED AUX 0x7d",/* 0x07e */ "RESERVED AUX 0x7e",/* 0x07f */ "RESERVED AUX 0x7f",
141   AUX_UNUSED_16 /* 0x080 - 0x08f */
142   AUX_UNUSED_16 /* 0x090 - 0x09f */
143   AUX_UNUSED_16 /* 0x0a0 - 0x0af */
144   AUX_UNUSED_16 /* 0x0b0 - 0x0bf */
145    // build configuration registers 0x0c0 - 0x0ff
146   /* 0x0c0 */ "RESERVED AUX 0xc0",/* 0x0c1 */ "RESERVED AUX 0xc1",/* 0x0c2 */ "RESERVED AUX 0xc2",/* 0x0c3 */ "RESERVED AUX 0xc3",/* 0x0c4 */ "RESERVED AUX 0xc4",/* 0x0c5 */ "RESERVED AUX 0xc5",/* 0x0c6 */ "RESERVED AUX 0xc6",/* 0x0c7 */ "RESERVED AUX 0xc7",/* 0x0c8 */ "RESERVED AUX 0xc8",/* 0x0c9 */ "RESERVED AUX 0xc9",/* 0x0ca */ "RESERVED AUX 0xca",/* 0x0cb */ "RESERVED AUX 0xcb",/* 0x0cc */ "RESERVED AUX 0xcc",/* 0x0cd */ "RESERVED AUX 0xcd",/* 0x0ce */ "RESERVED AUX 0xce",/* 0x0cf */ "RESERVED AUX 0xcf",
147   /* 0x0d0 */ "RESERVED AUX 0xd0",/* 0x0d1 */ "RESERVED AUX 0xd1",/* 0x0d2 */ "RESERVED AUX 0xd2",/* 0x0d3 */ "RESERVED AUX 0xd3",/* 0x0d4 */ "RESERVED AUX 0xd4",/* 0x0d5 */ "RESERVED AUX 0xd5",/* 0x0d6 */ "RESERVED AUX 0xd6",/* 0x0d7 */ "RESERVED AUX 0xd7",/* 0x0d8 */ "RESERVED AUX 0xd8",/* 0x0d9 */ "RESERVED AUX 0xd9",/* 0x0da */ "RESERVED AUX 0xda",/* 0x0db */ "RESERVED AUX 0xdb",/* 0x0dc */ "RESERVED AUX 0xdc",/* 0x0dd */ "RESERVED AUX 0xdd",/* 0x0de */ "RESERVED AUX 0xde",/* 0x0df */ "RESERVED AUX 0xdf",
148   /* 0x0e0 */ "RESERVED AUX 0xe0",/* 0x0e1 */ "RESERVED AUX 0xe1",/* 0x0e2 */ "RESERVED AUX 0xe2",/* 0x0e3 */ "RESERVED AUX 0xe3",/* 0x0e4 */ "RESERVED AUX 0xe4",/* 0x0e5 */ "RESERVED AUX 0xe5",/* 0x0e6 */ "RESERVED AUX 0xe6",/* 0x0e7 */ "RESERVED AUX 0xe7",/* 0x0e8 */ "RESERVED AUX 0xe8",/* 0x0e9 */ "RESERVED AUX 0xe9",/* 0x0ea */ "RESERVED AUX 0xea",/* 0x0eb */ "RESERVED AUX 0xeb",/* 0x0ec */ "RESERVED AUX 0xec",/* 0x0ed */ "RESERVED AUX 0xed",/* 0x0ee */ "RESERVED AUX 0xee",/* 0x0ef */ "RESERVED AUX 0xef",
149   /* 0x0f0 */ "RESERVED AUX 0xf0",/* 0x0f1 */ "RESERVED AUX 0xf1",/* 0x0f2 */ "RESERVED AUX 0xf2",/* 0x0f3 */ "RESERVED AUX 0xf3",/* 0x0f4 */ "RESERVED AUX 0xf4",/* 0x0f5 */ "RESERVED AUX 0xf5",/* 0x0f6 */ "RESERVED AUX 0xf6",/* 0x0f7 */ "RESERVED AUX 0xf7",/* 0x0f8 */ "RESERVED AUX 0xf8",/* 0x0f9 */ "RESERVED AUX 0xf9",/* 0x0fa */ "RESERVED AUX 0xfa",/* 0x0fb */ "RESERVED AUX 0xfb",/* 0x0fc */ "RESERVED AUX 0xfc",/* 0x0fd */ "RESERVED AUX 0xfd",/* 0x0fe */ "RESERVED AUX 0xfe",/* 0x0ff */ "RESERVED AUX 0xff",
150   /* 0x100 */ "COUNT1",
151   /* 0x101 */ "CONTROL1",
152   /* 0x102 */ "LIMIT1",
153   /* 0x103 */ UNUSED_REG,
154   /* 0x104 */ UNUSED_REG,
155   /* 0x105 */ UNUSED_REG,
156   /* 0x106 */ UNUSED_REG,
157   /* 0x107 */ UNUSED_REG,
158   /* 0x108 */ UNUSED_REG,
159   /* 0x109 */ UNUSED_REG,
160   /* 0x10a */ UNUSED_REG,
161   /* 0x10b */ UNUSED_REG,
162   /* 0x10c */ UNUSED_REG,
163   /* 0x10d */ UNUSED_REG,
164   /* 0x10e */ UNUSED_REG,
165   /* 0x10f */ UNUSED_REG,
166   AUX_UNUSED_16 /* 0x110 - 0x11f */
167   AUX_UNUSED_16 /* 0x120 - 0x12f */
168   AUX_UNUSED_16 /* 0x130 - 0x13f */
169   AUX_UNUSED_16 /* 0x140 - 0x14f */
170   AUX_UNUSED_16 /* 0x150 - 0x15f */
171   AUX_UNUSED_16 /* 0x160 - 0x16f */
172   AUX_UNUSED_16 /* 0x170 - 0x17f */
173   AUX_UNUSED_16 /* 0x180 - 0x18f */
174   AUX_UNUSED_16 /* 0x190 - 0x19f */
175   AUX_UNUSED_16 /* 0x1a0 - 0x1af */
176   AUX_UNUSED_16 /* 0x1b0 - 0x1bf */
177   AUX_UNUSED_16 /* 0x1c0 - 0x1cf */
178   AUX_UNUSED_16 /* 0x1d0 - 0x1df */
179   AUX_UNUSED_16 /* 0x1e0 - 0x1ef */
180   AUX_UNUSED_16 /* 0x1f0 - 0x1ff */
181   /* 0x200 */ "AUX_IRQ_LEV",
182   /* 0x201 */ "AUX_IRQ_HINT",
183   /* 0x203 */ UNUSED_REG,
184   /* 0x203 */ UNUSED_REG,
185   /* 0x204 */ UNUSED_REG,
186   /* 0x205 */ UNUSED_REG,
187   /* 0x206 */ UNUSED_REG,
188   /* 0x207 */ UNUSED_REG,
189   /* 0x208 */ UNUSED_REG,
190   /* 0x209 */ UNUSED_REG,
191   /* 0x20a */ UNUSED_REG,
192   /* 0x20b */ UNUSED_REG,
193   /* 0x20c */ UNUSED_REG,
194   /* 0x20d */ UNUSED_REG,
195   /* 0x20e */ UNUSED_REG,
196   /* 0x20f */ UNUSED_REG,
197   AUX_UNUSED_16 /* 0x210 - 0x21f */
198   AUX_UNUSED_16 /* 0x220 - 0x22f */
199   AUX_UNUSED_16 /* 0x230 - 0x23f */
200   AUX_UNUSED_16 /* 0x240 - 0x24f */
201   AUX_UNUSED_16 /* 0x250 - 0x25f */
202   AUX_UNUSED_16 /* 0x260 - 0x26f */
203   AUX_UNUSED_16 /* 0x270 - 0x27f */
204   AUX_UNUSED_16 /* 0x280 - 0x28f */
205   AUX_UNUSED_16 /* 0x290 - 0x29f */
206   AUX_UNUSED_16 /* 0x2a0 - 0x2af */
207   AUX_UNUSED_16 /* 0x2b0 - 0x2bf */
208   AUX_UNUSED_16 /* 0x2c0 - 0x2cf */
209   AUX_UNUSED_16 /* 0x2d0 - 0x2df */
210   AUX_UNUSED_16 /* 0x2e0 - 0x2ef */
211   AUX_UNUSED_16 /* 0x2f0 - 0x2ff */
212
213   AUX_UNUSED_16 /* 0x300 - 0x30f */
214   AUX_UNUSED_16 /* 0x310 - 0x31f */
215   AUX_UNUSED_16 /* 0x320 - 0x32f */
216   AUX_UNUSED_16 /* 0x330 - 0x33f */
217   AUX_UNUSED_16 /* 0x340 - 0x34f */
218   AUX_UNUSED_16 /* 0x350 - 0x35f */
219   AUX_UNUSED_16 /* 0x360 - 0x36f */
220   AUX_UNUSED_16 /* 0x370 - 0x37f */
221   AUX_UNUSED_16 /* 0x380 - 0x38f */
222   AUX_UNUSED_16 /* 0x390 - 0x39f */
223   AUX_UNUSED_16 /* 0x3a0 - 0x3af */
224   AUX_UNUSED_16 /* 0x3b0 - 0x3bf */
225   AUX_UNUSED_16 /* 0x3c0 - 0x3cf */
226   AUX_UNUSED_16 /* 0x3d0 - 0x3df */
227   AUX_UNUSED_16 /* 0x3e0 - 0x3ef */
228   AUX_UNUSED_16 /* 0x3f0 - 0x3ff */
229
230   /* 0x400 */ "ERET",
231   /* 0x401 */ "ERBTA",
232   /* 0x403 */ "ERSTATUS",
233   /* 0x403 */ "ECR",
234   /* 0x404 */ "EFA",
235   /* 0x405 */ UNUSED_REG,
236   /* 0x406 */ UNUSED_REG,
237   /* 0x407 */ UNUSED_REG,
238   /* 0x408 */ UNUSED_REG,
239   /* 0x409 */ UNUSED_REG,
240   /* 0x40a */ "ICAUSE1",
241   /* 0x40b */ "ICAUSE2",
242   /* 0x40c */ "AUX_IENABLE",
243   /* 0x40d */ "AUX_ITRIGGER",
244   /* 0x40e */ UNUSED_REG,
245   /* 0x40f */ UNUSED_REG,
246
247   /* 0x410 */ "XPU",
248   /* 0x411 */ UNUSED_REG,
249   /* 0x412 */ "BTA",
250   /* 0x413 */ "BTA_L1",
251   /* 0x414 */ "BTA_L2",
252   /* 0x415 */ "AUX_IRQ_PULSE_CANCEL",
253   /* 0x416 */ "AUX_IRQ_PENDING",
254   /* 0x417 */ UNUSED_REG,
255   /* 0x418 */ UNUSED_REG,
256   /* 0x419 */ UNUSED_REG,
257   /* 0x41a */ UNUSED_REG,
258   /* 0x41b */ UNUSED_REG,
259   /* 0x41c */ UNUSED_REG,
260   /* 0x41d */ UNUSED_REG,
261   /* 0x41e */ UNUSED_REG,
262   /* 0x41f */ UNUSED_REG
263};
264
62265//#define EXPLICIT_EXTENSIONS
63266
64267static const char *datasize[0x4] =
r242457r242458
8961099   return 4;
8971100}
8981101
1102#define PRINT_AUX_REGNAME \
1103      if ((auxreg >= 0) && (auxreg < 0x420)) \
1104      { \
1105         if (strcmp(auxregnames[auxreg],"unusedreg")) \
1106            output += sprintf(output, "[%s]", auxregnames[auxreg]); \
1107         else \
1108            output  += sprintf( output, "[%03x]", auxreg); \
1109      } \
1110      else \
1111         output  += sprintf( output, "[%03x]", auxreg); \
8991112
900
9011113int arcompact_handle04_2a_dasm(DASM_OPS_32)  // Load FROM Auxiliary register TO register
9021114{
9031115
r242457r242458
9621174      int U = (op & 0x00000fc0) >> 6; op &= ~0x00000fc0;
9631175      int res = (op & 0x0000003f) >> 0; op &= ~0x0000003f;
9641176
965      output  += sprintf( output, "U(%02x) ", U );
1177      int auxreg = U;
1178      PRINT_AUX_REGNAME
9661179     
9671180      if (res) output  += sprintf( output, "reserved(%02x) ", res );
9681181   }
r242457r242458
9701183   {
9711184      COMMON32_GET_s12;
9721185
973      output  += sprintf( output, "S(%03x)", S);
1186      int auxreg = S;
1187      PRINT_AUX_REGNAME
9741188
9751189   }
9761190   else if (p == 3)
r242457r242458
10481262      int U = (op & 0x00000fc0) >> 6; op &= ~0x00000fc0;
10491263      int res = (op & 0x0000003f) >> 0; op &= ~0x0000003f;
10501264
1051      output  += sprintf( output, "[%02x]", U );
1265      int auxreg = U;
1266      PRINT_AUX_REGNAME
10521267
10531268      if (res) output  += sprintf( output, " (reserved %02x) ", res );
10541269
r242457r242458
10581273   {
10591274      COMMON32_GET_s12;
10601275
1061      output  += sprintf( output, "[%03x]", S);
1276      int auxreg = S;
10621277
1278      PRINT_AUX_REGNAME
1279
10631280   }
10641281   else if (p == 3)
10651282   {


Previous 199869 Revisions Next


© 1997-2024 The MAME Team