/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
*/
/*
* Copyright 2009 Jason King. All rights reserved.
* Use is subject to license terms.
*/
#include "libdisasm.h"
#include "libdisasm_impl.h"
#include "dis_sparc.h"
#include "dis_sparc_fmt.h"
#define INVALID \
{ \
.in_arch = 0, \
.in_data = { \
} \
}
{ \
.in_data = { \
} \
}
{ \
.in_data = { \
.in_def = { \
} \
} \
}
{ \
.in_data = { \
} \
}
{ \
}
/* branches */
};
.tbl_field = 28,
.tbl_len = 4,
.tbl_fmt = fmt_branch,
};
/* docs say it's 'bcs' but disassembler calles it synonym 'blu' */
/*
* while the docs say it's officially 'bcc', existing disassembler
* uses the synonym bgeu
*/
};
.tbl_field = 28,
.tbl_len = 4,
.tbl_fmt = fmt_branch,
};
};
.tbl_field = 28,
.tbl_len = 4,
.tbl_fmt = fmt_branch,
};
/* 0x000 */
/* 0x010 */
/* 0x020 */
/* 0x030 */
/* 0x040 */
/* 0x050 */
/* 0x060 */
/* 0x070 */
/* 0x080 */
/* 0x090 */
/* 0x098 */
/* 0x0a0 */
/* 0x0a8 */
/* 0x0b0 */
/* 0x0b8 */
/* 0x0c0 */
/* 0x0c8 */
/* 0x0d0 */
/* 0x0d8 */
/* 0x0e0 */
/* 0x0e8 */
/* 0x0f0 */
/* 0x0f8 */
/* 0x100 */
/* 0x110 */
/* 0x120 */
/* 0x130 */
/* 0x140 */
/* 0x150 */
/* 0x160 */
/* 0x170 */
/* 0x180 */
/* 0x190 */
/* 0x198 */
/* 0x1a0 */
/* 0x1a8 */
/* 0x1b0 */
/* 0x1b8 */
/* 0x1c0 */
/* 0x1c8 */
/* 0x1d0 */
/* 0x1d8 */
/* 0x1e0 */
/* 0x1e8 */
/* 0x1f0 */
/* 0x1f0 */
};
.tbl_field = 29,
.tbl_len = 9,
.tbl_fmt = fmt_cbcond,
};
};
.tbl_field = 28,
.tbl_len = 1,
.tbl_fmt = fmt_branch,
};
};
.tbl_field = 28,
.tbl_len = 4,
.tbl_fmt = fmt_branch,
};
};
.tbl_field = 28,
.tbl_len = 4,
.tbl_fmt = fmt_branch,
};
};
.tbl_field = 28,
.tbl_len = 4,
.tbl_fmt = fmt_branch,
};
};
};
.tbl_field = 24,
.tbl_len = 3,
};
/* 0x00 */
/* 0x08 */
/* 0x10 */
/* 0x18 */
/* 0x20 */
/* ldx on v9 */
/* stx on v9 */
/* 0x28 */
/* 0x30 */
/* 0x38 */
};
};
.tbl_field = 24,
.tbl_len = 6,
.tbl_ovp = ld_ov_table,
};
/* ALU operations */
};
.tbl_field = 28,
.tbl_len = 4,
};
/* 0x00 */
/* 0x08 */
/* 0x10 */
};
.tbl_field = 29,
.tbl_len = 5,
.tbl_fmt = fmt_regwin,
};
/* 0x00 */
/* 0x08 */
/* 0x10 */
};
.tbl_field = 29,
.tbl_len = 5,
.tbl_fmt = fmt_trap_ret,
};
};
};
.tbl_field = 13,
.tbl_len = 9,
.tbl_fmt = fmt_crypto,
};
/* 0x00 */
/* 0x08 */
};
.tbl_field = 8,
.tbl_len = 4,
.tbl_fmt = fmt_crypto4op,
};
};
};
.tbl_field = 17,
.tbl_len = 4,
};
.tbl_field = 17,
.tbl_len = 4,
};
};
.tbl_field = 18,
.tbl_len = 1,
};
/* aka movrz */
/* aka movrnz */
};
.tbl_field = 12,
.tbl_len = 3,
};
/* 0x000 */
/* 0x008 */
/* 0x010 */
/* 0x020 */
/* 0x028 */
/* 0x30 */
/* 0x40 */
/* 0x048 */
/* 0x050 */
/* 0x060 */
/* 0x068 */
/* 0x070 */
/* 0x080 */
/* 0x088 */
/* 0x090 */
/* 0x0a0 */
/* 0x0b0 */
/* 0x0c0 */
/* 0x0c8 */
/* 0x0d0 */
/* 0x0d8 */
/* 0x0e0 */
/* 0x0f0 */
/* 0x100 */
/* 0x110 */
/* 0x120 */
/* 0x130 */
/* 0x140 */
/* 0x150 */
/* 0x160 */
/* 0x170 */
/* 0x180 */
/* 0x190 */
/* 0x1a0 */
/* 0x1b0 */
/* 0x1c0 */
/* 0x1d0 */
/* 0x1e0 */
/* 0x1f0 */
};
.tbl_field = 13,
.tbl_len = 9,
};
/* 0x000 */
/* 0x008 */
/* 0x010 */
/* 0x020 */
/* 0x028 */
/* 0x030 */
/* 0x040 */
/* 0x048 */
/* 0x050 */
|FLG_NOIMM),
|FLG_NOIMM),
|FLG_NOIMM),
|FLG_NOIMM),
|FLG_NOIMM),
|FLG_NOIMM),
/* 0x058 */
/* 0x060 */
/* 0x068 */
/* 0x070 */
/* 0x080 */
/* 0x088 */
/* 0x090 */
/* 0x0a0 */
/* 0x0a8 */
/* 0x0b0 */
/* 0x0c0 */
/* 0x0c8 */
/* 0x0d0 */
/* 0x0e0 */
/* 0x0e8 */
/* 0x0f0 */
/* 0x100 */
/* 0x108 */
/* 0x110 */
/* 0x120 */
/* 0x130 */
/* 0x140 */
/* 0x150 */
/* 0x160 */
/* 0x170 */
/* 0x180 */
/* 0x188 */
/* 0x190 */
/* 0x1a0 */
/* 0x1b0 */
/* 0x1c0 */
/* 0x1d0 */
/* 0x1e0 */
/* 0x1f0 */
};
.tbl_field = 13,
.tbl_len = 9,
};
/* 0x000 */
/* 0x008 */
/* 0x010 */
/* 0x018 */
/* 0x020 */
/* 0x028 */
/* 0x030 */
/* 0x038 */
/* 0x040 */
/* 0x048 */
/* 0x050 */
/* 0x058 */
/* 0x060 */
/* 0x068 */
/* 0x070 */
/* 0x078 */
/* 0x080 */
/* 0x088 */
/* 0x090 */
/* 0x0a0 */
/* 0x0b0 */
/* 0x0c0 */
/* 0x0d0 */
/* 0x0e0 */
/* 0x0f0 */
/* 0x100 */
/* 0x110 */
/* 0x120 */
/* 0x130 */
/* 0x138 */
/* 0x140 */
/* 0x148 */
/* 0x150 */
|FLG_NOIMM),
|FLG_NOIMM),
/* 0x160 */
/* 0x170 */
/* 0x180 */
/* 0x190 */
/* 0x1a0 */
/* 0x1b0 */
/* 0x1c0 */
/* 0x1d0 */
/* 0x1e0 */
/* 0x1f0 */
};
.tbl_field = 13,
.tbl_len = 9,
};
/* 0x0 */
/* 0x4 */
/* 0x8 */
/* 0xc */
};
.tbl_field = 8,
.tbl_len = 4,
};
/* 0x00 */
/* 0x08 */
/* 0x10 */
/* 0x18 */
/* 0x20 */
/* 0x28 */
/* 0x30 */
/* 0x38 */
};
};
.tbl_field = 24,
.tbl_len = 6,
.tbl_ovp = alu_ov_table,
};
};
/* NOTE: this must not be made static */
.tbl_field = 31,
.tbl_len = 2,
};