trunk/src/emu/cpu/arcompact/arcompactdasm.c
| r242206 | r242207 | |
| 120 | 120 | /* 0f */ "<BBIT1>" |
| 121 | 121 | }; |
| 122 | 122 | |
| 123 | static const char *table18[0x8] = |
| 124 | { |
| 125 | /* 00 */ "LD_S (SP)", |
| 126 | /* 01 */ "LDB_S (SP)", |
| 127 | /* 02 */ "ST_S (SP)", |
| 128 | /* 03 */ "STB_S (SP)", |
| 129 | /* 04 */ "ADD_S (SP)", |
| 130 | /* 05 */ "ADD_S/SUB_S (SP)", |
| 131 | /* 06 */ "POP_S (SP)", |
| 132 | /* 07 */ "PUSH_S (SP)", |
| 123 | 133 | |
| 134 | }; |
| 135 | |
| 136 | |
| 137 | |
| 124 | 138 | #define ARCOMPACT_OPERATION ((op & 0xf800) >> 11) |
| 125 | 139 | |
| 126 | 140 | CPU_DISASSEMBLE(arcompact) |
| r242206 | r242207 | |
| 233 | 247 | |
| 234 | 248 | } |
| 235 | 249 | else |
| 236 | | { |
| 250 | { |
| 237 | 251 | size = 2; |
| 238 | | print("%s (%04x)", basic[instruction], op & ~0xf800 ); |
| 252 | |
| 253 | switch (instruction) |
| 254 | { |
| 255 | case 0x18: |
| 256 | { |
| 257 | // Stack Pointer Based Instructions (16-bit) |
| 258 | // 11000 bbb iii uuuuu |
| 259 | UINT8 subinstr = (op & 0x00e0) >> 5; |
| 260 | print("%s (%04x)", table18[subinstr], op & ~0xf8e0); |
| 261 | break; |
| 262 | |
| 263 | } |
| 264 | |
| 265 | default: |
| 266 | print("%s (%04x)", basic[instruction], op & ~0xf800); |
| 267 | break; |
| 268 | } |
| 239 | 269 | } |
| 240 | 270 | |
| 241 | 271 | |