[arm] Remove unused codegen files.
authorZoltan Varga <vargaz@gmail.com>
Tue, 26 May 2015 00:09:33 +0000 (00:09 +0000)
committerZoltan Varga <vargaz@gmail.com>
Tue, 26 May 2015 00:29:47 +0000 (00:29 +0000)
mono/arch/arm/Makefile.am
mono/arch/arm/arm-codegen.c [deleted file]
mono/arch/arm/arm-codegen.h
mono/arch/arm/arm-dis.c [deleted file]
mono/arch/arm/arm-dis.h [deleted file]

index 593574c6b9cdd9216c8c3253c76334118d8dc795..8d2f52782003ea31467289c88cec4ca111c2f4aa 100644 (file)
@@ -1,17 +1,8 @@
 
 AM_CPPFLAGS = $(GLIB_CFLAGS) -I$(top_srcdir)
 
-noinst_LTLIBRARIES = libmonoarch-arm.la
-
 BUILT_SOURCES = arm_dpimacros.h arm_vfpmacros.h
 
-
-libmonoarch_arm_la_SOURCES = $(BUILT_SOURCES) \
-       arm-codegen.c \
-       arm-codegen.h \
-       arm-dis.c \
-       arm-dis.h
-
 arm_dpimacros.h: dpiops.sh mov_macros.th dpi_macros.th cmp_macros.th
        (cd $(srcdir); bash ./dpiops.sh) > $@t
        mv $@t $@
@@ -22,6 +13,6 @@ arm_vfpmacros.h: vfpops.sh vfpm_macros.th vfp_macros.th
 
 CLEANFILES = $(BUILT_SOURCES)
 
-EXTRA_DIST = dpiops.sh mov_macros.th dpi_macros.th cmp_macros.th \
+EXTRA_DIST = arm-codegen.h dpiops.sh mov_macros.th dpi_macros.th cmp_macros.th \
        vfpm_macros.th vfp_macros.th arm-vfp-codegen.h vfpops.sh
 
diff --git a/mono/arch/arm/arm-codegen.c b/mono/arch/arm/arm-codegen.c
deleted file mode 100644 (file)
index 9914ace..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- * arm-codegen.c
- * Copyright (c) 2002 Sergey Chaban <serge@wildwestsoftware.com>
- */
-
-#include "arm-codegen.h"
-
-
-arminstr_t* arm_emit_std_prologue(arminstr_t* p, unsigned int local_size) {
-       ARM_MOV_REG_REG(p, ARMREG_IP, ARMREG_SP);
-
-       /* save args */
-       ARM_PUSH(p,   (1 << ARMREG_A1)
-                   | (1 << ARMREG_A2)
-                   | (1 << ARMREG_A3)
-                   | (1 << ARMREG_A4));
-
-       ARM_PUSH(p, (1U << ARMREG_IP) | (1U << ARMREG_LR));
-
-       if (local_size != 0) {
-               if ((local_size & (~0xFF)) == 0) {
-                       ARM_SUB_REG_IMM8(p, ARMREG_SP, ARMREG_SP, local_size);
-               } else {
-                       /* TODO: optimize */
-                       p = arm_mov_reg_imm32(p, ARMREG_IP, local_size);
-                       ARM_SUB_REG_REG(p, ARMREG_SP, ARMREG_SP, ARMREG_IP);
-                       ARM_ADD_REG_IMM8(p, ARMREG_IP, ARMREG_IP, sizeof(armword_t));
-                       ARM_LDR_REG_REG(p, ARMREG_IP, ARMREG_SP, ARMREG_IP);
-               }
-       }
-
-       return p;
-}
-
-arminstr_t* arm_emit_std_epilogue(arminstr_t* p, unsigned int local_size, int pop_regs) {
-       if (local_size != 0) {
-               if ((local_size & (~0xFF)) == 0) {
-                       ARM_ADD_REG_IMM8(p, ARMREG_SP, ARMREG_SP, local_size);
-               } else {
-                       /* TODO: optimize */
-                       p = arm_mov_reg_imm32(p, ARMREG_IP, local_size);
-                       ARM_ADD_REG_REG(p, ARMREG_SP, ARMREG_SP, ARMREG_IP);
-               }
-       }
-
-       ARM_POP_NWB(p, (1 << ARMREG_SP) | (1 << ARMREG_PC) | (pop_regs & 0x3FF));
-
-       return p;
-}
-
-
-/* do not push A1-A4 */
-arminstr_t* arm_emit_lean_prologue(arminstr_t* p, unsigned int local_size, int push_regs) {
-       ARM_MOV_REG_REG(p, ARMREG_IP, ARMREG_SP);
-       /* push_regs upto R10 will be saved */
-       ARM_PUSH(p, (1U << ARMREG_IP) | (1U << ARMREG_LR) | (push_regs & 0x3FF));
-
-       if (local_size != 0) {
-               if ((local_size & (~0xFF)) == 0) {
-                       ARM_SUB_REG_IMM8(p, ARMREG_SP, ARMREG_SP, local_size);
-               } else {
-                       /* TODO: optimize */
-                       p = arm_mov_reg_imm32(p, ARMREG_IP, local_size);
-                       ARM_SUB_REG_REG(p, ARMREG_SP, ARMREG_SP, ARMREG_IP);
-                       /* restore IP from stack */
-                       ARM_ADD_REG_IMM8(p, ARMREG_IP, ARMREG_IP, sizeof(armword_t));
-                       ARM_LDR_REG_REG(p, ARMREG_IP, ARMREG_SP, ARMREG_IP);
-               }
-       }
-
-       return p;
-}
-
-/* Bit scan forward. */
-int arm_bsf(armword_t val) {
-       int i;
-       armword_t mask;
-
-       if (val == 0) return 0;
-       for (i=1, mask=1; (i <= 8 * sizeof(armword_t)) && ((val & mask) == 0); ++i, mask<<=1);
-
-       return i;
-}
-
-
-int arm_is_power_of_2(armword_t val) {
-       return ((val & (val-1)) == 0);
-}
-
-
-/*
- * returns:
- *   1 - unable to represent
- *   positive even number - MOV-representable
- *   negative even number - MVN-representable
- */
-int calc_arm_mov_const_shift(armword_t val) {
-       armword_t mask;
-       int res = 1, shift;
-
-       for (shift=0; shift < 32; shift+=2) {
-               mask = ARM_SCALE(0xFF, shift);
-               if ((val & (~mask)) == 0) {
-                       res = shift;
-                       break;
-               }
-               if (((~val) & (~mask)) == 0) {
-                       res = -shift - 2;
-                       break;
-               }
-       }
-
-       return res;
-}
-
-
-int is_arm_const(armword_t val) {
-       int res;
-       res = arm_is_power_of_2(val);
-       if (!res) {
-               res = calc_arm_mov_const_shift(val);
-               res = !(res < 0 || res == 1);
-       }
-       return res;
-}
-
-
-int arm_const_steps(armword_t val) {
-       int shift, steps = 0;
-
-       while (val != 0) {
-               shift = (arm_bsf(val) - 1) & (~1);
-               val &= ~(0xFF << shift);
-               ++steps;
-       }
-       return steps;
-}
-
-
-/*
- * ARM cannot load arbitrary 32-bit constants directly into registers;
- * widely used work-around for this is to store constants into a
- * PC-addressable pool and use LDR instruction with PC-relative address
- * to load constant into register. Easiest way to implement this is to
- * embed constant inside a function with unconditional branch around it.
- * The above method is not used at the moment.
- * This routine always emits sequence of instructions to generate
- * requested constant. In the worst case it takes 4 instructions to
- * synthesize a constant - 1 MOV and 3 subsequent ORRs.
- */
-arminstr_t* arm_mov_reg_imm32_cond(arminstr_t* p, int reg, armword_t imm32, int cond) {
-       int mov_op;
-       int step_op;
-       int snip;
-       int shift = calc_arm_mov_const_shift(imm32);
-
-       if ((shift & 0x80000001) != 1) {
-               if (shift >= 0) {
-                       ARM_MOV_REG_IMM_COND(p, reg, imm32 >> ((32 - shift) & 31), shift, cond);
-               } else {
-                       ARM_MVN_REG_IMM_COND(p, reg, (imm32 ^ (~0)) >> ((32 + 2 + shift) & 31), (-shift - 2), cond);
-               }
-       } else {
-               mov_op = ARMOP_MOV;
-               step_op = ARMOP_ORR;
-
-               if (arm_const_steps(imm32) > arm_const_steps(~imm32)) {
-                       mov_op = ARMOP_MVN;
-                       step_op = ARMOP_SUB;
-                       imm32 = ~imm32;
-               }
-
-               shift = (arm_bsf(imm32) - 1) & (~1);
-               snip = imm32 & (0xFF << shift);
-               ARM_EMIT(p, ARM_DEF_DPI_IMM_COND((unsigned)snip >> shift, (32 - shift) >> 1, reg, 0, 0, mov_op, cond));
-
-               while ((imm32 ^= snip) != 0) {
-                       shift = (arm_bsf(imm32) - 1) & (~1);
-                       snip = imm32 & (0xFF << shift);
-                       ARM_EMIT(p, ARM_DEF_DPI_IMM_COND((unsigned)snip >> shift, (32 - shift) >> 1, reg, reg, 0, step_op, cond));
-               }
-       }
-
-       return p;
-}
-
-
-arminstr_t* arm_mov_reg_imm32(arminstr_t* p, int reg, armword_t imm32) {
-       return arm_mov_reg_imm32_cond(p, reg, imm32, ARMCOND_AL);
-}
-
-
-
index d4d7f7c481399cfc1358dfff4454147095a898e8..5ba36bbfaa8bafd5bb394a58b06437e2ea307cf4 100644 (file)
@@ -16,19 +16,6 @@ extern "C" {
 typedef unsigned int arminstr_t;
 typedef unsigned int armword_t;
 
-/* Helper functions */
-arminstr_t* arm_emit_std_prologue(arminstr_t* p, unsigned int local_size);
-arminstr_t* arm_emit_std_epilogue(arminstr_t* p, unsigned int local_size, int pop_regs);
-arminstr_t* arm_emit_lean_prologue(arminstr_t* p, unsigned int local_size, int push_regs);
-int arm_is_power_of_2(armword_t val);
-int calc_arm_mov_const_shift(armword_t val);
-int is_arm_const(armword_t val);
-int arm_bsf(armword_t val);
-arminstr_t* arm_mov_reg_imm32_cond(arminstr_t* p, int reg, armword_t imm32, int cond);
-arminstr_t* arm_mov_reg_imm32(arminstr_t* p, int reg, armword_t imm32);
-
-
-
 #if defined(_MSC_VER) || defined(__CC_NORCROFT)
        void __inline _arm_emit(arminstr_t** p, arminstr_t i) {**p = i; (*p)++;}
 #      define ARM_EMIT(p, i) _arm_emit((arminstr_t**)&p, (arminstr_t)(i))
diff --git a/mono/arch/arm/arm-dis.c b/mono/arch/arm/arm-dis.c
deleted file mode 100644 (file)
index 5074f26..0000000
+++ /dev/null
@@ -1,509 +0,0 @@
-/*
- * Copyright (c) 2002 Sergey Chaban <serge@wildwestsoftware.com>
- */
-
-
-#include <stdarg.h>
-
-#include "arm-dis.h"
-#include "arm-codegen.h"
-
-
-static ARMDis* gdisasm = NULL;
-
-static int use_reg_alias = 1;
-
-const static char* cond[] = {
-       "eq", "ne", "cs", "cc", "mi", "pl", "vs", "vc",
-       "hi", "ls", "ge", "lt", "gt", "le", "", "nv"
-};
-
-const static char* ops[] = {
-       "and", "eor", "sub", "rsb", "add", "adc", "sbc", "rsc",
-       "tst", "teq", "cmp", "cmn", "orr", "mov", "bic", "mvn"
-};
-
-const static char* shift_types[] = {"lsl", "lsr", "asr", "ror"};
-
-const static char* mul_ops[] = {
-       "mul", "mla", "?", "?", "umull", "umlal", "smull", "smlal"
-};
-
-const static char* reg_alias[] = {
-       "a1", "a2", "a3", "a4",
-       "r4", "r5", "r6", "r7", "r8", "r9", "r10",
-       "fp", "ip", "sp", "lr", "pc"
-};
-
-const static char* msr_fld[] = {"f", "c", "x", "?", "s"};
-
-
-/* private functions prototypes (to keep compiler happy) */
-void chk_out(ARMDis* dis);
-void dump_reg(ARMDis* dis, int reg);
-void dump_creg(ARMDis* dis, int creg);
-void dump_reglist(ARMDis* dis, int reg_list);
-void init_gdisasm(void);
-
-void dump_br(ARMDis* dis, ARMInstr i);
-void dump_cdp(ARMDis* dis, ARMInstr i);
-void dump_cdt(ARMDis* dis, ARMInstr i);
-void dump_crt(ARMDis* dis, ARMInstr i);
-void dump_dpi(ARMDis* dis, ARMInstr i);
-void dump_hxfer(ARMDis* dis, ARMInstr i);
-void dump_mrs(ARMDis* dis, ARMInstr i);
-void dump_mrt(ARMDis* dis, ARMInstr i);
-void dump_msr(ARMDis* dis, ARMInstr i);
-void dump_mul(ARMDis* dis, ARMInstr i);
-void dump_swi(ARMDis* dis, ARMInstr i);
-void dump_swp(ARMDis* dis, ARMInstr i);
-void dump_wxfer(ARMDis* dis, ARMInstr i);
-void dump_clz(ARMDis* dis, ARMInstr i);
-
-
-/*
-void out(ARMDis* dis, const char* format, ...) {
-       va_list arglist;
-       va_start(arglist, format);
-       fprintf(dis->dis_out, format, arglist);
-       va_end(arglist);
-}
-*/
-
-
-void chk_out(ARMDis* dis) {
-       if (dis != NULL && dis->dis_out == NULL) dis->dis_out = stdout;
-}
-
-
-void armdis_set_output(ARMDis* dis, FILE* f) {
-       if (dis != NULL) {
-               dis->dis_out = f;
-               chk_out(dis);
-       }
-}
-
-FILE* armdis_get_output(ARMDis* dis) {
-       return (dis != NULL ? dis->dis_out : NULL);
-}
-
-
-
-
-void dump_reg(ARMDis* dis, int reg) {
-       reg &= 0xF;
-       if (!use_reg_alias || (reg > 3 && reg < 11)) {
-               fprintf(dis->dis_out, "r%d", reg);
-       } else {
-               fprintf(dis->dis_out, "%s", reg_alias[reg]);
-       }
-}
-
-void dump_creg(ARMDis* dis, int creg) {
-       if (dis != NULL) {
-               creg &= 0xF;
-               fprintf(dis->dis_out, "c%d", creg);
-       }
-}
-
-void dump_reglist(ARMDis* dis, int reg_list) {
-       int i = 0, j, n = 0;
-       int m1 = 1, m2, rn;
-       while (i < 16) {
-               if ((reg_list & m1) != 0) {
-                       if (n != 0) fprintf(dis->dis_out, ", ");
-                       n++;
-                       dump_reg(dis, i);
-                       for (j = i+1, rn = 0, m2 = m1<<1; j < 16; ++j, m2<<=1) {
-                               if ((reg_list & m2) != 0) ++rn;
-                               else break;
-                       }
-                       i+=rn;
-                       if (rn > 1) {
-                               fprintf(dis->dis_out, "-");
-                               dump_reg(dis, i);
-                       } else if (rn == 1) {
-                               fprintf(dis->dis_out, ", ");
-                               dump_reg(dis, i);
-                       }
-                       m1<<=(rn+1);
-                       i++;
-               } else {
-                       ++i;
-                       m1<<=1;
-               }
-       }
-}
-
-
-void dump_br(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "b%s%s\t%x\t; %p -> %#x",
-           (i.br.link == 1) ? "l" : "",
-           cond[i.br.cond], i.br.offset, dis->pi, (int)dis->pi + 4*2 + ((int)(i.br.offset << 8) >> 6));
-}
-
-
-void dump_dpi(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s", ops[i.dpi.all.opcode], cond[i.dpi.all.cond]);
-
-       if ((i.dpi.all.opcode < ARMOP_TST || i.dpi.all.opcode > ARMOP_CMN) && (i.dpi.all.s != 0)) {
-               fprintf(dis->dis_out, "s");
-       }
-
-       fprintf(dis->dis_out, "\t");
-
-       if ((i.dpi.all.opcode < ARMOP_TST) || (i.dpi.all.opcode > ARMOP_CMN)) {
-               /* for comparison operations Rd is ignored */
-               dump_reg(dis, i.dpi.all.rd);
-               fprintf(dis->dis_out, ", ");
-       }
-
-       if ((i.dpi.all.opcode != ARMOP_MOV) && (i.dpi.all.opcode != ARMOP_MVN)) {
-               /* for MOV/MVN Rn is ignored */
-               dump_reg(dis, i.dpi.all.rn);
-               fprintf(dis->dis_out, ", ");
-       }
-
-       if (i.dpi.all.type == 1) {
-               /* immediate */
-               if (i.dpi.op2_imm.rot != 0) {
-                       fprintf(dis->dis_out, "#%d, %d\t; 0x%x", i.dpi.op2_imm.imm, i.dpi.op2_imm.rot << 1,
-                               ARM_SCALE(i.dpi.op2_imm.imm, (i.dpi.op2_imm.rot << 1)) );
-               } else {
-                       fprintf(dis->dis_out, "#%d\t; 0x%x", i.dpi.op2_imm.imm, i.dpi.op2_imm.imm);
-               }
-       } else {
-               /* reg-reg */
-               if (i.dpi.op2_reg.tag == 0) {
-                       /* op2 is reg shift by imm */
-                       dump_reg(dis, i.dpi.op2_reg_imm.r2.rm);
-                       if (i.dpi.op2_reg_imm.imm.shift != 0) {
-                               fprintf(dis->dis_out, " %s #%d", shift_types[i.dpi.op2_reg_imm.r2.type], i.dpi.op2_reg_imm.imm.shift);
-                       }
-               } else {
-                       /* op2 is reg shift by reg */
-                       dump_reg(dis, i.dpi.op2_reg_reg.r2.rm);
-                       fprintf(dis->dis_out, " %s ", shift_types[i.dpi.op2_reg_reg.r2.type]);
-                       dump_reg(dis, i.dpi.op2_reg_reg.reg.rs);
-               }
-
-       }
-}
-
-void dump_wxfer(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s%s%s\t",
-               (i.wxfer.all.ls == 0) ? "str" : "ldr",
-               cond[i.generic.cond],
-               (i.wxfer.all.b == 0) ? "" : "b",
-               (i.wxfer.all.ls != 0 && i.wxfer.all.wb != 0) ? "t" : "");
-       dump_reg(dis, i.wxfer.all.rd);
-       fprintf(dis->dis_out, ", [");
-       dump_reg(dis, i.wxfer.all.rn);
-       fprintf(dis->dis_out, "%s, ", (i.wxfer.all.p == 0) ? "]" : "");
-
-       if (i.wxfer.all.type == 0) { /* imm */
-               fprintf(dis->dis_out, "#%s%d", (i.wxfer.all.u == 0) ? "-" : "", i.wxfer.all.op2_imm);
-       } else {
-               dump_reg(dis, i.wxfer.op2_reg_imm.r2.rm);
-               if (i.wxfer.op2_reg_imm.imm.shift != 0) {
-                       fprintf(dis->dis_out, " %s #%d", shift_types[i.wxfer.op2_reg_imm.r2.type], i.wxfer.op2_reg_imm.imm.shift);
-               }
-       }
-
-       if (i.wxfer.all.p != 0) {
-               /* close pre-index instr, also check for write-back */
-               fprintf(dis->dis_out, "]%s", (i.wxfer.all.wb != 0) ? "!" : "");
-       }
-}
-
-void dump_hxfer(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s%s%s\t",
-               (i.hxfer.ls == 0) ? "str" : "ldr",
-               cond[i.generic.cond],
-               (i.hxfer.s != 0) ? "s" : "",
-               (i.hxfer.h != 0) ? "h" : "b");
-       dump_reg(dis, i.hxfer.rd);
-       fprintf(dis->dis_out, ", [");
-       dump_reg(dis, i.hxfer.rn);
-       fprintf(dis->dis_out, "%s, ", (i.hxfer.p == 0) ? "]" : "");
-
-       if (i.hxfer.type != 0) { /* imm */
-               fprintf(dis->dis_out, "#%s%d", (i.hxfer.u == 0) ? "-" : "", (i.hxfer.imm_hi << 4) | i.hxfer.rm);
-       } else {
-               dump_reg(dis, i.hxfer.rm);
-       }
-
-       if (i.hxfer.p != 0) {
-               /* close pre-index instr, also check for write-back */
-               fprintf(dis->dis_out, "]%s", (i.hxfer.wb != 0) ? "!" : "");
-       }
-}
-
-
-void dump_mrt(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s%s%s\t", (i.mrt.ls == 0) ? "stm" : "ldm", cond[i.mrt.cond],
-               (i.mrt.u == 0) ? "d" : "i", (i.mrt.p == 0) ? "a" : "b");
-       dump_reg(dis, i.mrt.rn);
-       fprintf(dis->dis_out, "%s, {", (i.mrt.wb != 0) ? "!" : "");
-       dump_reglist(dis, i.mrt.reg_list);
-       fprintf(dis->dis_out, "}");
-}
-
-
-void dump_swp(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "swp%s%s ", cond[i.swp.cond], (i.swp.b != 0) ? "b" : "");
-       dump_reg(dis, i.swp.rd);
-       fprintf(dis->dis_out, ", ");
-       dump_reg(dis, i.swp.rm);
-       fprintf(dis->dis_out, ", [");
-       dump_reg(dis, i.swp.rn);
-       fprintf(dis->dis_out, "]");
-}
-
-
-void dump_mul(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s%s\t", mul_ops[i.mul.opcode], cond[i.mul.cond], (i.mul.s != 0) ? "s" : "");
-       switch (i.mul.opcode) {
-       case ARMOP_MUL:
-               dump_reg(dis, i.mul.rd);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rm);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rs);
-               break;
-       case ARMOP_MLA:
-               dump_reg(dis, i.mul.rd);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rm);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rs);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rn);
-               break;
-       case ARMOP_UMULL:
-       case ARMOP_UMLAL:
-       case ARMOP_SMULL:
-       case ARMOP_SMLAL:
-               dump_reg(dis, i.mul.rd);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rn);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rm);
-               fprintf(dis->dis_out, ", ");
-               dump_reg(dis, i.mul.rs);
-               break;
-       default:
-               fprintf(dis->dis_out, "DCD 0x%x\t; <unknown>", i.raw);
-               break;
-       }
-}
-
-
-void dump_cdp(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "cdp%s\tp%d, %d, ", cond[i.generic.cond], i.cdp.cpn, i.cdp.op);
-       dump_creg(dis, i.cdp.crd);
-       fprintf(dis->dis_out, ", ");
-       dump_creg(dis, i.cdp.crn);
-       fprintf(dis->dis_out, ", ");
-       dump_creg(dis, i.cdp.crm);
-
-       if (i.cdp.op2 != 0) {
-               fprintf(dis->dis_out, ", %d", i.cdp.op2);
-       }
-}
-
-
-void dump_cdt(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s%s\tp%d, ", (i.cdt.ls == 0) ? "stc" : "ldc",
-               cond[i.generic.cond], (i.cdt.n != 0) ? "l" : "", i.cdt.cpn);
-       dump_creg(dis, i.cdt.crd);
-       fprintf(dis->dis_out, ", ");
-       dump_reg(dis, i.cdt.rn);
-
-       if (i.cdt.p == 0) {
-               fprintf(dis->dis_out, "]");
-       }
-
-       if (i.cdt.offs != 0) {
-               fprintf(dis->dis_out, ", #%d", i.cdt.offs);
-       }
-
-       if (i.cdt.p != 0) {
-               fprintf(dis->dis_out, "]%s", (i.cdt.wb != 0) ? "!" : "");
-       }
-}
-
-
-void dump_crt(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "%s%s\tp%d, %d, ", (i.crt.ls == 0) ? "mrc" : "mcr",
-               cond[i.generic.cond], i.crt.cpn, i.crt.op1);
-       dump_reg(dis, i.crt.rd);
-       fprintf(dis->dis_out, ", ");
-       dump_creg(dis, i.crt.crn);
-       fprintf(dis->dis_out, ", ");
-       dump_creg(dis, i.crt.crm);
-
-       if (i.crt.op2 != 0) {
-               fprintf(dis->dis_out, ", %d", i.crt.op2);
-       }
-}
-
-
-void dump_msr(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "msr%s\t%spsr_, ", cond[i.generic.cond],
-               (i.msr.all.sel == 0) ? "s" : "c");
-       if (i.msr.all.type == 0) {
-               /* reg */
-               fprintf(dis->dis_out, "%s, ", msr_fld[i.msr.all.fld]);
-               dump_reg(dis, i.msr.all.rm);
-       } else {
-               /* imm */
-               fprintf(dis->dis_out, "f, #%d", i.msr.op2_imm.imm << i.msr.op2_imm.rot);
-       }
-}
-
-
-void dump_mrs(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "mrs%s\t", cond[i.generic.cond]);
-       dump_reg(dis, i.mrs.rd);
-       fprintf(dis->dis_out, ", %spsr", (i.mrs.sel == 0) ? "s" : "c");
-}
-
-
-void dump_swi(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "swi%s\t%d", cond[i.generic.cond], i.swi.num);
-}
-
-
-void dump_clz(ARMDis* dis, ARMInstr i) {
-       fprintf(dis->dis_out, "clz\t");
-       dump_reg(dis, i.clz.rd);
-       fprintf(dis->dis_out, ", ");
-       dump_reg(dis, i.clz.rm);
-       fprintf(dis->dis_out, "\n");
-}
-
-
-
-void armdis_decode(ARMDis* dis, void* p, int size) {
-       int i;
-       arminstr_t* pi = (arminstr_t*)p;
-       ARMInstr instr;
-
-       if (dis == NULL) return;
-
-       chk_out(dis);
-
-       size/=sizeof(arminstr_t);
-
-       for (i=0; i<size; ++i) {
-               fprintf(dis->dis_out, "%p:\t%08x\t", pi, *pi);
-               dis->pi = pi;
-               instr.raw = *pi++;
-
-               if ((instr.raw & ARM_BR_MASK) == ARM_BR_TAG) {
-                       dump_br(dis, instr);
-               } else if ((instr.raw & ARM_SWP_MASK) == ARM_SWP_TAG) {
-                       dump_swp(dis, instr);
-               } else if ((instr.raw & ARM_MUL_MASK) == ARM_MUL_TAG) {
-                       dump_mul(dis, instr);
-               } else if ((instr.raw & ARM_CLZ_MASK) == ARM_CLZ_TAG) {
-                       dump_clz(dis, instr);
-               } else if ((instr.raw & ARM_WXFER_MASK) == ARM_WXFER_TAG) {
-                       dump_wxfer(dis, instr);
-               } else if ((instr.raw & ARM_HXFER_MASK) == ARM_HXFER_TAG) {
-                       dump_hxfer(dis, instr);
-               } else if ((instr.raw & ARM_DPI_MASK) == ARM_DPI_TAG) {
-                       dump_dpi(dis, instr);
-               } else if ((instr.raw & ARM_MRT_MASK) == ARM_MRT_TAG) {
-                       dump_mrt(dis, instr);
-               } else if ((instr.raw & ARM_CDP_MASK) == ARM_CDP_TAG) {
-                       dump_cdp(dis, instr);
-               } else if ((instr.raw & ARM_CDT_MASK) == ARM_CDT_TAG) {
-                       dump_cdt(dis, instr);
-               } else if ((instr.raw & ARM_CRT_MASK) == ARM_CRT_TAG) {
-                       dump_crt(dis, instr);
-               } else if ((instr.raw & ARM_MSR_MASK) == ARM_MSR_TAG) {
-                       dump_msr(dis, instr);
-               } else if ((instr.raw & ARM_MRS_MASK) == ARM_MRS_TAG) {
-                       dump_mrs(dis, instr);
-               } else if ((instr.raw & ARM_SWI_MASK) == ARM_SWI_TAG) {
-                       dump_swi(dis, instr);
-               } else {
-                       fprintf(dis->dis_out, "DCD 0x%x\t; <unknown>", instr.raw);
-               }
-
-               fprintf(dis->dis_out, "\n");
-       }
-}
-
-
-void armdis_open(ARMDis* dis, const char* dump_name) {
-       if (dis != NULL && dump_name != NULL) {
-               armdis_set_output(dis, fopen(dump_name, "w"));
-       }
-}
-
-
-void armdis_close(ARMDis* dis) {
-       if (dis->dis_out != NULL && dis->dis_out != stdout && dis->dis_out != stderr) {
-               fclose(dis->dis_out);
-               dis->dis_out = NULL;
-       }
-}
-
-
-void armdis_dump(ARMDis* dis, const char* dump_name, void* p, int size) {
-       armdis_open(dis, dump_name);
-       armdis_decode(dis, p, size);
-       armdis_close(dis);
-}
-
-
-void armdis_init(ARMDis* dis) {
-       if (dis != NULL) {
-               /* set to stdout */
-               armdis_set_output(dis, NULL);
-       }
-}
-
-
-
-
-void init_gdisasm() {
-       if (gdisasm == NULL) {
-               gdisasm = (ARMDis*)malloc(sizeof(ARMDis));
-               armdis_init(gdisasm);
-       }
-}
-
-void _armdis_set_output(FILE* f) {
-       init_gdisasm();
-       armdis_set_output(gdisasm, f);
-}
-
-FILE* _armdis_get_output() {
-       init_gdisasm();
-       return armdis_get_output(gdisasm);
-}
-
-void _armdis_decode(void* p, int size) {
-       init_gdisasm();
-       armdis_decode(gdisasm, p, size);
-}
-
-void _armdis_open(const char* dump_name) {
-       init_gdisasm();
-       armdis_open(gdisasm, dump_name);
-}
-
-void _armdis_close() {
-       init_gdisasm();
-       armdis_close(gdisasm);
-}
-
-void _armdis_dump(const char* dump_name, void* p, int size) {
-       init_gdisasm();
-       armdis_dump(gdisasm, dump_name, p, size);
-}
-
diff --git a/mono/arch/arm/arm-dis.h b/mono/arch/arm/arm-dis.h
deleted file mode 100644 (file)
index 8019499..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (c) 2002 Sergey Chaban <serge@wildwestsoftware.com>
- */
-
-#ifndef ARM_DIS
-#define ARM_DIS
-
-#include <stdlib.h>
-#include <stdio.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _ARMDis {
-       FILE* dis_out;
-       void* pi;
-} ARMDis;
-
-
-void _armdis_set_output(FILE* f);
-FILE* _armdis_get_output(void);
-void _armdis_decode(void* p, int size);
-void _armdis_open(const char* dump_name);
-void _armdis_close(void);
-void _armdis_dump(const char* dump_name, void* p, int size);
-
-
-void armdis_init(ARMDis* dis);
-void armdis_set_output(ARMDis* dis, FILE* f);
-FILE* armdis_get_output(ARMDis* dis);
-void armdis_decode(ARMDis* dis, void* p, int size);
-void armdis_open(ARMDis* dis, const char* dump_name);
-void armdis_close(ARMDis* dis);
-void armdis_dump(ARMDis* dis, const char* dump_name, void* p, int size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ARM_DIS */