THIS FILE IS MACHINE GENERATED WITH CGEN.
-Copyright 1996-2005 Free Software Foundation, Inc.
+Copyright 1996-2009 Free Software Foundation, Inc.
This file is part of the GNU simulators.
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+ This file is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3, or (at your option)
+ any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ It is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
+ License for more details.
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
{ SH_INSN_MMULLOWL, SH64_MEDIA_INSN_MMULLOWL, SH64_MEDIA_SFMT_ADD },
{ SH_INSN_MMULSUMWQ, SH64_MEDIA_INSN_MMULSUMWQ, SH64_MEDIA_SFMT_MCMV },
{ SH_INSN_MOVI, SH64_MEDIA_INSN_MOVI, SH64_MEDIA_SFMT_MOVI },
- { SH_INSN_MPERMW, SH64_MEDIA_INSN_MPERMW, SH64_MEDIA_SFMT_MPERMW },
+ { SH_INSN_MPERMW, SH64_MEDIA_INSN_MPERMW, SH64_MEDIA_SFMT_ADD },
{ SH_INSN_MSADUBQ, SH64_MEDIA_INSN_MSADUBQ, SH64_MEDIA_SFMT_MCMV },
{ SH_INSN_MSHALDSL, SH64_MEDIA_INSN_MSHALDSL, SH64_MEDIA_SFMT_ADD },
{ SH_INSN_MSHALDSW, SH64_MEDIA_INSN_MSHALDSW, SH64_MEDIA_SFMT_ADD },
{ SH_INSN_SHARD, SH64_MEDIA_INSN_SHARD, SH64_MEDIA_SFMT_ADD },
{ SH_INSN_SHARDL, SH64_MEDIA_INSN_SHARDL, SH64_MEDIA_SFMT_ADD },
{ SH_INSN_SHARI, SH64_MEDIA_INSN_SHARI, SH64_MEDIA_SFMT_SHARI },
- { SH_INSN_SHARIL, SH64_MEDIA_INSN_SHARIL, SH64_MEDIA_SFMT_SHARIL },
+ { SH_INSN_SHARIL, SH64_MEDIA_INSN_SHARIL, SH64_MEDIA_SFMT_SHARI },
{ SH_INSN_SHLLD, SH64_MEDIA_INSN_SHLLD, SH64_MEDIA_SFMT_ADD },
{ SH_INSN_SHLLDL, SH64_MEDIA_INSN_SHLLDL, SH64_MEDIA_SFMT_ADD },
{ SH_INSN_SHLLI, SH64_MEDIA_INSN_SHLLI, SH64_MEDIA_SFMT_SHARI },
- { SH_INSN_SHLLIL, SH64_MEDIA_INSN_SHLLIL, SH64_MEDIA_SFMT_SHARIL },
+ { SH_INSN_SHLLIL, SH64_MEDIA_INSN_SHLLIL, SH64_MEDIA_SFMT_SHARI },
{ SH_INSN_SHLRD, SH64_MEDIA_INSN_SHLRD, SH64_MEDIA_SFMT_ADD },
{ SH_INSN_SHLRDL, SH64_MEDIA_INSN_SHLRDL, SH64_MEDIA_SFMT_ADD },
{ SH_INSN_SHLRI, SH64_MEDIA_INSN_SHLRI, SH64_MEDIA_SFMT_SHARI },
- { SH_INSN_SHLRIL, SH64_MEDIA_INSN_SHLRIL, SH64_MEDIA_SFMT_SHARIL },
+ { SH_INSN_SHLRIL, SH64_MEDIA_INSN_SHLRIL, SH64_MEDIA_SFMT_SHARI },
{ SH_INSN_SHORI, SH64_MEDIA_INSN_SHORI, SH64_MEDIA_SFMT_SHORI },
{ SH_INSN_SLEEP, SH64_MEDIA_INSN_SLEEP, SH64_MEDIA_SFMT_NOP },
{ SH_INSN_STB, SH64_MEDIA_INSN_STB, SH64_MEDIA_SFMT_STB },
const IDESC *
sh64_media_decode (SIM_CPU *current_cpu, IADDR pc,
- CGEN_INSN_INT base_insn, CGEN_INSN_INT entire_insn,
+ CGEN_INSN_WORD base_insn, CGEN_INSN_WORD entire_insn,
ARGBUF *abuf)
{
/* Result of decoder. */
SH64_MEDIA_INSN_TYPE itype;
{
- CGEN_INSN_INT insn = base_insn;
+ CGEN_INSN_WORD insn = base_insn;
{
unsigned int val = (((insn >> 22) & (63 << 4)) | ((insn >> 16) & (15 << 0)));
itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
case 173 :
if ((entire_insn & 0xfc0f000f) == 0x280d0000)
- { itype = SH64_MEDIA_INSN_MPERMW; goto extract_sfmt_mpermw; }
+ { itype = SH64_MEDIA_INSN_MPERMW; goto extract_sfmt_add; }
itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
case 175 :
if ((entire_insn & 0xfc0f000f) == 0x280f0000)
itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
case 784 :
if ((entire_insn & 0xfc0f000f) == 0xc4000000)
- { itype = SH64_MEDIA_INSN_SHLLIL; goto extract_sfmt_sharil; }
+ { itype = SH64_MEDIA_INSN_SHLLIL; goto extract_sfmt_shari; }
itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
case 785 :
if ((entire_insn & 0xfc0f000f) == 0xc4010000)
itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
case 786 :
if ((entire_insn & 0xfc0f000f) == 0xc4020000)
- { itype = SH64_MEDIA_INSN_SHLRIL; goto extract_sfmt_sharil; }
+ { itype = SH64_MEDIA_INSN_SHLRIL; goto extract_sfmt_shari; }
itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
case 787 :
if ((entire_insn & 0xfc0f000f) == 0xc4030000)
itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
case 790 :
if ((entire_insn & 0xfc0f000f) == 0xc4060000)
- { itype = SH64_MEDIA_INSN_SHARIL; goto extract_sfmt_sharil; }
+ { itype = SH64_MEDIA_INSN_SHARIL; goto extract_sfmt_shari; }
itype = SH64_MEDIA_INSN_X_INVALID; goto extract_sfmt_empty;
case 791 :
if ((entire_insn & 0xfc0f000f) == 0xc4070000)
extract_sfmt_add:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_addi:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_addi.f
UINT f_left;
INT f_disp10;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
+ f_disp10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_alloco:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_xori.f
UINT f_left;
extract_sfmt_beq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_beq.f
UINT f_left;
UINT f_right;
extract_sfmt_beqi:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_beqi.f
UINT f_left;
INT f_imm6;
UINT f_tra;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_imm6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_imm6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
/* Record the fields for the semantic handler. */
extract_sfmt_blink:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_blink.f
UINT f_trb;
UINT f_dest;
extract_sfmt_byterev:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_xori.f
UINT f_left;
UINT f_dest;
extract_sfmt_cmveq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_fabsd:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fabsd.f
UINT f_left;
UINT f_right;
extract_sfmt_fabss:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fabsd.f
UINT f_left;
UINT f_right;
extract_sfmt_faddd:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_fadds:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_fcmpeqd:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_fcmpeqs:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_fcnvds:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fabsd.f
UINT f_left;
UINT f_right;
extract_sfmt_fcnvsd:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fabsd.f
UINT f_left;
UINT f_right;
extract_sfmt_fgetscr:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_shori.f
UINT f_dest;
extract_sfmt_fiprs:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_fldd:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fldd.f
UINT f_left;
SI f_disp10x8;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
+ f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_fldp:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fldd.f
UINT f_left;
SI f_disp10x8;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
+ f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_flds:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_flds.f
UINT f_left;
SI f_disp10x4;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
+ f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_fldxd:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_fldxp:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_fldxs:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_fmacs:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_fmovdq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fabsd.f
UINT f_left;
UINT f_right;
extract_sfmt_fmovls:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_xori.f
UINT f_left;
UINT f_dest;
extract_sfmt_fmovqd:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_xori.f
UINT f_left;
UINT f_dest;
extract_sfmt_fmovsl:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fabsd.f
UINT f_left;
UINT f_right;
extract_sfmt_fputscr:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fabsd.f
UINT f_left;
UINT f_right;
extract_sfmt_fstd:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fldd.f
UINT f_left;
SI f_disp10x8;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
+ f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_fsts:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_flds.f
UINT f_left;
SI f_disp10x4;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
+ f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_fstxd:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_fstxs:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_ftrvs:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_getcfg:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_getcfg.f
UINT f_left;
INT f_disp6;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_getcon:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_xori.f
UINT f_left;
UINT f_dest;
extract_sfmt_gettr:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_blink.f
UINT f_trb;
UINT f_dest;
extract_sfmt_ldb:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_addi.f
UINT f_left;
INT f_disp10;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
+ f_disp10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_ldl:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_flds.f
UINT f_left;
SI f_disp10x4;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
+ f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_ldq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fldd.f
UINT f_left;
SI f_disp10x8;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
+ f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_lduw:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_lduw.f
UINT f_left;
SI f_disp10x2;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x2 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (1));
+ f_disp10x2 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (1));
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_ldhil:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_getcfg.f
UINT f_left;
INT f_disp6;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_ldhiq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_getcfg.f
UINT f_left;
INT f_disp6;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_ldlol:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_getcfg.f
UINT f_left;
INT f_disp6;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_ldloq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_getcfg.f
UINT f_left;
INT f_disp6;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_ldxb:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_ldxl:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_ldxq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_ldxub:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_ldxuw:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_ldxw:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_mcmv:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_movi:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_movi.f
INT f_imm16;
UINT f_dest;
- f_imm16 = EXTRACT_MSB0_INT (insn, 32, 6, 16);
+ f_imm16 = EXTRACT_MSB0_SINT (insn, 32, 6, 16);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
FLD (out_rd) = f_dest;
}
#endif
-#undef FLD
- return idesc;
- }
-
- extract_sfmt_mpermw:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_add.f
- UINT f_left;
- UINT f_right;
- UINT f_dest;
-
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_right = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
-
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_right) = f_right;
- FLD (f_dest) = f_dest;
- TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mpermw", "f_left 0x%x", 'x', f_left, "f_right 0x%x", 'x', f_right, "f_dest 0x%x", 'x', f_dest, (char *) 0));
-
-#if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (in_rn) = f_right;
- FLD (out_rd) = f_dest;
- }
-#endif
#undef FLD
return idesc;
}
extract_sfmt_ori:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_ori.f
UINT f_left;
INT f_imm10;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_imm10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
+ f_imm10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_pta:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_pta.f
DI f_disp16;
UINT f_tra;
- f_disp16 = ((((EXTRACT_MSB0_INT (insn, 32, 6, 16)) << (2))) + (pc));
+ f_disp16 = ((((EXTRACT_MSB0_SINT (insn, 32, 6, 16)) << (2))) + (pc));
f_tra = EXTRACT_MSB0_UINT (insn, 32, 25, 3);
/* Record the fields for the semantic handler. */
extract_sfmt_ptabs:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_beq.f
UINT f_right;
UINT f_tra;
extract_sfmt_ptrel:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_beq.f
UINT f_right;
UINT f_tra;
extract_sfmt_putcfg:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_getcfg.f
UINT f_left;
INT f_disp6;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_putcon:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_xori.f
UINT f_left;
UINT f_dest;
extract_sfmt_shari:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_shari.f
UINT f_left;
UINT f_uimm6;
FLD (f_dest) = f_dest;
TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_shari", "f_left 0x%x", 'x', f_left, "f_uimm6 0x%x", 'x', f_uimm6, "f_dest 0x%x", 'x', f_dest, (char *) 0));
-#if WITH_PROFILE_MODEL_P
- /* Record the fields for profiling. */
- if (PROFILE_MODEL_P (current_cpu))
- {
- FLD (in_rm) = f_left;
- FLD (out_rd) = f_dest;
- }
-#endif
-#undef FLD
- return idesc;
- }
-
- extract_sfmt_sharil:
- {
- const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
-#define FLD(f) abuf->fields.sfmt_shari.f
- UINT f_left;
- UINT f_uimm6;
- UINT f_dest;
-
- f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_uimm6 = EXTRACT_MSB0_UINT (insn, 32, 16, 6);
- f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
-
- /* Record the fields for the semantic handler. */
- FLD (f_left) = f_left;
- FLD (f_uimm6) = f_uimm6;
- FLD (f_dest) = f_dest;
- TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sharil", "f_left 0x%x", 'x', f_left, "f_uimm6 0x%x", 'x', f_uimm6, "f_dest 0x%x", 'x', f_dest, (char *) 0));
-
#if WITH_PROFILE_MODEL_P
/* Record the fields for profiling. */
if (PROFILE_MODEL_P (current_cpu))
extract_sfmt_shori:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_shori.f
UINT f_uimm16;
UINT f_dest;
extract_sfmt_stb:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_addi.f
UINT f_left;
INT f_disp10;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10 = EXTRACT_MSB0_INT (insn, 32, 12, 10);
+ f_disp10 = EXTRACT_MSB0_SINT (insn, 32, 12, 10);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_stl:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_flds.f
UINT f_left;
SI f_disp10x4;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x4 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (2));
+ f_disp10x4 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (2));
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_stq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_fldd.f
UINT f_left;
SI f_disp10x8;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x8 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (3));
+ f_disp10x8 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (3));
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_stw:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_lduw.f
UINT f_left;
SI f_disp10x2;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp10x2 = ((EXTRACT_MSB0_INT (insn, 32, 12, 10)) << (1));
+ f_disp10x2 = ((EXTRACT_MSB0_SINT (insn, 32, 12, 10)) << (1));
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_sthil:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_getcfg.f
UINT f_left;
INT f_disp6;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_sthiq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_getcfg.f
UINT f_left;
INT f_disp6;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_stlol:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_getcfg.f
UINT f_left;
INT f_disp6;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_stloq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_getcfg.f
UINT f_left;
INT f_disp6;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_disp6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_disp6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */
extract_sfmt_stxb:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_stxl:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_stxq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_stxw:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_swapq:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_add.f
UINT f_left;
UINT f_right;
extract_sfmt_trapa:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_xori.f
UINT f_left;
extract_sfmt_xori:
{
const IDESC *idesc = &sh64_media_insn_data[itype];
- CGEN_INSN_INT insn = entire_insn;
+ CGEN_INSN_WORD insn = entire_insn;
#define FLD(f) abuf->fields.sfmt_xori.f
UINT f_left;
INT f_imm6;
UINT f_dest;
f_left = EXTRACT_MSB0_UINT (insn, 32, 6, 6);
- f_imm6 = EXTRACT_MSB0_INT (insn, 32, 16, 6);
+ f_imm6 = EXTRACT_MSB0_SINT (insn, 32, 16, 6);
f_dest = EXTRACT_MSB0_UINT (insn, 32, 22, 6);
/* Record the fields for the semantic handler. */