summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/i860/i860dasm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/i860/i860dasm.cpp')
-rw-r--r--src/devices/cpu/i860/i860dasm.cpp378
1 files changed, 0 insertions, 378 deletions
diff --git a/src/devices/cpu/i860/i860dasm.cpp b/src/devices/cpu/i860/i860dasm.cpp
deleted file mode 100644
index 03d24e2d2a8..00000000000
--- a/src/devices/cpu/i860/i860dasm.cpp
+++ /dev/null
@@ -1,378 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Jason Eckhardt
-#include "i860.h"
-
-/* Sub-group decoders */
-static void i860_dasm_core_dasm(const uint32_t op, char* buffer);
-static void i860_dasm_floating_point_dasm(const uint32_t op, char* buffer);
-static void i860_dasm_CTRL_dasm(const uint32_t op, char* buffer);
-
-/* REG-Format Opcodes*/
-static void i860_dasm_ldx(const uint32_t op, char* buffer);
-static void i860_dasm_stx(const uint32_t op, char* buffer);
-static void i860_dasm_ixfr(const uint32_t op, char* buffer);
-static void i860_dasm_fid_fst(const uint32_t op, char* buffer);
-static void i860_dasm_flush(const uint32_t op, char* buffer);
-static void i860_dasm_pstd(const uint32_t op, char* buffer);
-static void i860_dasm_ldc_sdc(const uint32_t op, char* buffer);
-static void i860_dasm_bri(const uint32_t op, char* buffer);
-static void i860_dasm_trap(const uint32_t op, char* buffer);
-static void i860_dasm_bte_btne(const uint32_t op, char* buffer);
-static void i860_dasm_pfidy(const uint32_t op, char* buffer);
-static void i860_dasm_addu_subu(const uint32_t op, char* buffer);
-static void i860_dasm_shl_shr(const uint32_t op, char* buffer);
-static void i860_dasm_shrd(const uint32_t op, char* buffer);
-static void i860_dasm_bla(const uint32_t op, char* buffer);
-static void i860_dasm_shra(const uint32_t op, char* buffer);
-static void i860_dasm_and_andh(const uint32_t op, char* buffer);
-static void i860_dasm_andnot_andnoth(const uint32_t op, char* buffer);
-static void i860_dasm_or_orh(const uint32_t op, char* buffer);
-static void i860_dasm_xor_xorh(const uint32_t op, char* buffer);
-
-/* CORE Escape Opcodes */
-static void i860_dasm_CORE_lock(const uint32_t op, char* buffer);
-static void i860_dasm_CORE_calli(const uint32_t op, char* buffer);
-static void i860_dasm_CORE_intovr(const uint32_t op, char* buffer);
-static void i860_dasm_CORE_unlock(const uint32_t op, char* buffer);
-
-/* CTRL-Format Opcodes */
-static void i860_dasm_CTRL_br(const uint32_t op, char* buffer);
-static void i860_dasm_CTRL_call(const uint32_t op, char* buffer);
-static void i860_dasm_CTRL_bc_bct(const uint32_t op, char* buffer);
-static void i860_dasm_CTRL_bnc_bnct(const uint32_t op, char* buffer);
-
-/* Floating-Point Instructions */
-
-
-CPU_DISASSEMBLE( i860 )
-{
- char tempB[1024] = "";
-
- /* Little Endian */
- const uint32_t op = (oprom[3] << 24) | (oprom[2] << 16) | (oprom[1] << 8) | (oprom[0] << 0);
- //const uint32_t op = (oprom[2] << 24) | (oprom[3] << 16) | (oprom[0] << 8) | (oprom[1] << 0); /* Mixed Endian */
- //const uint32_t op = (oprom[0] << 24) | (oprom[1] << 16) | (oprom[2] << 8) | (oprom[3] << 0); /* Big Endian */
- //const uint32_t op = (oprom[1] << 24) | (oprom[0] << 16) | (oprom[3] << 8) | (oprom[2] << 0); /* Mixed Endian */
-
- /* The opcode is the top 6 bits */
- uint8_t opcode = (op >> 26) & 0x3f;
-
- /* DEBUG - print this out if you feel things are going a bit wonky */
- // sprintf(buffer, "%08x : oo %02x", op, opcode);
-
- /* Main decode */
- switch (opcode)
- {
- case 0x00:
- case 0x01:
- case 0x04:
- case 0x05: i860_dasm_ldx(op, tempB); break;
-
- case 0x03:
- case 0x07: i860_dasm_stx(op, tempB); break;
-
- case 0x02: i860_dasm_ixfr(op, tempB); break;
-
- case 0x06: sprintf(tempB, "(reserved)"); break;
-
- case 0x08:
- case 0x09:
- case 0x0a:
- case 0x0b: i860_dasm_fid_fst(op, tempB); break;
-
- case 0x0d: i860_dasm_flush(op, tempB); break;
-
- case 0x0f: i860_dasm_pstd(op, tempB); break;
-
- case 0x0c:
- case 0x0e: i860_dasm_ldc_sdc(op, tempB); break;
-
- case 0x10: i860_dasm_bri(op, tempB); break;
-
- case 0x11: i860_dasm_trap(op, tempB); break;
-
- case 0x12: i860_dasm_floating_point_dasm(op, tempB); break; /* Floating point operation sub-group */
-
- case 0x13: i860_dasm_core_dasm(op, tempB); break; /* Core operation sub-group */
-
- case 0x14:
- case 0x15:
- case 0x16:
- case 0x17: i860_dasm_bte_btne(op, tempB); break;
-
- case 0x18:
- case 0x19: i860_dasm_pfidy(op, tempB); break;
-
- case 0x1a:
- case 0x1b:
- case 0x1c:
- case 0x1d:
- case 0x1e:
- case 0x1f: i860_dasm_CTRL_dasm(op, tempB); break; /* CTRL operation sub-group */
-
- case 0x20:
- case 0x21:
- case 0x22:
- case 0x23:
- case 0x24:
- case 0x25:
- case 0x26:
- case 0x27: i860_dasm_addu_subu(op, tempB); break;
-
- case 0x28:
- case 0x29:
- case 0x2a:
- case 0x2b: i860_dasm_shl_shr(op, tempB); break;
-
- case 0x2c: i860_dasm_shrd(op, tempB); break;
-
- case 0x2d: i860_dasm_bla(op, tempB); break;
-
- case 0x2e:
- case 0x2f: i860_dasm_shra(op, tempB); break;
-
- case 0x30:
- case 0x31:
- case 0x32:
- case 0x33: i860_dasm_and_andh(op, tempB); break;
-
- case 0x34:
- case 0x35:
- case 0x36:
- case 0x37: i860_dasm_andnot_andnoth(op, tempB); break;
-
- case 0x38:
- case 0x39:
- case 0x3a:
- case 0x3b: i860_dasm_or_orh(op, tempB); break;
-
- case 0x3c:
- case 0x3d:
- case 0x3e:
- case 0x3f: i860_dasm_xor_xorh(op, tempB); break;
-
- default: sprintf(tempB, "(reserved)"); break;
- }
-
- /* More Debug */
- //strcat(buffer, " : ");
- //strcat(buffer, tempB);
- sprintf(buffer, "%s", tempB);
-
- /* All opcodes are 32 bits */
- return (4 | DASMFLAG_SUPPORTED);
-}
-
-
-// BIT HELPER
-// 31 27 23 19 15 11 7 3
-// 0000 0011 1111 1111 0000 0111 1110 0000
-
-
-/**********************/
-/* Sub-group decoders */
-/**********************/
-static void i860_dasm_core_dasm(const uint32_t op, char* buffer)
-{
- //uint8_t src1 = (op >> 11) & 0x0000001f;
-
- /* Reserved bits must be set to 0 */
- if ( (op & 0x000007e0) || (op & 0x03ff0000) )
- {
- //logerror("[i860] Reserved CORE bits must be set to 0.");
- printf("CORE baddie\n");
- }
-
- switch(op & 0x0000001f)
- {
- case 0x01: i860_dasm_CORE_lock(op, buffer); break;
- case 0x02: i860_dasm_CORE_calli(op, buffer); break;
- case 0x04: i860_dasm_CORE_intovr(op, buffer); break;
- case 0x07: i860_dasm_CORE_unlock(op, buffer); break;
-
- default: sprintf(buffer, "(reserved)"); break;
- }
-}
-
-static void i860_dasm_floating_point_dasm(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "[[F-P unit]]");
-}
-
-static void i860_dasm_CTRL_dasm(const uint32_t op, char* buffer)
-{
- uint8_t opc = (op >> 26) & 0x07;
-
- switch(opc)
- {
- case 0x02: i860_dasm_CTRL_br(op, buffer); break;
- case 0x03: i860_dasm_CTRL_call(op, buffer); break;
- case 0x04: case 0x05: i860_dasm_CTRL_bc_bct(op, buffer); break;
- case 0x06: case 0x07: i860_dasm_CTRL_bnc_bnct(op, buffer); break;
-
- default: sprintf(buffer, "(reserved)"); break;
- }
-}
-
-
-/*********************/
-/* REG-Format Opcodes*/
-/*********************/
-static void i860_dasm_ldx(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "ldx");
-}
-
-static void i860_dasm_stx(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "stx");
-}
-
-static void i860_dasm_ixfr(const uint32_t op, char* buffer)
-{
-// uint16_t val = op & 0x7ff;
-// uint8_t opc = (op >> 26) & 0x3f;
-// uint8_t src2 = (op >> 21) & 0x1f;
-// uint8_t dest = (op >> 16) & 0x1f;
-// uint8_t src1 = (op >> 11) & 0x1f;
-
- sprintf(buffer, "ixfr");
-}
-
-static void i860_dasm_fid_fst(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "fst");
-}
-
-static void i860_dasm_flush(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "flush");
-}
-
-static void i860_dasm_pstd(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "pstd");
-}
-
-static void i860_dasm_ldc_sdc(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "ldc, sdc");
-}
-
-static void i860_dasm_bri(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "bri");
-}
-
-static void i860_dasm_trap(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "trap");
-}
-
-static void i860_dasm_bte_btne(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "bte, btne");
-}
-
-static void i860_dasm_pfidy(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "pfidy");
-}
-
-static void i860_dasm_addu_subu(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "addu, subu");
-}
-
-static void i860_dasm_shl_shr(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "shl, shr");
-}
-
-static void i860_dasm_shrd(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "shrd");
-}
-
-static void i860_dasm_bla(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "bla");
-}
-
-static void i860_dasm_shra(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "shra");
-}
-
-static void i860_dasm_and_andh(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "and, andh");
-}
-
-static void i860_dasm_andnot_andnoth(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "andnot, andnoth");
-}
-
-static void i860_dasm_or_orh(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "or, orh");
-}
-
-static void i860_dasm_xor_xorh(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "xor, xorh");
-}
-
-
-/***********************/
-/* CORE Escape Opcodes */
-/***********************/
-static void i860_dasm_CORE_lock(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "lock");
-}
-
-static void i860_dasm_CORE_calli(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "calli");
-}
-
-static void i860_dasm_CORE_intovr(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "intovr");
-}
-
-static void i860_dasm_CORE_unlock(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "unlock");
-}
-
-
-/***********************/
-/* CTRL-Format Opcodes */
-/***********************/
-static void i860_dasm_CTRL_br(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "br");
-}
-
-static void i860_dasm_CTRL_call(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "call");
-}
-
-static void i860_dasm_CTRL_bc_bct(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "bct");
-}
-
-static void i860_dasm_CTRL_bnc_bnct(const uint32_t op, char* buffer)
-{
- sprintf(buffer, "bnct");
-}
-
-
-/*******************************/
-/* Floating-Point Instructions */
-/*******************************/