binutils-gdb/opcodes/frv-opc.c

6281 lines
201 KiB
C
Raw Normal View History

/* Instruction opcode table for frv.
THIS FILE IS MACHINE GENERATED WITH CGEN.
Copyright 1996-2004 Free Software Foundation, Inc.
This file is part of the GNU Binutils and/or GDB, the GNU debugger.
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 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.
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.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "sysdep.h"
#include "ansidecl.h"
#include "bfd.h"
#include "symcat.h"
#include "frv-desc.h"
#include "frv-opc.h"
#include "libiberty.h"
/* -- opc.c */
#include "elf/frv.h"
#include <stdio.h>
static int match_unit
PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE, CGEN_ATTR_VALUE_TYPE));
static int match_vliw
PARAMS ((VLIW_COMBO *, VLIW_COMBO *, int));
static VLIW_COMBO * add_next_to_vliw
PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE));
static int find_major_in_vliw
PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE));
static int fr400_check_insn_major_constraints
PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE));
2004-03-01 11:11:46 +01:00
static int fr450_check_insn_major_constraints
PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE));
static int fr500_check_insn_major_constraints
PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE));
static int fr550_check_insn_major_constraints
PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE, const CGEN_INSN *));
static int check_insn_major_constraints
PARAMS ((FRV_VLIW *, CGEN_ATTR_VALUE_TYPE, const CGEN_INSN *));
int
frv_is_branch_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach)
{
switch (mach)
{
case bfd_mach_fr400:
if (major >= FR400_MAJOR_B_1 && major <= FR400_MAJOR_B_6)
return 1; /* is a branch */
break;
2004-03-01 11:11:46 +01:00
case bfd_mach_fr450:
if (major >= FR450_MAJOR_B_1 && major <= FR450_MAJOR_B_6)
return 1; /* is a branch */
break;
default:
if (major >= FR500_MAJOR_B_1 && major <= FR500_MAJOR_B_6)
return 1; /* is a branch */
break;
}
return 0; /* not a branch */
}
int
frv_is_float_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach)
{
switch (mach)
{
case bfd_mach_fr400:
2004-03-01 11:11:46 +01:00
case bfd_mach_fr450:
return 0; /* No float insns */
default:
if (major >= FR500_MAJOR_F_1 && major <= FR500_MAJOR_F_8)
return 1; /* is a float insn */
break;
}
return 0; /* not a branch */
}
int
frv_is_media_major (CGEN_ATTR_VALUE_TYPE major, unsigned long mach)
{
switch (mach)
{
case bfd_mach_fr400:
if (major >= FR400_MAJOR_M_1 && major <= FR400_MAJOR_M_2)
return 1; /* is a media insn */
break;
2004-03-01 11:11:46 +01:00
case bfd_mach_fr450:
if (major >= FR450_MAJOR_M_1 && major <= FR450_MAJOR_M_6)
return 1; /* is a media insn */
break;
default:
if (major >= FR500_MAJOR_M_1 && major <= FR500_MAJOR_M_8)
return 1; /* is a media insn */
break;
}
return 0; /* not a branch */
}
int
frv_is_branch_insn (const CGEN_INSN *insn)
{
if (frv_is_branch_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR400_MAJOR),
bfd_mach_fr400))
return 1;
2004-03-01 11:11:46 +01:00
if (frv_is_branch_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR450_MAJOR),
bfd_mach_fr450))
return 1;
if (frv_is_branch_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR500_MAJOR),
bfd_mach_fr500))
return 1;
return 0;
}
int
frv_is_float_insn (const CGEN_INSN *insn)
{
if (frv_is_float_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR400_MAJOR),
bfd_mach_fr400))
return 1;
2004-03-01 11:11:46 +01:00
if (frv_is_float_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR450_MAJOR),
bfd_mach_fr450))
return 1;
if (frv_is_float_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR500_MAJOR),
bfd_mach_fr500))
return 1;
return 0;
}
int
frv_is_media_insn (const CGEN_INSN *insn)
{
if (frv_is_media_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR400_MAJOR),
bfd_mach_fr400))
return 1;
2004-03-01 11:11:46 +01:00
if (frv_is_media_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR450_MAJOR),
bfd_mach_fr450))
return 1;
if (frv_is_media_major (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR500_MAJOR),
bfd_mach_fr500))
return 1;
return 0;
}
/* This table represents the allowable packing for vliw insns for the fr400.
The fr400 has only 2 vliw slots. Represent this by not allowing any insns
in the extra slots.
Subsets of any given row are also allowed. */
static VLIW_COMBO fr400_allowed_vliw[] =
{
/* slot0 slot1 slot2 slot3 */
{ UNIT_I0, UNIT_I1, UNIT_NIL, UNIT_NIL PAD_VLIW_COMBO },
{ UNIT_I0, UNIT_FM0, UNIT_NIL, UNIT_NIL PAD_VLIW_COMBO },
{ UNIT_I0, UNIT_B0, UNIT_NIL, UNIT_NIL PAD_VLIW_COMBO },
{ UNIT_FM0, UNIT_FM1, UNIT_NIL, UNIT_NIL PAD_VLIW_COMBO },
{ UNIT_FM0, UNIT_B0, UNIT_NIL, UNIT_NIL PAD_VLIW_COMBO },
{ UNIT_B0, UNIT_NIL, UNIT_NIL, UNIT_NIL PAD_VLIW_COMBO },
{ UNIT_C, UNIT_NIL, UNIT_NIL, UNIT_NIL PAD_VLIW_COMBO },
{ UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL PAD_VLIW_COMBO }
};
/* This table represents the allowable packing for vliw insns for the fr500.
The fr500 has only 4 vliw slots. Represent this by not allowing any insns
in the extra slots.
Subsets of any given row are also allowed. */
static VLIW_COMBO fr500_allowed_vliw[] =
{
/* slot0 slot1 slot2 slot3 */
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1 PAD_VLIW_COMBO },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_B0 PAD_VLIW_COMBO },
{ UNIT_I0, UNIT_FM0, UNIT_FM1, UNIT_B0 PAD_VLIW_COMBO },
{ UNIT_I0, UNIT_FM0, UNIT_B0, UNIT_B1 PAD_VLIW_COMBO },
{ UNIT_I0, UNIT_I1, UNIT_B0, UNIT_B1 PAD_VLIW_COMBO },
{ UNIT_I0, UNIT_B0, UNIT_B1, UNIT_NIL PAD_VLIW_COMBO },
{ UNIT_FM0, UNIT_FM1, UNIT_B0, UNIT_B1 PAD_VLIW_COMBO },
{ UNIT_FM0, UNIT_B0, UNIT_B1, UNIT_NIL PAD_VLIW_COMBO },
{ UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL PAD_VLIW_COMBO },
{ UNIT_C, UNIT_NIL, UNIT_NIL, UNIT_NIL PAD_VLIW_COMBO },
{ UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL PAD_VLIW_COMBO }
};
/* This table represents the allowable packing for vliw insns for the fr550.
Subsets of any given row are also allowed. */
static VLIW_COMBO fr550_allowed_vliw[] =
{
/* slot0 slot1 slot2 slot3 slot4 slot5 slot6 slot7 */
{ UNIT_I0, UNIT_I1, UNIT_I2, UNIT_I3, UNIT_B0, UNIT_B1 , UNIT_NIL, UNIT_NIL },
{ UNIT_I0, UNIT_I1, UNIT_I2, UNIT_B0, UNIT_B1 , UNIT_NIL, UNIT_NIL, UNIT_NIL },
{ UNIT_I0, UNIT_I1, UNIT_B0, UNIT_B1 , UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL },
{ UNIT_I0, UNIT_B0, UNIT_B1 , UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1, UNIT_I2, UNIT_FM2, UNIT_I3, UNIT_FM3 },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1, UNIT_I2, UNIT_FM2, UNIT_I3, UNIT_B0 },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1, UNIT_I2, UNIT_FM2, UNIT_FM3, UNIT_B0 },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1, UNIT_I2, UNIT_FM2, UNIT_B0, UNIT_B1 },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1, UNIT_I2, UNIT_I3, UNIT_B0, UNIT_B1 },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1, UNIT_I2, UNIT_B0, UNIT_B1, UNIT_NIL },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1, UNIT_FM2, UNIT_FM3, UNIT_B0, UNIT_B1 },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1, UNIT_FM2, UNIT_FM3, UNIT_B0, UNIT_B1 },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1, UNIT_FM2, UNIT_B0, UNIT_B1, UNIT_NIL },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_FM1, UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_I2, UNIT_I3, UNIT_B0, UNIT_B1, UNIT_NIL },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_I2, UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL },
{ UNIT_I0, UNIT_FM0, UNIT_I1, UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL, UNIT_NIL },
{ UNIT_I0, UNIT_FM0, UNIT_FM1, UNIT_FM2, UNIT_FM3, UNIT_B0, UNIT_B1, UNIT_NIL },
{ UNIT_I0, UNIT_FM0, UNIT_FM1, UNIT_FM2, UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL },
{ UNIT_I0, UNIT_FM0, UNIT_FM1, UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL, UNIT_NIL },
{ UNIT_I0, UNIT_FM0, UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL },
{ UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL },
{ UNIT_C, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL },
{ UNIT_FM0, UNIT_FM1, UNIT_FM2, UNIT_FM3, UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL },
{ UNIT_FM0, UNIT_FM1, UNIT_FM2, UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL, UNIT_NIL },
{ UNIT_FM0, UNIT_FM1, UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL },
{ UNIT_FM0, UNIT_B0, UNIT_B1, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL },
{ UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL, UNIT_NIL }
};
/* Some insns are assigned specialized implementation units which map to
different actual implementation units on different machines. These
tables perform that mapping. */
static CGEN_ATTR_VALUE_TYPE fr400_unit_mapping[] =
{
/* unit in insn actual unit */
/* NIL */ UNIT_NIL,
/* I0 */ UNIT_I0,
/* I1 */ UNIT_I1,
/* I01 */ UNIT_I01,
/* I2 */ UNIT_NIL, /* no I2 or I3 unit */
/* I3 */ UNIT_NIL,
/* IALL */ UNIT_I01, /* only I0 and I1 units */
/* FM0 */ UNIT_FM0,
/* FM1 */ UNIT_FM1,
/* FM01 */ UNIT_FM01,
/* FM2 */ UNIT_NIL, /* no F2 or M2 units */
/* FM3 */ UNIT_NIL, /* no F3 or M3 units */
/* FMALL */ UNIT_FM01,/* Only F0,F1,M0,M1 units */
/* FMLOW */ UNIT_FM0, /* Only F0,M0 units */
/* B0 */ UNIT_B0, /* branches only in B0 unit. */
/* B1 */ UNIT_B0,
/* B01 */ UNIT_B0,
/* C */ UNIT_C,
/* MULT-DIV */ UNIT_I0, /* multiply and divide only in I0 unit. */
/* IACC */ UNIT_I01, /* iacc multiply in I0 or I1 unit. */
/* LOAD */ UNIT_I0, /* load only in I0 unit. */
/* STORE */ UNIT_I0, /* store only in I0 unit. */
/* SCAN */ UNIT_I0, /* scan only in I0 unit. */
/* DCPL */ UNIT_C, /* dcpl only in C unit. */
/* MDUALACC */ UNIT_FM0, /* media dual acc insn only in FM0 unit. */
2004-03-01 11:11:46 +01:00
/* MDCUTSSI */ UNIT_FM0, /* mdcutssi only in FM0 unit. */
/* MCLRACC-1*/ UNIT_FM0 /* mclracc,A==1 insn only in FM0 unit. */
};
/* Some insns are assigned specialized implementation units which map to
different actual implementation units on different machines. These
tables perform that mapping. */
static CGEN_ATTR_VALUE_TYPE fr450_unit_mapping[] =
{
/* unit in insn actual unit */
/* NIL */ UNIT_NIL,
/* I0 */ UNIT_I0,
/* I1 */ UNIT_I1,
/* I01 */ UNIT_I01,
/* I2 */ UNIT_NIL, /* no I2 or I3 unit */
/* I3 */ UNIT_NIL,
/* IALL */ UNIT_I01, /* only I0 and I1 units */
/* FM0 */ UNIT_FM0,
/* FM1 */ UNIT_FM1,
/* FM01 */ UNIT_FM01,
/* FM2 */ UNIT_NIL, /* no F2 or M2 units */
/* FM3 */ UNIT_NIL, /* no F3 or M3 units */
/* FMALL */ UNIT_FM01,/* Only F0,F1,M0,M1 units */
/* FMLOW */ UNIT_FM0, /* Only F0,M0 units */
/* B0 */ UNIT_B0, /* branches only in B0 unit. */
/* B1 */ UNIT_B0,
/* B01 */ UNIT_B0,
/* C */ UNIT_C,
/* MULT-DIV */ UNIT_I0, /* multiply and divide only in I0 unit. */
/* IACC */ UNIT_I01, /* iacc multiply in I0 or I1 unit. */
/* LOAD */ UNIT_I0, /* load only in I0 unit. */
/* STORE */ UNIT_I0, /* store only in I0 unit. */
/* SCAN */ UNIT_I0, /* scan only in I0 unit. */
/* DCPL */ UNIT_I0, /* dcpl only in I0 unit. */
/* MDUALACC */ UNIT_FM0, /* media dual acc insn only in FM0 unit. */
/* MDCUTSSI */ UNIT_FM01, /* mdcutssi in FM0 or FM1. */
/* MCLRACC-1*/ UNIT_FM0 /* mclracc,A==1 insn only in FM0 unit. */
};
static CGEN_ATTR_VALUE_TYPE fr500_unit_mapping[] =
{
/* unit in insn actual unit */
/* NIL */ UNIT_NIL,
/* I0 */ UNIT_I0,
/* I1 */ UNIT_I1,
/* I01 */ UNIT_I01,
/* I2 */ UNIT_NIL, /* no I2 or I3 unit */
/* I3 */ UNIT_NIL,
/* IALL */ UNIT_I01, /* only I0 and I1 units */
/* FM0 */ UNIT_FM0,
/* FM1 */ UNIT_FM1,
/* FM01 */ UNIT_FM01,
/* FM2 */ UNIT_NIL, /* no F2 or M2 units */
/* FM3 */ UNIT_NIL, /* no F3 or M2 units */
/* FMALL */ UNIT_FM01,/* Only F0,F1,M0,M1 units */
/* FMLOW */ UNIT_FM0, /* Only F0,M0 units */
/* B0 */ UNIT_B0,
/* B1 */ UNIT_B1,
/* B01 */ UNIT_B01,
/* C */ UNIT_C,
/* MULT-DIV */ UNIT_I01, /* multiply and divide in I0 or I1 unit. */
/* IACC */ UNIT_NIL, /* iacc multiply not implemented */
/* LOAD */ UNIT_I01, /* load in I0 or I1 unit. */
/* STORE */ UNIT_I0, /* store only in I0 unit. */
/* SCAN */ UNIT_I01, /* scan in I0 or I1 unit. */
/* DCPL */ UNIT_C, /* dcpl only in C unit. */
/* MDUALACC */ UNIT_FM0, /* media dual acc insn only in FM0 unit. */
2004-03-01 11:11:46 +01:00
/* MDCUTSSI */ UNIT_FM0, /* mdcutssi only in FM0 unit. */
/* MCLRACC-1*/ UNIT_FM01 /* mclracc,A==1 in FM0 or FM1 unit. */
};
static CGEN_ATTR_VALUE_TYPE fr550_unit_mapping[] =
{
/* unit in insn actual unit */
/* NIL */ UNIT_NIL,
/* I0 */ UNIT_I0,
/* I1 */ UNIT_I1,
/* I01 */ UNIT_I01,
/* I2 */ UNIT_I2,
/* I3 */ UNIT_I3,
/* IALL */ UNIT_IALL,
/* FM0 */ UNIT_FM0,
/* FM1 */ UNIT_FM1,
/* FM01 */ UNIT_FM01,
/* FM2 */ UNIT_FM2,
/* FM3 */ UNIT_FM3,
/* FMALL */ UNIT_FMALL,
/* FMLOW */ UNIT_FM01, /* Only F0,F1,M0,M1 units */
/* B0 */ UNIT_B0,
/* B1 */ UNIT_B1,
/* B01 */ UNIT_B01,
/* C */ UNIT_C,
/* MULT-DIV */ UNIT_I01, /* multiply and divide in I0 or I1 unit. */
/* IACC */ UNIT_NIL, /* iacc multiply not implemented. */
/* LOAD */ UNIT_I01, /* load in I0 or I1 unit. */
/* STORE */ UNIT_I01, /* store in I0 or I1 unit. */
/* SCAN */ UNIT_IALL, /* scan in any integer unit. */
/* DCPL */ UNIT_I0, /* dcpl only in I0 unit. */
/* MDUALACC */ UNIT_FMALL,/* media dual acc insn in all media units */
2004-03-01 11:11:46 +01:00
/* MDCUTSSI */ UNIT_FM01, /* mdcutssi in FM0 or FM1 unit. */
/* MCLRACC-1*/ UNIT_FM01 /* mclracc,A==1 in FM0 or FM1 unit. */
};
void
frv_vliw_reset (FRV_VLIW *vliw, unsigned long mach, unsigned long elf_flags)
{
vliw->next_slot = 0;
vliw->constraint_violation = 0;
vliw->mach = mach;
vliw->elf_flags = elf_flags;
switch (mach)
{
case bfd_mach_fr400:
vliw->current_vliw = fr400_allowed_vliw;
vliw->unit_mapping = fr400_unit_mapping;
break;
2004-03-01 11:11:46 +01:00
case bfd_mach_fr450:
vliw->current_vliw = fr400_allowed_vliw;
vliw->unit_mapping = fr450_unit_mapping;
break;
case bfd_mach_fr550:
vliw->current_vliw = fr550_allowed_vliw;
vliw->unit_mapping = fr550_unit_mapping;
break;
default:
vliw->current_vliw = fr500_allowed_vliw;
vliw->unit_mapping = fr500_unit_mapping;
break;
}
}
/* Return 1 if unit1 is a match for unit2.
Unit1 comes from the insn's UNIT attribute. unit2 comes from one of the
*_allowed_vliw tables above. */
static int
match_unit (FRV_VLIW *vliw,
CGEN_ATTR_VALUE_TYPE unit1, CGEN_ATTR_VALUE_TYPE unit2)
{
/* Map any specialized implementation units to actual ones. */
unit1 = vliw->unit_mapping[unit1];
if (unit1 == unit2)
return 1;
if (unit1 < unit2)
return 0;
switch (unit1)
{
case UNIT_I01:
case UNIT_FM01:
case UNIT_B01:
/* The 01 versions of these units are within 2 enums of the 0 or 1
versions. */
if (unit1 - unit2 <= 2)
return 1;
break;
case UNIT_IALL:
case UNIT_FMALL:
/* The ALL versions of these units are within 5 enums of the 0, 1, 2 or 3
versions. */
if (unit1 - unit2 <= 5)
return 1;
break;
default:
break;
}
return 0;
}
/* Return 1 if the vliws match, 0 otherwise. */
static int
match_vliw (VLIW_COMBO *vliw1, VLIW_COMBO *vliw2, int vliw_size)
{
int i;
for (i = 0; i < vliw_size; ++i)
{
if ((*vliw1)[i] != (*vliw2)[i])
return 0;
}
return 1;
}
/* Find the next vliw vliw in the table that can accomodate the new insn.
If one is found then return it. Otherwise return NULL. */
static VLIW_COMBO *
add_next_to_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE unit)
{
int next = vliw->next_slot;
VLIW_COMBO *current = vliw->current_vliw;
VLIW_COMBO *potential;
if (next <= 0)
{
fprintf (stderr, "frv-opc.c line %d: bad vliw->next_slot value.\n",
__LINE__);
abort (); /* Should never happen */
}
/* The table is sorted by units allowed within slots, so vliws with
identical starting sequences are together. */
potential = current;
do
{
if (match_unit (vliw, unit, (*potential)[next]))
return potential;
++potential;
}
while (match_vliw (potential, current, next));
return NULL;
}
/* Look for the given major insn type in the given vliw. Return 1 if found,
return 0 otherwise. */
static int
find_major_in_vliw (FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major)
{
int i;
for (i = 0; i < vliw->next_slot; ++i)
if (vliw->major[i] == major)
return 1;
return 0;
}
/* Check for constraints between the insns in the vliw due to major insn
types. */
static int
fr400_check_insn_major_constraints (
FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major
)
{
/* In the cpu file, all media insns are represented as being allowed in
both media units. This makes it easier since this is the case for fr500.
Catch the invalid combinations here. Insns of major class FR400_MAJOR_M_2
cannot coexist with any other media insn in a vliw. */
switch (major)
{
case FR400_MAJOR_M_2:
return ! find_major_in_vliw (vliw, FR400_MAJOR_M_1)
&& ! find_major_in_vliw (vliw, FR400_MAJOR_M_2);
case FR400_MAJOR_M_1:
return !find_major_in_vliw (vliw, FR400_MAJOR_M_2);
default:
break;
}
return 1;
}
2004-03-01 11:11:46 +01:00
static int
fr450_check_insn_major_constraints (
FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major
)
{
CGEN_ATTR_VALUE_TYPE other_major;
/* Our caller guarantees there's at least one other instruction. */
other_major = CGEN_INSN_ATTR_VALUE (vliw->insn[0], CGEN_INSN_FR450_MAJOR);
/* (M4, M5) and (M4, M6) are allowed. */
if (other_major == FR450_MAJOR_M_4)
if (major == FR450_MAJOR_M_5 || major == FR450_MAJOR_M_6)
return 1;
/* Otherwise, instructions in even-numbered media categories cannot be
executed in parallel with other media instructions. */
switch (major)
{
case FR450_MAJOR_M_2:
case FR450_MAJOR_M_4:
case FR450_MAJOR_M_6:
return !(other_major >= FR450_MAJOR_M_1
&& other_major <= FR450_MAJOR_M_6);
case FR450_MAJOR_M_1:
case FR450_MAJOR_M_3:
case FR450_MAJOR_M_5:
return !(other_major == FR450_MAJOR_M_2
|| other_major == FR450_MAJOR_M_4
|| other_major == FR450_MAJOR_M_6);
default:
return 1;
}
}
static int
find_unit_in_vliw (
FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE unit
)
{
int i;
for (i = 0; i < vliw->next_slot; ++i)
if (CGEN_INSN_ATTR_VALUE (vliw->insn[i], CGEN_INSN_UNIT) == unit)
return 1;
return 0; /* not found */
}
static int
find_major_in_slot (
FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major, CGEN_ATTR_VALUE_TYPE slot
)
{
int i;
for (i = 0; i < vliw->next_slot; ++i)
if (vliw->major[i] == major && (*vliw->current_vliw)[i] == slot)
return 1;
return 0;
}
static int
fr550_find_media_in_vliw (FRV_VLIW *vliw)
{
int i;
for (i = 0; i < vliw->next_slot; ++i)
{
if (vliw->major[i] < FR550_MAJOR_M_1 || vliw->major[i] > FR550_MAJOR_M_5)
continue;
/* Found a media insn, however, MNOP and MCLRACC don't count. */
if (CGEN_INSN_NUM (vliw->insn[i]) == FRV_INSN_MNOP
|| CGEN_INSN_NUM (vliw->insn[i]) == FRV_INSN_MCLRACC_0
|| CGEN_INSN_NUM (vliw->insn[i]) == FRV_INSN_MCLRACC_1)
continue;
return 1; /* found one */
}
return 0;
}
static int
fr550_find_float_in_vliw (FRV_VLIW *vliw)
{
int i;
for (i = 0; i < vliw->next_slot; ++i)
{
if (vliw->major[i] < FR550_MAJOR_F_1 || vliw->major[i] > FR550_MAJOR_F_4)
continue;
/* Found a floating point insn, however, FNOP doesn't count. */
if (CGEN_INSN_NUM (vliw->insn[i]) == FRV_INSN_FNOP)
continue;
return 1; /* found one */
}
return 0;
}
static int
fr550_check_insn_major_constraints (
FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major, const CGEN_INSN *insn
)
{
CGEN_ATTR_VALUE_TYPE unit;
CGEN_ATTR_VALUE_TYPE slot = (*vliw->current_vliw)[vliw->next_slot];
switch (slot)
{
case UNIT_I2:
/* If it's a store, then there must be another store in I1 */
unit = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_UNIT);
if (unit == UNIT_STORE)
return find_unit_in_vliw (vliw, UNIT_STORE);
break;
case UNIT_FM2:
case UNIT_FM3:
/* Floating point insns other than FNOP in slot f2 or f3 cannot coexist with
media insns. */
if (major >= FR550_MAJOR_F_1 && major <= FR550_MAJOR_F_4
&& CGEN_INSN_NUM (insn) != FRV_INSN_FNOP)
return ! fr550_find_media_in_vliw (vliw);
/* Media insns other than MNOP in slot m2 or m3 cannot coexist with
floating point insns. */
if (major >= FR550_MAJOR_M_1 && major <= FR550_MAJOR_M_5
&& CGEN_INSN_NUM (insn) != FRV_INSN_MNOP)
return ! fr550_find_float_in_vliw (vliw);
/* F-2 in slot f2 or f3 cannot coexist with F-2 or F-4 in slot f1 or f2
respectively.
*/
if (major == FR550_MAJOR_F_2)
return ! find_major_in_slot (vliw, FR550_MAJOR_F_2, slot - (UNIT_FM2 - UNIT_FM0))
&& ! find_major_in_slot (vliw, FR550_MAJOR_F_4, slot - (UNIT_FM2 - UNIT_FM0));
/* M-2 or M-5 in slot m2 or m3 cannot coexist with M-2 in slot m1 or m2
respectively. */
if (major == FR550_MAJOR_M_2 || major == FR550_MAJOR_M_5)
return ! find_major_in_slot (vliw, FR550_MAJOR_M_2, slot - (UNIT_FM2 - UNIT_FM0));
/* M-4 in slot m2 or m3 cannot coexist with M-4 in slot m1 or m2
respectively. */
if (major == FR550_MAJOR_M_4)
return ! find_major_in_slot (vliw, FR550_MAJOR_M_4, slot - (UNIT_FM2 - UNIT_FM0));
break;
default:
break;
}
return 1; /* all ok */
}
static int
fr500_check_insn_major_constraints (
FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major
)
{
/* TODO: A table might be faster for some of the more complex instances
here. */
switch (major)
{
case FR500_MAJOR_I_1:
case FR500_MAJOR_I_4:
case FR500_MAJOR_I_5:
case FR500_MAJOR_I_6:
case FR500_MAJOR_B_1:
case FR500_MAJOR_B_2:
case FR500_MAJOR_B_3:
case FR500_MAJOR_B_4:
case FR500_MAJOR_B_5:
case FR500_MAJOR_B_6:
case FR500_MAJOR_F_4:
case FR500_MAJOR_F_8:
case FR500_MAJOR_M_8:
return 1; /* OK */
case FR500_MAJOR_I_2:
/* Cannot coexist with I-3 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_I_3);
case FR500_MAJOR_I_3:
/* Cannot coexist with I-2 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_I_2);
case FR500_MAJOR_F_1:
case FR500_MAJOR_F_2:
/* Cannot coexist with F-5, F-6, or M-7 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_F_5)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_6)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_7);
case FR500_MAJOR_F_3:
/* Cannot coexist with F-7, or M-7 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_F_7)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_7);
case FR500_MAJOR_F_5:
/* Cannot coexist with F-1, F-2, F-6, F-7, or M-7 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_F_1)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_2)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_6)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_7)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_7);
case FR500_MAJOR_F_6:
/* Cannot coexist with F-1, F-2, F-5, F-6, or M-7 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_F_1)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_2)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_5)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_6)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_7);
case FR500_MAJOR_F_7:
/* Cannot coexist with F-3, F-5, F-7, or M-7 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_F_3)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_5)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_7)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_7);
case FR500_MAJOR_M_1:
/* Cannot coexist with M-7 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_M_7);
case FR500_MAJOR_M_2:
case FR500_MAJOR_M_3:
/* Cannot coexist with M-5, M-6 or M-7 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_M_5)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_6)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_7);
case FR500_MAJOR_M_4:
/* Cannot coexist with M-6 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_M_6);
case FR500_MAJOR_M_5:
/* Cannot coexist with M-2, M-3, M-5, M-6 or M-7 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_M_2)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_3)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_5)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_6)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_7);
case FR500_MAJOR_M_6:
/* Cannot coexist with M-2, M-3, M-4, M-5, M-6 or M-7 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_M_2)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_3)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_4)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_5)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_6)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_7);
case FR500_MAJOR_M_7:
/* Cannot coexist with M-1, M-2, M-3, M-5, M-6 or M-7 insn. */
return ! find_major_in_vliw (vliw, FR500_MAJOR_M_1)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_2)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_3)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_5)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_6)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_M_7)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_1)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_2)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_3)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_5)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_6)
&& ! find_major_in_vliw (vliw, FR500_MAJOR_F_7);
default:
fprintf (stderr, "frv-opc.c, line %d: bad major code, aborting.\n",
__LINE__);
abort ();
break;
}
return 1;
}
static int
check_insn_major_constraints (
FRV_VLIW *vliw, CGEN_ATTR_VALUE_TYPE major, const CGEN_INSN *insn
)
{
int rc;
switch (vliw->mach)
{
case bfd_mach_fr400:
rc = fr400_check_insn_major_constraints (vliw, major);
break;
2004-03-01 11:11:46 +01:00
case bfd_mach_fr450:
rc = fr450_check_insn_major_constraints (vliw, major);
break;
case bfd_mach_fr550:
rc = fr550_check_insn_major_constraints (vliw, major, insn);
break;
default:
rc = fr500_check_insn_major_constraints (vliw, major);
break;
}
return rc;
}
/* Add in insn to the VLIW vliw if possible. Return 0 if successful,
non-zero otherwise. */
int
frv_vliw_add_insn (FRV_VLIW *vliw, const CGEN_INSN *insn)
{
int index;
CGEN_ATTR_VALUE_TYPE major;
CGEN_ATTR_VALUE_TYPE unit;
VLIW_COMBO *new_vliw;
if (vliw->constraint_violation || CGEN_INSN_INVALID_P (insn))
return 1;
index = vliw->next_slot;
if (index >= FRV_VLIW_SIZE)
return 1;
unit = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_UNIT);
if (unit == UNIT_NIL)
{
fprintf (stderr, "frv-opc.c line %d: bad insn unit.\n",
__LINE__);
abort (); /* no UNIT specified for this insn in frv.cpu */
}
switch (vliw->mach)
{
case bfd_mach_fr400:
major = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR400_MAJOR);
break;
2004-03-01 11:11:46 +01:00
case bfd_mach_fr450:
major = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR450_MAJOR);
break;
case bfd_mach_fr550:
major = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR550_MAJOR);
break;
default:
major = CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_FR500_MAJOR);
break;
}
if (index <= 0)
{
/* Any insn can be added to slot 0. */
while (! match_unit (vliw, unit, (*vliw->current_vliw)[0]))
++vliw->current_vliw;
vliw->major[0] = major;
vliw->insn[0] = insn;
vliw->next_slot = 1;
return 0;
}
/* If there are already insns in the vliw(s) check to see that
this one can be added. Do this by finding an allowable vliw
combination that can accept the new insn. */
if (! (vliw->elf_flags & EF_FRV_NOPACK))
{
new_vliw = add_next_to_vliw (vliw, unit);
if (new_vliw && check_insn_major_constraints (vliw, major, insn))
{
vliw->current_vliw = new_vliw;
vliw->major[index] = major;
vliw->insn[index] = insn;
vliw->next_slot++;
return 0;
}
/* The frv machine supports all packing conbinations. If we fail,
to add the insn, then it could not be handled as if it was the fr500.
Just return as if it was handled ok. */
if (vliw->mach == bfd_mach_frv)
return 0;
}
vliw->constraint_violation = 1;
return 1;
}
int
spr_valid (regno)
long regno;
{
if (regno < 0) return 0;
if (regno <= 4095) return 1;
return 0;
}
/* -- */
/* The hash functions are recorded here to help keep assembler code out of
the disassembler and vice versa. */
static int asm_hash_insn_p PARAMS ((const CGEN_INSN *));
static unsigned int asm_hash_insn PARAMS ((const char *));
static int dis_hash_insn_p PARAMS ((const CGEN_INSN *));
static unsigned int dis_hash_insn PARAMS ((const char *, CGEN_INSN_INT));
/* Instruction formats. */
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define F(f) & frv_cgen_ifld_table[FRV_##f]
#else
#define F(f) & frv_cgen_ifld_table[FRV_/**/f]
#endif
static const CGEN_IFMT ifmt_empty = {
0, 0, 0x0, { { 0 } }
};
static const CGEN_IFMT ifmt_add = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_ICCI_1_NULL) }, { F (F_OPE2) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_not = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_ICCI_1_NULL) }, { F (F_OPE2) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_smul = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_ICCI_1_NULL) }, { F (F_OPE2) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_smu = {
32, 32, 0x7ffc0fc0, { { F (F_PACK) }, { F (F_RD_NULL) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_slass = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_scutss = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cadd = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cnot = {
32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_csmul = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_addcc = {
32, 32, 0x1fc03c0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_ICCI_1) }, { F (F_OPE2) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_smulcc = {
32, 32, 0x1fc03c0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_ICCI_1) }, { F (F_OPE2) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_addi = {
32, 32, 0x1fc0000, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_smuli = {
32, 32, 0x1fc0000, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_addicc = {
32, 32, 0x1fc0000, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_ICCI_1) }, { F (F_S10) }, { 0 } }
};
static const CGEN_IFMT ifmt_smulicc = {
32, 32, 0x1fc0000, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_ICCI_1) }, { F (F_S10) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmpb = {
32, 32, 0x7ffc03c0, { { F (F_PACK) }, { F (F_GRK_NULL) }, { F (F_OP) }, { F (F_GRI) }, { F (F_ICCI_1) }, { F (F_OPE2) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_setlo = {
32, 32, 0x1ff0000, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_MISC_NULL_4) }, { F (F_U16) }, { 0 } }
};
static const CGEN_IFMT ifmt_sethi = {
32, 32, 0x1ff0000, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_MISC_NULL_4) }, { F (F_U16) }, { 0 } }
};
static const CGEN_IFMT ifmt_setlos = {
32, 32, 0x1ff0000, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_MISC_NULL_4) }, { F (F_S16) }, { 0 } }
};
static const CGEN_IFMT ifmt_ldbf = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_ldc = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_CPRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_ldd = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_lddf = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_lddc = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_CPRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_ldsbi = {
32, 32, 0x1fc0000, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_ldbfi = {
32, 32, 0x1fc0000, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_lddi = {
32, 32, 0x1fc0000, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_lddfi = {
32, 32, 0x1fc0000, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_cldbf = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_clddf = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_movgf = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmovgf = {
32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_movgs = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_OP) }, { F (F_SPR) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_bra = {
32, 32, 0x7ffc0000, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_LABEL16) }, { 0 } }
};
static const CGEN_IFMT ifmt_bno = {
32, 32, 0x7ffcffff, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_LABEL16_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_beq = {
32, 32, 0x79fc0000, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2) }, { F (F_OP) }, { F (F_HINT) }, { F (F_LABEL16) }, { 0 } }
};
static const CGEN_IFMT ifmt_fbra = {
32, 32, 0x7ffc0000, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_LABEL16) }, { 0 } }
};
static const CGEN_IFMT ifmt_fbno = {
32, 32, 0x7ffcffff, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_LABEL16_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_fbne = {
32, 32, 0x79fc0000, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2) }, { F (F_OP) }, { F (F_HINT) }, { F (F_LABEL16) }, { 0 } }
};
static const CGEN_IFMT ifmt_bctrlr = {
32, 32, 0x7ffcefff, { { F (F_PACK) }, { F (F_COND_NULL) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_bralr = {
32, 32, 0x7ffcffff, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND_NULL) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_bnolr = {
32, 32, 0x7ffcffff, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND_NULL) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_beqlr = {
32, 32, 0x79fcffff, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND_NULL) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_fbralr = {
32, 32, 0x7ffcffff, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND_NULL) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_fbnolr = {
32, 32, 0x7ffcffff, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND_NULL) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_fbeqlr = {
32, 32, 0x79fcffff, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND_NULL) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_bcralr = {
32, 32, 0x7ffcefff, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_bceqlr = {
32, 32, 0x79fcefff, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_fcbralr = {
32, 32, 0x7ffcefff, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_fcbeqlr = {
32, 32, 0x79fcefff, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_jmpl = {
32, 32, 0x7ffc0fc0, { { F (F_PACK) }, { F (F_MISC_NULL_1) }, { F (F_LI_OFF) }, { F (F_OP) }, { F (F_GRI) }, { F (F_MISC_NULL_2) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_calll = {
32, 32, 0x7ffc0fc0, { { F (F_PACK) }, { F (F_MISC_NULL_1) }, { F (F_LI_ON) }, { F (F_OP) }, { F (F_GRI) }, { F (F_MISC_NULL_2) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_jmpil = {
32, 32, 0x7ffc0000, { { F (F_PACK) }, { F (F_MISC_NULL_1) }, { F (F_LI_OFF) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_callil = {
32, 32, 0x7ffc0000, { { F (F_PACK) }, { F (F_MISC_NULL_1) }, { F (F_LI_ON) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_call = {
32, 32, 0x1fc0000, { { F (F_PACK) }, { F (F_OP) }, { F (F_LABEL24) }, { 0 } }
};
static const CGEN_IFMT ifmt_rett = {
32, 32, 0x7dffffff, { { F (F_PACK) }, { F (F_MISC_NULL_1) }, { F (F_DEBUG) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_rei = {
32, 32, 0x7ffc0fff, { { F (F_PACK) }, { F (F_RD_NULL) }, { F (F_OP) }, { F (F_EIR) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_tra = {
32, 32, 0x7ffc0fc0, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_GRI) }, { F (F_MISC_NULL_3) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_tno = {
32, 32, 0x7fffffff, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_GRI_NULL) }, { F (F_MISC_NULL_3) }, { F (F_OPE4) }, { F (F_GRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_teq = {
32, 32, 0x79fc0fc0, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2) }, { F (F_OP) }, { F (F_GRI) }, { F (F_MISC_NULL_3) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_ftra = {
32, 32, 0x7ffc0fc0, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2_NULL) }, { F (F_OP) }, { F (F_GRI) }, { F (F_MISC_NULL_3) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_ftno = {
32, 32, 0x7fffffff, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2_NULL) }, { F (F_OP) }, { F (F_GRI_NULL) }, { F (F_MISC_NULL_3) }, { F (F_OPE4) }, { F (F_GRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_ftne = {
32, 32, 0x79fc0fc0, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2) }, { F (F_OP) }, { F (F_GRI) }, { F (F_MISC_NULL_3) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_tira = {
32, 32, 0x7ffc0000, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_tino = {
32, 32, 0x7fffffff, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_GRI_NULL) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_tieq = {
32, 32, 0x79fc0000, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_ftira = {
32, 32, 0x7ffc0000, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_ftino = {
32, 32, 0x7fffffff, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2_NULL) }, { F (F_OP) }, { F (F_GRI_NULL) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_ftine = {
32, 32, 0x79fc0000, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_FCCI_2) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_break = {
32, 32, 0x7fffffff, { { F (F_PACK) }, { F (F_RD_NULL) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_MISC_NULL_3) }, { F (F_OPE4) }, { F (F_GRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_andcr = {
32, 32, 0x71ff8ff8, { { F (F_PACK) }, { F (F_MISC_NULL_6) }, { F (F_CRK) }, { F (F_OP) }, { F (F_MISC_NULL_7) }, { F (F_CRI) }, { F (F_OPE1) }, { F (F_MISC_NULL_8) }, { F (F_CRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_notcr = {
32, 32, 0x71fffff8, { { F (F_PACK) }, { F (F_MISC_NULL_6) }, { F (F_CRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_MISC_NULL_8) }, { F (F_CRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_ckra = {
32, 32, 0x79ffffff, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_CRJ_INT) }, { F (F_OP) }, { F (F_MISC_NULL_5) }, { F (F_ICCI_3_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_ckeq = {
32, 32, 0x79fffffc, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_CRJ_INT) }, { F (F_OP) }, { F (F_MISC_NULL_5) }, { F (F_ICCI_3) }, { 0 } }
};
static const CGEN_IFMT ifmt_fckra = {
32, 32, 0x79fffffc, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_CRJ_FLOAT) }, { F (F_OP) }, { F (F_MISC_NULL_5) }, { F (F_FCCI_3) }, { 0 } }
};
static const CGEN_IFMT ifmt_cckra = {
32, 32, 0x79fff0ff, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_CRJ_INT) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_MISC_NULL_9) }, { F (F_ICCI_3_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_cckeq = {
32, 32, 0x79fff0fc, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_CRJ_INT) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_MISC_NULL_9) }, { F (F_ICCI_3) }, { 0 } }
};
static const CGEN_IFMT ifmt_cfckra = {
32, 32, 0x79fff0ff, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_CRJ_FLOAT) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_MISC_NULL_9) }, { F (F_FCCI_3_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_cfckne = {
32, 32, 0x79fff0fc, { { F (F_PACK) }, { F (F_FLT_CC) }, { F (F_CRJ_FLOAT) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_MISC_NULL_9) }, { F (F_FCCI_3) }, { 0 } }
};
static const CGEN_IFMT ifmt_cjmpl = {
32, 32, 0x7ffc00c0, { { F (F_PACK) }, { F (F_MISC_NULL_1) }, { F (F_LI_OFF) }, { F (F_OP) }, { F (F_GRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_ccalll = {
32, 32, 0x7ffc00c0, { { F (F_PACK) }, { F (F_MISC_NULL_1) }, { F (F_LI_ON) }, { F (F_OP) }, { F (F_GRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_icei = {
32, 32, 0x7dfc0fc0, { { F (F_PACK) }, { F (F_MISC_NULL_1) }, { F (F_AE) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_icpl = {
32, 32, 0x7dfc0fc0, { { F (F_PACK) }, { F (F_MISC_NULL_1) }, { F (F_LOCK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_icul = {
32, 32, 0x7ffc0fff, { { F (F_PACK) }, { F (F_RD_NULL) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_GRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_bar = {
32, 32, 0x7fffffff, { { F (F_PACK) }, { F (F_RD_NULL) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_GRJ_NULL) }, { 0 } }
};
2004-03-01 11:11:46 +01:00
static const CGEN_IFMT ifmt_lrai = {
32, 32, 0x1fc0fc7, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_LRAE) }, { F (F_LRAD) }, { F (F_LRAS) }, { F (F_LRA_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_tlbpr = {
32, 32, 0x61fc0fc0, { { F (F_PACK) }, { F (F_TLBPR_NULL) }, { F (F_TLBPROPX) }, { F (F_TLBPRL) }, { F (F_OP) }, { F (F_GRI) }, { F (F_OPE1) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cop1 = {
32, 32, 0x1fc0000, { { F (F_PACK) }, { F (F_CPRK) }, { F (F_OP) }, { F (F_CPRI) }, { F (F_S6_1) }, { F (F_CPRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_clrgr = {
32, 32, 0x1ffffff, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_GRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_clrfr = {
32, 32, 0x1ffffff, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_GRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_fitos = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_fstoi = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_fitod = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_fdtoi = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cfitos = {
32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cfstoi = {
32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_fmovs = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_fmovd = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cfmovs = {
32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_fadds = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_faddd = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cfadds = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_fcmps = {
32, 32, 0x79fc0fc0, { { F (F_PACK) }, { F (F_COND_NULL) }, { F (F_FCCI_2) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_fcmpd = {
32, 32, 0x79fc0fc0, { { F (F_PACK) }, { F (F_COND_NULL) }, { F (F_FCCI_2) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cfcmps = {
32, 32, 0x79fc00c0, { { F (F_PACK) }, { F (F_COND_NULL) }, { F (F_FCCI_2) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mhsetlos = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_OPE1) }, { F (F_U12) }, { 0 } }
};
static const CGEN_IFMT ifmt_mhsethis = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_OPE1) }, { F (F_U12) }, { 0 } }
};
static const CGEN_IFMT ifmt_mhdsets = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_OPE1) }, { F (F_U12) }, { 0 } }
};
static const CGEN_IFMT ifmt_mhsetloh = {
32, 32, 0x1ffffe0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_OPE1) }, { F (F_MISC_NULL_11) }, { F (F_S5) }, { 0 } }
};
static const CGEN_IFMT ifmt_mhsethih = {
32, 32, 0x1ffffe0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_OPE1) }, { F (F_MISC_NULL_11) }, { F (F_S5) }, { 0 } }
};
static const CGEN_IFMT ifmt_mhdseth = {
32, 32, 0x1ffffe0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_OPE1) }, { F (F_MISC_NULL_11) }, { F (F_S5) }, { 0 } }
};
static const CGEN_IFMT ifmt_mand = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmand = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mnot = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmnot = {
32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_RS_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mrotli = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_U6) }, { 0 } }
};
static const CGEN_IFMT ifmt_mcut = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_ACC40SI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mcuti = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_ACC40SI) }, { F (F_OPE1) }, { F (F_S6) }, { 0 } }
};
static const CGEN_IFMT ifmt_mdcutssi = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_ACC40SI) }, { F (F_OPE1) }, { F (F_S6) }, { 0 } }
};
static const CGEN_IFMT ifmt_mdrotli = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_S6) }, { 0 } }
};
static const CGEN_IFMT ifmt_mqsaths = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mcmpsh = {
32, 32, 0x79fc0fc0, { { F (F_PACK) }, { F (F_COND_NULL) }, { F (F_FCCK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mabshs = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmqaddhss = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
2004-03-01 11:11:46 +01:00
static const CGEN_IFMT ifmt_mqsllhi = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_U6) }, { 0 } }
};
static const CGEN_IFMT ifmt_maddaccs = {
32, 32, 0x1fc0fff, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_ACC40SI) }, { F (F_OPE1) }, { F (F_ACCJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_mmulhs = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmmulhs = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mqmulhs = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmqmulhs = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mmachu = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_ACC40UK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmmachu = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_ACC40UK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mqmachu = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_ACC40UK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmqmachu = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_ACC40UK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmexpdhw = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_U6) }, { 0 } }
};
static const CGEN_IFMT ifmt_mexpdhd = {
32, 32, 0x1fc0fc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_U6) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmexpdhd = {
32, 32, 0x1fc00c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_U6) }, { 0 } }
};
static const CGEN_IFMT ifmt_munpackh = {
32, 32, 0x1fc0fff, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_mdunpackh = {
32, 32, 0x1fc0fff, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_mbtoh = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmbtoh = {
32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mhtob = {
32, 32, 0x1ffffc0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_OPE1) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmhtob = {
32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmbtohe = {
32, 32, 0x1fff0c0, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_FRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mnop = {
32, 32, 0x7fffffff, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_A) }, { F (F_MISC_NULL_10) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_mclracc_0 = {
32, 32, 0x1ffffff, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_A) }, { F (F_MISC_NULL_10) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_mrdacc = {
32, 32, 0x1fc0fff, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_ACC40SI) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_mrdaccg = {
32, 32, 0x1fc0fff, { { F (F_PACK) }, { F (F_FRK) }, { F (F_OP) }, { F (F_ACCGI) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_mwtacc = {
32, 32, 0x1fc0fff, { { F (F_PACK) }, { F (F_ACC40SK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_mwtaccg = {
32, 32, 0x1fc0fff, { { F (F_PACK) }, { F (F_ACCGK) }, { F (F_OP) }, { F (F_FRI) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_fnop = {
32, 32, 0x7fffffff, { { F (F_PACK) }, { F (F_RD_NULL) }, { F (F_OP) }, { F (F_FRI_NULL) }, { F (F_OPE1) }, { F (F_FRJ_NULL) }, { 0 } }
};
#undef F
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define A(a) (1 << CGEN_INSN_##a)
#else
#define A(a) (1 << CGEN_INSN_/**/a)
#endif
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define OPERAND(op) FRV_OPERAND_##op
#else
#define OPERAND(op) FRV_OPERAND_/**/op
#endif
#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
/* The instruction table. */
static const CGEN_OPCODE frv_cgen_insn_opcode_table[MAX_INSNS] =
{
/* Special null first entry.
A `num' value of zero is thus invalid.
Also, the special `invalid' insn resides here. */
{ { 0, 0, 0, 0 }, {{0}}, 0, {0}},
/* add$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x0 }
},
/* sub$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x100 }
},
/* and$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x40000 }
},
/* or$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x40080 }
},
/* xor$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x40100 }
},
/* not$pack $GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_not, { 0x40180 }
},
/* sdiv$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x380 }
},
/* nsdiv$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x40380 }
},
/* udiv$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x3c0 }
},
/* nudiv$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x403c0 }
},
/* smul$pack $GRi,$GRj,$GRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRDOUBLEK), 0 } },
& ifmt_smul, { 0x200 }
},
/* umul$pack $GRi,$GRj,$GRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRDOUBLEK), 0 } },
& ifmt_smul, { 0x280 }
},
/* smu$pack $GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_smu, { 0x1180140 }
},
/* smass$pack $GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_smu, { 0x1180180 }
},
/* smsss$pack $GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_smu, { 0x11801c0 }
},
/* sll$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x40200 }
},
/* srl$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x40280 }
},
/* sra$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x40300 }
},
/* slass$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_slass, { 0x1180080 }
},
/* scutss$pack $GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_scutss, { 0x1180100 }
},
/* scan$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_add, { 0x2c0000 }
},
/* cadd$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1600000 }
},
/* csub$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1600040 }
},
/* cand$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1680000 }
},
/* cor$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1680040 }
},
/* cxor$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1680080 }
},
/* cnot$pack $GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cnot, { 0x16800c0 }
},
/* csmul$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRDOUBLEK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_csmul, { 0x1600080 }
},
/* csdiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x16000c0 }
},
/* cudiv$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x16400c0 }
},
/* csll$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1700000 }
},
/* csrl$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1700040 }
},
/* csra$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1700080 }
},
/* cscan$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x19400c0 }
},
/* addcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0x40 }
},
/* subcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0x140 }
},
/* andcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0x40040 }
},
/* orcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0x400c0 }
},
/* xorcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0x40140 }
},
/* sllcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0x40240 }
},
/* srlcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0x402c0 }
},
/* sracc$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0x40340 }
},
/* smulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRDOUBLEK), ',', OP (ICCI_1), 0 } },
& ifmt_smulcc, { 0x240 }
},
/* umulcc$pack $GRi,$GRj,$GRdoublek,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRDOUBLEK), ',', OP (ICCI_1), 0 } },
& ifmt_smulcc, { 0x2c0 }
},
/* caddcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1640000 }
},
/* csubcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1640040 }
},
/* csmulcc$pack $GRi,$GRj,$GRdoublek,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRDOUBLEK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_csmul, { 0x1640080 }
},
/* candcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x16c0000 }
},
/* corcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x16c0040 }
},
/* cxorcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x16c0080 }
},
/* csllcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1740000 }
},
/* csrlcc$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1740040 }
},
/* csracc$pack $GRi,$GRj,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1740080 }
},
/* addx$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0x80 }
},
/* subx$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0x180 }
},
/* addxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0xc0 }
},
/* subxcc$pack $GRi,$GRj,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addcc, { 0x1c0 }
},
/* addss$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_slass, { 0x1180000 }
},
/* subss$pack $GRi,$GRj,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (GRK), 0 } },
& ifmt_slass, { 0x1180040 }
},
/* addi$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0x400000 }
},
/* subi$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0x500000 }
},
/* andi$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0x800000 }
},
/* ori$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0x880000 }
},
/* xori$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0x900000 }
},
/* sdivi$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0x780000 }
},
/* nsdivi$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0xb80000 }
},
/* udivi$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0x7c0000 }
},
/* nudivi$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0xbc0000 }
},
/* smuli$pack $GRi,$s12,$GRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRDOUBLEK), 0 } },
& ifmt_smuli, { 0x600000 }
},
/* umuli$pack $GRi,$s12,$GRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRDOUBLEK), 0 } },
& ifmt_smuli, { 0x680000 }
},
/* slli$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0xa00000 }
},
/* srli$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0xa80000 }
},
/* srai$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0xb00000 }
},
/* scani$pack $GRi,$s12,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), ',', OP (GRK), 0 } },
& ifmt_addi, { 0x11c0000 }
},
/* addicc$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0x440000 }
},
/* subicc$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0x540000 }
},
/* andicc$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0x840000 }
},
/* oricc$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0x8c0000 }
},
/* xoricc$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0x940000 }
},
/* smulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRDOUBLEK), ',', OP (ICCI_1), 0 } },
& ifmt_smulicc, { 0x640000 }
},
/* umulicc$pack $GRi,$s10,$GRdoublek,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRDOUBLEK), ',', OP (ICCI_1), 0 } },
& ifmt_smulicc, { 0x6c0000 }
},
/* sllicc$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0xa40000 }
},
/* srlicc$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0xac0000 }
},
/* sraicc$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0xb40000 }
},
/* addxi$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0x480000 }
},
/* subxi$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0x580000 }
},
/* addxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0x4c0000 }
},
/* subxicc$pack $GRi,$s10,$GRk,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (GRK), ',', OP (ICCI_1), 0 } },
& ifmt_addicc, { 0x5c0000 }
},
/* cmpb$pack $GRi,$GRj,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (ICCI_1), 0 } },
& ifmt_cmpb, { 0x300 }
},
/* cmpba$pack $GRi,$GRj,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (ICCI_1), 0 } },
& ifmt_cmpb, { 0x340 }
},
/* setlo$pack $ulo16,$GRklo */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ULO16), ',', OP (GRKLO), 0 } },
& ifmt_setlo, { 0xf40000 }
},
/* sethi$pack $uhi16,$GRkhi */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (UHI16), ',', OP (GRKHI), 0 } },
& ifmt_sethi, { 0xf80000 }
},
/* setlos$pack $slo16,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (SLO16), ',', OP (GRK), 0 } },
& ifmt_setlos, { 0xfc0000 }
},
/* ldsb$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80000 }
},
/* ldub$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80040 }
},
/* ldsh$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80080 }
},
/* lduh$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x800c0 }
},
bfd/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (elf32_frv_relocate_section): Force local binding for TLSMOFF. * reloc.c: Add R_FRV_TLSMOFF. * elf32-frv.c (elf32_frv_howto_table): Likewise. (frv_reloc_map, frv_reloc_type_lookup): Map it. (elf32_frv_relocate_section): Handle it. (elf32_frv_check_relocs): Likewise. * libbfd.h, bfd-in2.h: Rebuilt. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (_frvfdpic_emit_got_relocs_plt_entries): Don't crash when given an undefweak TLS symbol. Fix constant TLS PLT entries such that they return the constant in gr9. (_frvfdpic_relax_tls_entries): Don't crash for undefweak TLS symbols. (_frvfdpic_size_got_plt): Set _cooked_size of dynamic sections. too, such that they shrink on relaxation. (elf32_frvfdpic_finish_dynamic_sections): Check __ROFIXUP_END__ as marking the position right past the _GLOBAL_OFFSET_TABLE_ value. (_frvfdpic_assign_plt_entries): Shrink constant TLS PLT entries if we can guarantee the use of 16-bit constants. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> Introduce TLS support for FR-V FDPIC. * reloc.c: Add TLS relocations. * elf32-frv.c (elf32_frv_howto_table): Add TLS relocations. (elf32_frv_rel_tlsdesc_value_howto): New. (elf32_frv_rel_tlsoff_howto): New. (frv_reloc_map): Add new mappings. (struct frvfdpic_elf_link_hash_table): Add pointer to summary reloc information. (frvfdpic_dynamic_got_plt_info): New. (frvfdpic_plt_tls_ret_offset): New. (ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE): Move earlier. (struct _frvfdpic_dynamic_got_info): Likewise. Add TLS members. (struct _frvfdpic_dynamic_got_plt_info): Likewise. (FRVFDPIC_SYM_LOCAL): Regard symbols defined in the absolute section as local. (struct frvfdpic_relocs_info): Add TLS fields. (frvfdpic_relocs_info_hash): Warning clean up. (frvfdpic_relocs_info_find): Initialize tlsplt_entry. (frvfdpic_pic_merge_early_relocs_info): Merge TLS fields. (FRVFDPIC_TLS_BIAS): Define. (tls_biased_base): New. (_frvfdpic_emit_got_relocs_plt_entries): Deal with TLS relocations. (frv_reloc_type_lookup): Likewise. (frvfdpic_info_to_howto_rel): Likewise. (elf32_frv_relocate_section): Likewise. (_frv_create_got_section): Create the PLT section here. (elf32_frvfdpic_create_dynamic_sections): Not here. (_frvfdpic_count_nontls_entries): Move out of... (_frvfdpic_count_got_plt_entries): ... here. (_frvfdpic_count_tls_entries): Likewise. Add TLS support. (_frvfdpic_count_relocs_fixups): Likewise. Add relaxation support. (_frvfdpic_relax_tls_entries): New. (_frvfdpic_compute_got_alloc_data): Add TLS support. (_frvfdpic_get_tlsdesc_entry): New. (_frvfdpic_assign_got_entries): Add TLS support. (_frvfdpic_assign_plt_entries): Likewise. (_frvfdpic_reset_got_plt_entries): New. (_frvfdpic_size_got_plt): Move out of... (elf32_frvfdpic_size_dynamic_sections): ... here. (_frvfdpic_relax_got_plt_entries): New. (elf32_frvfdpic_relax_section): New. (elf32_frvfdpic_finish_dynamic_sections): Add TLS sanity check. (elf32_frv_check_relocs): Add TLS support. (bfd_elf32_bfd_relax_section): Define for FDPIC. * libbfd.h, bfd-in2.h: Rebuilt. cpu/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.cpu: Add support for TLS annotations in loads and calll. * frv.opc (parse_symbolic_address): New. (parse_ldd_annotation): New. (parse_call_annotation): New. (parse_ld_annotation): New. (parse_ulo16, parse_uslo16): Use parse_symbolic_address. Introduce TLS relocations. (parse_d12, parse_s12, parse_u12): Likewise. (parse_uhi16): Likewise. Fix constant checking on 64-bit host. (parse_call_label, print_at): New. gas/ChangeLog: * config/tc-frv.c (md_apply_fix3): Mark TLS symbols as such. 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * config/tc-frv.c (frv_pic_ptr): Add tlsmoff support. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.c (gas_cgen_parse_operand): Handle CGEN_PARSE_OPERAND_SYMBOLIC. * config/tc-frv.c (md_cgen_lookup_reloc): Handle TLS relocations. (frv_force_relocation): Likewise. Fix handling of PIC relocations. (md_apply_fix3): Likewise. include/elf/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add R_FRV_TLSMOFF. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add TLS relocations. include/opcode/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.h (enum cgen_parse_operand_type): Add CGEN_PARSE_OPERAND_SYMBOLIC. ld/testsuite/ChangeLog: * ld-frv/fdpic.exp: Add -mfdpic to ASFLAGS. * ld-frv/tls.exp: Likewise. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-3.s: New. * ld-frv/tls-static-3.d: New. * ld-frv/tls-dynamic-3.d: New. * ld-frv/tls-pie-3.d: New. * ld-frv/tls-shared-3.d: New. * ld-frv/tls-relax-static-3.d: New. * ld-frv/tls-relax-dynamic-3.d: New. * ld-frv/tls-relax-pie-3.d: New. * ld-frv/tls-relax-shared-3.d: New. * ld-frv/tls.exp: Run the new tests. * ld-frv/tls-dynamic-2.d: Adjust for improved relaxation. * ld-frv/tls-relax-dynamic-2.d: Likewise. * ld-frv/tls-relax-initial-shared-2.d: Likewise. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-1-dep.s: New. * ld-frv/tls-1-shared.lds: New. * ld-frv/tls-1.s: New. * ld-frv/tls-2.s: New. * ld-frv/tls-dynamic-1.d: New. * ld-frv/tls-dynamic-2.d: New. * ld-frv/tls-initial-shared-2.d: New. * ld-frv/tls-pie-1.d: New. * ld-frv/tls-relax-dynamic-1.d: New. * ld-frv/tls-relax-dynamic-2.d: New. * ld-frv/tls-relax-initial-shared-2.d: New. * ld-frv/tls-relax-pie-1.d: New. * ld-frv/tls-relax-shared-1.d: New. * ld-frv/tls-relax-shared-2.d: New. * ld-frv/tls-relax-static-1.d: New. * ld-frv/tls-shared-1-fail.d: New. * ld-frv/tls-shared-1.d: New. * ld-frv/tls-shared-2.d: New. * ld-frv/tls-static-1.d: New. * ld-frv/tls.exp: New. * ld-frv/fdpic-pie-1.d: Adjust for 64-bit host. * ld-frv/fdpic-pie-2.d: Likewise. * ld-frv/fdpic-pie-6.d: Likewise. * ld-frv/fdpic-pie-7.d: Likewise. * ld-frv/fdpic-pie-8.d: Likewise. * ld-frv/fdpic-shared-1.d: Likewise. * ld-frv/fdpic-shared-2.d: Likewise. * ld-frv/fdpic-shared-3.d: Likewise. * ld-frv/fdpic-shared-4.d: Likewise. * ld-frv/fdpic-shared-5.d: Likewise. * ld-frv/fdpic-shared-6.d: Likewise. * ld-frv/fdpic-shared-7.d: Likewise. * ld-frv/fdpic-shared-8.d: Likewise. * ld-frv/fdpic-shared-local-2.d: Likewise. * ld-frv/fdpic-shared-local-8.d: Likewise. * ld-frv/fdpic-static-1.d: Likewise. * ld-frv/fdpic-static-2.d: Likewise. * ld-frv/fdpic-static-6.d: Likewise. * ld-frv/fdpic-static-7.d: Likewise. * ld-frv/fdpic-static-8.d: Likewise. opcodes/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv-asm.c: Rebuilt. * frv-desc.c: Rebuilt. * frv-desc.h: Rebuilt. * frv-dis.c: Rebuilt. * frv-ibld.c: Rebuilt. * frv-opc.c: Rebuilt. * frv-opc.h: Rebuilt.
2005-01-25 21:22:41 +01:00
/* ld$pack $ldann($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
bfd/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (elf32_frv_relocate_section): Force local binding for TLSMOFF. * reloc.c: Add R_FRV_TLSMOFF. * elf32-frv.c (elf32_frv_howto_table): Likewise. (frv_reloc_map, frv_reloc_type_lookup): Map it. (elf32_frv_relocate_section): Handle it. (elf32_frv_check_relocs): Likewise. * libbfd.h, bfd-in2.h: Rebuilt. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (_frvfdpic_emit_got_relocs_plt_entries): Don't crash when given an undefweak TLS symbol. Fix constant TLS PLT entries such that they return the constant in gr9. (_frvfdpic_relax_tls_entries): Don't crash for undefweak TLS symbols. (_frvfdpic_size_got_plt): Set _cooked_size of dynamic sections. too, such that they shrink on relaxation. (elf32_frvfdpic_finish_dynamic_sections): Check __ROFIXUP_END__ as marking the position right past the _GLOBAL_OFFSET_TABLE_ value. (_frvfdpic_assign_plt_entries): Shrink constant TLS PLT entries if we can guarantee the use of 16-bit constants. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> Introduce TLS support for FR-V FDPIC. * reloc.c: Add TLS relocations. * elf32-frv.c (elf32_frv_howto_table): Add TLS relocations. (elf32_frv_rel_tlsdesc_value_howto): New. (elf32_frv_rel_tlsoff_howto): New. (frv_reloc_map): Add new mappings. (struct frvfdpic_elf_link_hash_table): Add pointer to summary reloc information. (frvfdpic_dynamic_got_plt_info): New. (frvfdpic_plt_tls_ret_offset): New. (ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE): Move earlier. (struct _frvfdpic_dynamic_got_info): Likewise. Add TLS members. (struct _frvfdpic_dynamic_got_plt_info): Likewise. (FRVFDPIC_SYM_LOCAL): Regard symbols defined in the absolute section as local. (struct frvfdpic_relocs_info): Add TLS fields. (frvfdpic_relocs_info_hash): Warning clean up. (frvfdpic_relocs_info_find): Initialize tlsplt_entry. (frvfdpic_pic_merge_early_relocs_info): Merge TLS fields. (FRVFDPIC_TLS_BIAS): Define. (tls_biased_base): New. (_frvfdpic_emit_got_relocs_plt_entries): Deal with TLS relocations. (frv_reloc_type_lookup): Likewise. (frvfdpic_info_to_howto_rel): Likewise. (elf32_frv_relocate_section): Likewise. (_frv_create_got_section): Create the PLT section here. (elf32_frvfdpic_create_dynamic_sections): Not here. (_frvfdpic_count_nontls_entries): Move out of... (_frvfdpic_count_got_plt_entries): ... here. (_frvfdpic_count_tls_entries): Likewise. Add TLS support. (_frvfdpic_count_relocs_fixups): Likewise. Add relaxation support. (_frvfdpic_relax_tls_entries): New. (_frvfdpic_compute_got_alloc_data): Add TLS support. (_frvfdpic_get_tlsdesc_entry): New. (_frvfdpic_assign_got_entries): Add TLS support. (_frvfdpic_assign_plt_entries): Likewise. (_frvfdpic_reset_got_plt_entries): New. (_frvfdpic_size_got_plt): Move out of... (elf32_frvfdpic_size_dynamic_sections): ... here. (_frvfdpic_relax_got_plt_entries): New. (elf32_frvfdpic_relax_section): New. (elf32_frvfdpic_finish_dynamic_sections): Add TLS sanity check. (elf32_frv_check_relocs): Add TLS support. (bfd_elf32_bfd_relax_section): Define for FDPIC. * libbfd.h, bfd-in2.h: Rebuilt. cpu/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.cpu: Add support for TLS annotations in loads and calll. * frv.opc (parse_symbolic_address): New. (parse_ldd_annotation): New. (parse_call_annotation): New. (parse_ld_annotation): New. (parse_ulo16, parse_uslo16): Use parse_symbolic_address. Introduce TLS relocations. (parse_d12, parse_s12, parse_u12): Likewise. (parse_uhi16): Likewise. Fix constant checking on 64-bit host. (parse_call_label, print_at): New. gas/ChangeLog: * config/tc-frv.c (md_apply_fix3): Mark TLS symbols as such. 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * config/tc-frv.c (frv_pic_ptr): Add tlsmoff support. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.c (gas_cgen_parse_operand): Handle CGEN_PARSE_OPERAND_SYMBOLIC. * config/tc-frv.c (md_cgen_lookup_reloc): Handle TLS relocations. (frv_force_relocation): Likewise. Fix handling of PIC relocations. (md_apply_fix3): Likewise. include/elf/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add R_FRV_TLSMOFF. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add TLS relocations. include/opcode/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.h (enum cgen_parse_operand_type): Add CGEN_PARSE_OPERAND_SYMBOLIC. ld/testsuite/ChangeLog: * ld-frv/fdpic.exp: Add -mfdpic to ASFLAGS. * ld-frv/tls.exp: Likewise. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-3.s: New. * ld-frv/tls-static-3.d: New. * ld-frv/tls-dynamic-3.d: New. * ld-frv/tls-pie-3.d: New. * ld-frv/tls-shared-3.d: New. * ld-frv/tls-relax-static-3.d: New. * ld-frv/tls-relax-dynamic-3.d: New. * ld-frv/tls-relax-pie-3.d: New. * ld-frv/tls-relax-shared-3.d: New. * ld-frv/tls.exp: Run the new tests. * ld-frv/tls-dynamic-2.d: Adjust for improved relaxation. * ld-frv/tls-relax-dynamic-2.d: Likewise. * ld-frv/tls-relax-initial-shared-2.d: Likewise. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-1-dep.s: New. * ld-frv/tls-1-shared.lds: New. * ld-frv/tls-1.s: New. * ld-frv/tls-2.s: New. * ld-frv/tls-dynamic-1.d: New. * ld-frv/tls-dynamic-2.d: New. * ld-frv/tls-initial-shared-2.d: New. * ld-frv/tls-pie-1.d: New. * ld-frv/tls-relax-dynamic-1.d: New. * ld-frv/tls-relax-dynamic-2.d: New. * ld-frv/tls-relax-initial-shared-2.d: New. * ld-frv/tls-relax-pie-1.d: New. * ld-frv/tls-relax-shared-1.d: New. * ld-frv/tls-relax-shared-2.d: New. * ld-frv/tls-relax-static-1.d: New. * ld-frv/tls-shared-1-fail.d: New. * ld-frv/tls-shared-1.d: New. * ld-frv/tls-shared-2.d: New. * ld-frv/tls-static-1.d: New. * ld-frv/tls.exp: New. * ld-frv/fdpic-pie-1.d: Adjust for 64-bit host. * ld-frv/fdpic-pie-2.d: Likewise. * ld-frv/fdpic-pie-6.d: Likewise. * ld-frv/fdpic-pie-7.d: Likewise. * ld-frv/fdpic-pie-8.d: Likewise. * ld-frv/fdpic-shared-1.d: Likewise. * ld-frv/fdpic-shared-2.d: Likewise. * ld-frv/fdpic-shared-3.d: Likewise. * ld-frv/fdpic-shared-4.d: Likewise. * ld-frv/fdpic-shared-5.d: Likewise. * ld-frv/fdpic-shared-6.d: Likewise. * ld-frv/fdpic-shared-7.d: Likewise. * ld-frv/fdpic-shared-8.d: Likewise. * ld-frv/fdpic-shared-local-2.d: Likewise. * ld-frv/fdpic-shared-local-8.d: Likewise. * ld-frv/fdpic-static-1.d: Likewise. * ld-frv/fdpic-static-2.d: Likewise. * ld-frv/fdpic-static-6.d: Likewise. * ld-frv/fdpic-static-7.d: Likewise. * ld-frv/fdpic-static-8.d: Likewise. opcodes/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv-asm.c: Rebuilt. * frv-desc.c: Rebuilt. * frv-desc.h: Rebuilt. * frv-dis.c: Rebuilt. * frv-ibld.c: Rebuilt. * frv-opc.c: Rebuilt. * frv-opc.h: Rebuilt.
2005-01-25 21:22:41 +01:00
{ { MNEM, OP (PACK), ' ', OP (LDANN), '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80100 }
},
/* ldbf$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80200 }
},
/* ldhf$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80240 }
},
/* ldf$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80280 }
},
/* ldc$pack @($GRi,$GRj),$CPRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CPRK), 0 } },
& ifmt_ldc, { 0x80340 }
},
/* nldsb$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80800 }
},
/* nldub$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80840 }
},
/* nldsh$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80880 }
},
/* nlduh$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x808c0 }
},
/* nld$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80900 }
},
/* nldbf$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80a00 }
},
/* nldhf$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80a40 }
},
/* nldf$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80a80 }
},
bfd/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (elf32_frv_relocate_section): Force local binding for TLSMOFF. * reloc.c: Add R_FRV_TLSMOFF. * elf32-frv.c (elf32_frv_howto_table): Likewise. (frv_reloc_map, frv_reloc_type_lookup): Map it. (elf32_frv_relocate_section): Handle it. (elf32_frv_check_relocs): Likewise. * libbfd.h, bfd-in2.h: Rebuilt. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (_frvfdpic_emit_got_relocs_plt_entries): Don't crash when given an undefweak TLS symbol. Fix constant TLS PLT entries such that they return the constant in gr9. (_frvfdpic_relax_tls_entries): Don't crash for undefweak TLS symbols. (_frvfdpic_size_got_plt): Set _cooked_size of dynamic sections. too, such that they shrink on relaxation. (elf32_frvfdpic_finish_dynamic_sections): Check __ROFIXUP_END__ as marking the position right past the _GLOBAL_OFFSET_TABLE_ value. (_frvfdpic_assign_plt_entries): Shrink constant TLS PLT entries if we can guarantee the use of 16-bit constants. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> Introduce TLS support for FR-V FDPIC. * reloc.c: Add TLS relocations. * elf32-frv.c (elf32_frv_howto_table): Add TLS relocations. (elf32_frv_rel_tlsdesc_value_howto): New. (elf32_frv_rel_tlsoff_howto): New. (frv_reloc_map): Add new mappings. (struct frvfdpic_elf_link_hash_table): Add pointer to summary reloc information. (frvfdpic_dynamic_got_plt_info): New. (frvfdpic_plt_tls_ret_offset): New. (ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE): Move earlier. (struct _frvfdpic_dynamic_got_info): Likewise. Add TLS members. (struct _frvfdpic_dynamic_got_plt_info): Likewise. (FRVFDPIC_SYM_LOCAL): Regard symbols defined in the absolute section as local. (struct frvfdpic_relocs_info): Add TLS fields. (frvfdpic_relocs_info_hash): Warning clean up. (frvfdpic_relocs_info_find): Initialize tlsplt_entry. (frvfdpic_pic_merge_early_relocs_info): Merge TLS fields. (FRVFDPIC_TLS_BIAS): Define. (tls_biased_base): New. (_frvfdpic_emit_got_relocs_plt_entries): Deal with TLS relocations. (frv_reloc_type_lookup): Likewise. (frvfdpic_info_to_howto_rel): Likewise. (elf32_frv_relocate_section): Likewise. (_frv_create_got_section): Create the PLT section here. (elf32_frvfdpic_create_dynamic_sections): Not here. (_frvfdpic_count_nontls_entries): Move out of... (_frvfdpic_count_got_plt_entries): ... here. (_frvfdpic_count_tls_entries): Likewise. Add TLS support. (_frvfdpic_count_relocs_fixups): Likewise. Add relaxation support. (_frvfdpic_relax_tls_entries): New. (_frvfdpic_compute_got_alloc_data): Add TLS support. (_frvfdpic_get_tlsdesc_entry): New. (_frvfdpic_assign_got_entries): Add TLS support. (_frvfdpic_assign_plt_entries): Likewise. (_frvfdpic_reset_got_plt_entries): New. (_frvfdpic_size_got_plt): Move out of... (elf32_frvfdpic_size_dynamic_sections): ... here. (_frvfdpic_relax_got_plt_entries): New. (elf32_frvfdpic_relax_section): New. (elf32_frvfdpic_finish_dynamic_sections): Add TLS sanity check. (elf32_frv_check_relocs): Add TLS support. (bfd_elf32_bfd_relax_section): Define for FDPIC. * libbfd.h, bfd-in2.h: Rebuilt. cpu/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.cpu: Add support for TLS annotations in loads and calll. * frv.opc (parse_symbolic_address): New. (parse_ldd_annotation): New. (parse_call_annotation): New. (parse_ld_annotation): New. (parse_ulo16, parse_uslo16): Use parse_symbolic_address. Introduce TLS relocations. (parse_d12, parse_s12, parse_u12): Likewise. (parse_uhi16): Likewise. Fix constant checking on 64-bit host. (parse_call_label, print_at): New. gas/ChangeLog: * config/tc-frv.c (md_apply_fix3): Mark TLS symbols as such. 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * config/tc-frv.c (frv_pic_ptr): Add tlsmoff support. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.c (gas_cgen_parse_operand): Handle CGEN_PARSE_OPERAND_SYMBOLIC. * config/tc-frv.c (md_cgen_lookup_reloc): Handle TLS relocations. (frv_force_relocation): Likewise. Fix handling of PIC relocations. (md_apply_fix3): Likewise. include/elf/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add R_FRV_TLSMOFF. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add TLS relocations. include/opcode/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.h (enum cgen_parse_operand_type): Add CGEN_PARSE_OPERAND_SYMBOLIC. ld/testsuite/ChangeLog: * ld-frv/fdpic.exp: Add -mfdpic to ASFLAGS. * ld-frv/tls.exp: Likewise. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-3.s: New. * ld-frv/tls-static-3.d: New. * ld-frv/tls-dynamic-3.d: New. * ld-frv/tls-pie-3.d: New. * ld-frv/tls-shared-3.d: New. * ld-frv/tls-relax-static-3.d: New. * ld-frv/tls-relax-dynamic-3.d: New. * ld-frv/tls-relax-pie-3.d: New. * ld-frv/tls-relax-shared-3.d: New. * ld-frv/tls.exp: Run the new tests. * ld-frv/tls-dynamic-2.d: Adjust for improved relaxation. * ld-frv/tls-relax-dynamic-2.d: Likewise. * ld-frv/tls-relax-initial-shared-2.d: Likewise. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-1-dep.s: New. * ld-frv/tls-1-shared.lds: New. * ld-frv/tls-1.s: New. * ld-frv/tls-2.s: New. * ld-frv/tls-dynamic-1.d: New. * ld-frv/tls-dynamic-2.d: New. * ld-frv/tls-initial-shared-2.d: New. * ld-frv/tls-pie-1.d: New. * ld-frv/tls-relax-dynamic-1.d: New. * ld-frv/tls-relax-dynamic-2.d: New. * ld-frv/tls-relax-initial-shared-2.d: New. * ld-frv/tls-relax-pie-1.d: New. * ld-frv/tls-relax-shared-1.d: New. * ld-frv/tls-relax-shared-2.d: New. * ld-frv/tls-relax-static-1.d: New. * ld-frv/tls-shared-1-fail.d: New. * ld-frv/tls-shared-1.d: New. * ld-frv/tls-shared-2.d: New. * ld-frv/tls-static-1.d: New. * ld-frv/tls.exp: New. * ld-frv/fdpic-pie-1.d: Adjust for 64-bit host. * ld-frv/fdpic-pie-2.d: Likewise. * ld-frv/fdpic-pie-6.d: Likewise. * ld-frv/fdpic-pie-7.d: Likewise. * ld-frv/fdpic-pie-8.d: Likewise. * ld-frv/fdpic-shared-1.d: Likewise. * ld-frv/fdpic-shared-2.d: Likewise. * ld-frv/fdpic-shared-3.d: Likewise. * ld-frv/fdpic-shared-4.d: Likewise. * ld-frv/fdpic-shared-5.d: Likewise. * ld-frv/fdpic-shared-6.d: Likewise. * ld-frv/fdpic-shared-7.d: Likewise. * ld-frv/fdpic-shared-8.d: Likewise. * ld-frv/fdpic-shared-local-2.d: Likewise. * ld-frv/fdpic-shared-local-8.d: Likewise. * ld-frv/fdpic-static-1.d: Likewise. * ld-frv/fdpic-static-2.d: Likewise. * ld-frv/fdpic-static-6.d: Likewise. * ld-frv/fdpic-static-7.d: Likewise. * ld-frv/fdpic-static-8.d: Likewise. opcodes/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv-asm.c: Rebuilt. * frv-desc.c: Rebuilt. * frv-desc.h: Rebuilt. * frv-dis.c: Rebuilt. * frv-ibld.c: Rebuilt. * frv-opc.c: Rebuilt. * frv-opc.h: Rebuilt.
2005-01-25 21:22:41 +01:00
/* ldd$pack $lddann($GRi,$GRj),$GRdoublek */
{
{ 0, 0, 0, 0 },
bfd/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (elf32_frv_relocate_section): Force local binding for TLSMOFF. * reloc.c: Add R_FRV_TLSMOFF. * elf32-frv.c (elf32_frv_howto_table): Likewise. (frv_reloc_map, frv_reloc_type_lookup): Map it. (elf32_frv_relocate_section): Handle it. (elf32_frv_check_relocs): Likewise. * libbfd.h, bfd-in2.h: Rebuilt. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (_frvfdpic_emit_got_relocs_plt_entries): Don't crash when given an undefweak TLS symbol. Fix constant TLS PLT entries such that they return the constant in gr9. (_frvfdpic_relax_tls_entries): Don't crash for undefweak TLS symbols. (_frvfdpic_size_got_plt): Set _cooked_size of dynamic sections. too, such that they shrink on relaxation. (elf32_frvfdpic_finish_dynamic_sections): Check __ROFIXUP_END__ as marking the position right past the _GLOBAL_OFFSET_TABLE_ value. (_frvfdpic_assign_plt_entries): Shrink constant TLS PLT entries if we can guarantee the use of 16-bit constants. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> Introduce TLS support for FR-V FDPIC. * reloc.c: Add TLS relocations. * elf32-frv.c (elf32_frv_howto_table): Add TLS relocations. (elf32_frv_rel_tlsdesc_value_howto): New. (elf32_frv_rel_tlsoff_howto): New. (frv_reloc_map): Add new mappings. (struct frvfdpic_elf_link_hash_table): Add pointer to summary reloc information. (frvfdpic_dynamic_got_plt_info): New. (frvfdpic_plt_tls_ret_offset): New. (ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE): Move earlier. (struct _frvfdpic_dynamic_got_info): Likewise. Add TLS members. (struct _frvfdpic_dynamic_got_plt_info): Likewise. (FRVFDPIC_SYM_LOCAL): Regard symbols defined in the absolute section as local. (struct frvfdpic_relocs_info): Add TLS fields. (frvfdpic_relocs_info_hash): Warning clean up. (frvfdpic_relocs_info_find): Initialize tlsplt_entry. (frvfdpic_pic_merge_early_relocs_info): Merge TLS fields. (FRVFDPIC_TLS_BIAS): Define. (tls_biased_base): New. (_frvfdpic_emit_got_relocs_plt_entries): Deal with TLS relocations. (frv_reloc_type_lookup): Likewise. (frvfdpic_info_to_howto_rel): Likewise. (elf32_frv_relocate_section): Likewise. (_frv_create_got_section): Create the PLT section here. (elf32_frvfdpic_create_dynamic_sections): Not here. (_frvfdpic_count_nontls_entries): Move out of... (_frvfdpic_count_got_plt_entries): ... here. (_frvfdpic_count_tls_entries): Likewise. Add TLS support. (_frvfdpic_count_relocs_fixups): Likewise. Add relaxation support. (_frvfdpic_relax_tls_entries): New. (_frvfdpic_compute_got_alloc_data): Add TLS support. (_frvfdpic_get_tlsdesc_entry): New. (_frvfdpic_assign_got_entries): Add TLS support. (_frvfdpic_assign_plt_entries): Likewise. (_frvfdpic_reset_got_plt_entries): New. (_frvfdpic_size_got_plt): Move out of... (elf32_frvfdpic_size_dynamic_sections): ... here. (_frvfdpic_relax_got_plt_entries): New. (elf32_frvfdpic_relax_section): New. (elf32_frvfdpic_finish_dynamic_sections): Add TLS sanity check. (elf32_frv_check_relocs): Add TLS support. (bfd_elf32_bfd_relax_section): Define for FDPIC. * libbfd.h, bfd-in2.h: Rebuilt. cpu/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.cpu: Add support for TLS annotations in loads and calll. * frv.opc (parse_symbolic_address): New. (parse_ldd_annotation): New. (parse_call_annotation): New. (parse_ld_annotation): New. (parse_ulo16, parse_uslo16): Use parse_symbolic_address. Introduce TLS relocations. (parse_d12, parse_s12, parse_u12): Likewise. (parse_uhi16): Likewise. Fix constant checking on 64-bit host. (parse_call_label, print_at): New. gas/ChangeLog: * config/tc-frv.c (md_apply_fix3): Mark TLS symbols as such. 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * config/tc-frv.c (frv_pic_ptr): Add tlsmoff support. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.c (gas_cgen_parse_operand): Handle CGEN_PARSE_OPERAND_SYMBOLIC. * config/tc-frv.c (md_cgen_lookup_reloc): Handle TLS relocations. (frv_force_relocation): Likewise. Fix handling of PIC relocations. (md_apply_fix3): Likewise. include/elf/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add R_FRV_TLSMOFF. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add TLS relocations. include/opcode/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.h (enum cgen_parse_operand_type): Add CGEN_PARSE_OPERAND_SYMBOLIC. ld/testsuite/ChangeLog: * ld-frv/fdpic.exp: Add -mfdpic to ASFLAGS. * ld-frv/tls.exp: Likewise. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-3.s: New. * ld-frv/tls-static-3.d: New. * ld-frv/tls-dynamic-3.d: New. * ld-frv/tls-pie-3.d: New. * ld-frv/tls-shared-3.d: New. * ld-frv/tls-relax-static-3.d: New. * ld-frv/tls-relax-dynamic-3.d: New. * ld-frv/tls-relax-pie-3.d: New. * ld-frv/tls-relax-shared-3.d: New. * ld-frv/tls.exp: Run the new tests. * ld-frv/tls-dynamic-2.d: Adjust for improved relaxation. * ld-frv/tls-relax-dynamic-2.d: Likewise. * ld-frv/tls-relax-initial-shared-2.d: Likewise. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-1-dep.s: New. * ld-frv/tls-1-shared.lds: New. * ld-frv/tls-1.s: New. * ld-frv/tls-2.s: New. * ld-frv/tls-dynamic-1.d: New. * ld-frv/tls-dynamic-2.d: New. * ld-frv/tls-initial-shared-2.d: New. * ld-frv/tls-pie-1.d: New. * ld-frv/tls-relax-dynamic-1.d: New. * ld-frv/tls-relax-dynamic-2.d: New. * ld-frv/tls-relax-initial-shared-2.d: New. * ld-frv/tls-relax-pie-1.d: New. * ld-frv/tls-relax-shared-1.d: New. * ld-frv/tls-relax-shared-2.d: New. * ld-frv/tls-relax-static-1.d: New. * ld-frv/tls-shared-1-fail.d: New. * ld-frv/tls-shared-1.d: New. * ld-frv/tls-shared-2.d: New. * ld-frv/tls-static-1.d: New. * ld-frv/tls.exp: New. * ld-frv/fdpic-pie-1.d: Adjust for 64-bit host. * ld-frv/fdpic-pie-2.d: Likewise. * ld-frv/fdpic-pie-6.d: Likewise. * ld-frv/fdpic-pie-7.d: Likewise. * ld-frv/fdpic-pie-8.d: Likewise. * ld-frv/fdpic-shared-1.d: Likewise. * ld-frv/fdpic-shared-2.d: Likewise. * ld-frv/fdpic-shared-3.d: Likewise. * ld-frv/fdpic-shared-4.d: Likewise. * ld-frv/fdpic-shared-5.d: Likewise. * ld-frv/fdpic-shared-6.d: Likewise. * ld-frv/fdpic-shared-7.d: Likewise. * ld-frv/fdpic-shared-8.d: Likewise. * ld-frv/fdpic-shared-local-2.d: Likewise. * ld-frv/fdpic-shared-local-8.d: Likewise. * ld-frv/fdpic-static-1.d: Likewise. * ld-frv/fdpic-static-2.d: Likewise. * ld-frv/fdpic-static-6.d: Likewise. * ld-frv/fdpic-static-7.d: Likewise. * ld-frv/fdpic-static-8.d: Likewise. opcodes/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv-asm.c: Rebuilt. * frv-desc.c: Rebuilt. * frv-desc.h: Rebuilt. * frv-dis.c: Rebuilt. * frv-ibld.c: Rebuilt. * frv-opc.c: Rebuilt. * frv-opc.h: Rebuilt.
2005-01-25 21:22:41 +01:00
{ { MNEM, OP (PACK), ' ', OP (LDDANN), '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRDOUBLEK), 0 } },
& ifmt_ldd, { 0x80140 }
},
/* lddf$pack @($GRi,$GRj),$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRDOUBLEK), 0 } },
& ifmt_lddf, { 0x802c0 }
},
/* lddc$pack @($GRi,$GRj),$CPRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CPRDOUBLEK), 0 } },
& ifmt_lddc, { 0x80380 }
},
/* nldd$pack @($GRi,$GRj),$GRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRDOUBLEK), 0 } },
& ifmt_ldd, { 0x80940 }
},
/* nlddf$pack @($GRi,$GRj),$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRDOUBLEK), 0 } },
& ifmt_lddf, { 0x80ac0 }
},
/* ldq$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80180 }
},
/* ldqf$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80300 }
},
/* ldqc$pack @($GRi,$GRj),$CPRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CPRK), 0 } },
& ifmt_ldc, { 0x803c0 }
},
/* nldq$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80980 }
},
/* nldqf$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80b00 }
},
/* ldsbu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80400 }
},
/* ldubu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80440 }
},
/* ldshu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80480 }
},
/* lduhu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x804c0 }
},
/* ldu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80500 }
},
/* nldsbu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80c00 }
},
/* nldubu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80c40 }
},
/* nldshu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80c80 }
},
/* nlduhu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80cc0 }
},
/* nldu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80d00 }
},
/* ldbfu$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80600 }
},
/* ldhfu$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80640 }
},
/* ldfu$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80680 }
},
/* ldcu$pack @($GRi,$GRj),$CPRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CPRK), 0 } },
& ifmt_ldc, { 0x80740 }
},
/* nldbfu$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80e00 }
},
/* nldhfu$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80e40 }
},
/* nldfu$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80e80 }
},
/* lddu$pack @($GRi,$GRj),$GRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRDOUBLEK), 0 } },
& ifmt_ldd, { 0x80540 }
},
/* nlddu$pack @($GRi,$GRj),$GRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRDOUBLEK), 0 } },
& ifmt_ldd, { 0x80d40 }
},
/* lddfu$pack @($GRi,$GRj),$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRDOUBLEK), 0 } },
& ifmt_lddf, { 0x806c0 }
},
/* lddcu$pack @($GRi,$GRj),$CPRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CPRDOUBLEK), 0 } },
& ifmt_lddc, { 0x80780 }
},
/* nlddfu$pack @($GRi,$GRj),$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRDOUBLEK), 0 } },
& ifmt_lddf, { 0x80ec0 }
},
/* ldqu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80580 }
},
/* nldqu$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0x80d80 }
},
/* ldqfu$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80700 }
},
/* ldqcu$pack @($GRi,$GRj),$CPRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CPRK), 0 } },
& ifmt_ldc, { 0x807c0 }
},
/* nldqfu$pack @($GRi,$GRj),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbf, { 0x80f00 }
},
/* ldsbi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0xc00000 }
},
/* ldshi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0xc40000 }
},
/* ldi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0xc80000 }
},
/* ldubi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0xd40000 }
},
/* lduhi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0xd80000 }
},
/* ldbfi$pack @($GRi,$d12),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbfi, { 0xe00000 }
},
/* ldhfi$pack @($GRi,$d12),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbfi, { 0xe40000 }
},
/* ldfi$pack @($GRi,$d12),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbfi, { 0xe80000 }
},
/* nldsbi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0x1000000 }
},
/* nldubi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0x1040000 }
},
/* nldshi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0x1080000 }
},
/* nlduhi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0x10c0000 }
},
/* nldi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0x1100000 }
},
/* nldbfi$pack @($GRi,$d12),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbfi, { 0x1200000 }
},
/* nldhfi$pack @($GRi,$d12),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbfi, { 0x1240000 }
},
/* nldfi$pack @($GRi,$d12),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbfi, { 0x1280000 }
},
/* lddi$pack @($GRi,$d12),$GRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRDOUBLEK), 0 } },
& ifmt_lddi, { 0xcc0000 }
},
/* lddfi$pack @($GRi,$d12),$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (FRDOUBLEK), 0 } },
& ifmt_lddfi, { 0xec0000 }
},
/* nlddi$pack @($GRi,$d12),$GRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRDOUBLEK), 0 } },
& ifmt_lddi, { 0x1140000 }
},
/* nlddfi$pack @($GRi,$d12),$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (FRDOUBLEK), 0 } },
& ifmt_lddfi, { 0x12c0000 }
},
/* ldqi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0xd00000 }
},
/* ldqfi$pack @($GRi,$d12),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbfi, { 0xf00000 }
},
/* nldqfi$pack @($GRi,$d12),$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (FRINTK), 0 } },
& ifmt_ldbfi, { 0x1300000 }
},
/* stb$pack $GRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_slass, { 0xc0000 }
},
/* sth$pack $GRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_slass, { 0xc0040 }
},
/* st$pack $GRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_slass, { 0xc0080 }
},
/* stbf$pack $FRintk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldbf, { 0xc0200 }
},
/* sthf$pack $FRintk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldbf, { 0xc0240 }
},
/* stf$pack $FRintk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldbf, { 0xc0280 }
},
/* stc$pack $CPRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CPRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldc, { 0xc0940 }
},
/* std$pack $GRdoublek,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldd, { 0xc00c0 }
},
/* stdf$pack $FRdoublek,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_lddf, { 0xc02c0 }
},
/* stdc$pack $CPRdoublek,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CPRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_lddc, { 0xc0980 }
},
/* stq$pack $GRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_slass, { 0xc0100 }
},
/* stqf$pack $FRintk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldbf, { 0xc0300 }
},
/* stqc$pack $CPRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CPRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldc, { 0xc09c0 }
},
/* stbu$pack $GRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_slass, { 0xc0400 }
},
/* sthu$pack $GRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_slass, { 0xc0440 }
},
/* stu$pack $GRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_slass, { 0xc0480 }
},
/* stbfu$pack $FRintk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldbf, { 0xc0600 }
},
/* sthfu$pack $FRintk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldbf, { 0xc0640 }
},
/* stfu$pack $FRintk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldbf, { 0xc0680 }
},
/* stcu$pack $CPRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CPRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldc, { 0xc0b40 }
},
/* stdu$pack $GRdoublek,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldd, { 0xc04c0 }
},
/* stdfu$pack $FRdoublek,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_lddf, { 0xc06c0 }
},
/* stdcu$pack $CPRdoublek,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CPRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_lddc, { 0xc0b80 }
},
/* stqu$pack $GRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_slass, { 0xc0500 }
},
/* stqfu$pack $FRintk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldbf, { 0xc0700 }
},
/* stqcu$pack $CPRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CPRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_ldc, { 0xc0bc0 }
},
/* cldsb$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1780000 }
},
/* cldub$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1780040 }
},
/* cldsh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1780080 }
},
/* clduh$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x17800c0 }
},
/* cld$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x17c0000 }
},
/* cldbf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x1800000 }
},
/* cldhf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x1800040 }
},
/* cldf$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x1800080 }
},
/* cldd$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRDOUBLEK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_csmul, { 0x17c0040 }
},
/* clddf$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRDOUBLEK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_clddf, { 0x18000c0 }
},
/* cldq$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x17c0080 }
},
/* cldsbu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1840000 }
},
/* cldubu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1840040 }
},
/* cldshu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1840080 }
},
/* clduhu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x18400c0 }
},
/* cldu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1880000 }
},
/* cldbfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x18c0000 }
},
/* cldhfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x18c0040 }
},
/* cldfu$pack @($GRi,$GRj),$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x18c0080 }
},
/* clddu$pack @($GRi,$GRj),$GRdoublek,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRDOUBLEK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_csmul, { 0x1880040 }
},
/* clddfu$pack @($GRi,$GRj),$FRdoublek,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (FRDOUBLEK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_clddf, { 0x18c00c0 }
},
/* cldqu$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1880080 }
},
/* cstb$pack $GRk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1900000 }
},
/* csth$pack $GRk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1900040 }
},
/* cst$pack $GRk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1900080 }
},
/* cstbf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x1980000 }
},
/* csthf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x1980040 }
},
/* cstf$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x1980080 }
},
/* cstd$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_csmul, { 0x19000c0 }
},
/* cstdf$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_clddf, { 0x19800c0 }
},
/* cstq$pack $GRk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1940000 }
},
/* cstbu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x19c0000 }
},
/* csthu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x19c0040 }
},
/* cstu$pack $GRk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x19c0080 }
},
/* cstbfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x1a00000 }
},
/* csthfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x1a00040 }
},
/* cstfu$pack $FRintk,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cldbf, { 0x1a00080 }
},
/* cstdu$pack $GRdoublek,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_csmul, { 0x19c00c0 }
},
/* cstdfu$pack $FRdoublek,@($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_clddf, { 0x1a000c0 }
},
/* stbi$pack $GRk,@($GRi,$d12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (D12), ')', 0 } },
& ifmt_ldsbi, { 0x1400000 }
},
/* sthi$pack $GRk,@($GRi,$d12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (D12), ')', 0 } },
& ifmt_ldsbi, { 0x1440000 }
},
/* sti$pack $GRk,@($GRi,$d12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (D12), ')', 0 } },
& ifmt_ldsbi, { 0x1480000 }
},
/* stbfi$pack $FRintk,@($GRi,$d12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (D12), ')', 0 } },
& ifmt_ldbfi, { 0x1380000 }
},
/* sthfi$pack $FRintk,@($GRi,$d12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (D12), ')', 0 } },
& ifmt_ldbfi, { 0x13c0000 }
},
/* stfi$pack $FRintk,@($GRi,$d12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (D12), ')', 0 } },
& ifmt_ldbfi, { 0x1540000 }
},
/* stdi$pack $GRdoublek,@($GRi,$d12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (D12), ')', 0 } },
& ifmt_lddi, { 0x14c0000 }
},
/* stdfi$pack $FRdoublek,@($GRi,$d12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEK), ',', '@', '(', OP (GRI), ',', OP (D12), ')', 0 } },
& ifmt_lddfi, { 0x1580000 }
},
/* stqi$pack $GRk,@($GRi,$d12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (D12), ')', 0 } },
& ifmt_ldsbi, { 0x1500000 }
},
/* stqfi$pack $FRintk,@($GRi,$d12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', '@', '(', OP (GRI), ',', OP (D12), ')', 0 } },
& ifmt_ldbfi, { 0x15c0000 }
},
/* swap$pack @($GRi,$GRj),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), 0 } },
& ifmt_slass, { 0xc0140 }
},
/* swapi$pack @($GRi,$d12),$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (D12), ')', ',', OP (GRK), 0 } },
& ifmt_ldsbi, { 0x1340000 }
},
/* cswap$pack @($GRi,$GRj),$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cadd, { 0x1940080 }
},
/* movgf$pack $GRj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRJ), ',', OP (FRINTK), 0 } },
& ifmt_movgf, { 0xc0540 }
},
/* movfg$pack $FRintk,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', OP (GRJ), 0 } },
& ifmt_movgf, { 0xc0340 }
},
/* movgfd$pack $GRj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRJ), ',', OP (FRINTK), 0 } },
& ifmt_movgf, { 0xc0580 }
},
/* movfgd$pack $FRintk,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', OP (GRJ), 0 } },
& ifmt_movgf, { 0xc0380 }
},
/* movgfq$pack $GRj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRJ), ',', OP (FRINTK), 0 } },
& ifmt_movgf, { 0xc05c0 }
},
/* movfgq$pack $FRintk,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', OP (GRJ), 0 } },
& ifmt_movgf, { 0xc03c0 }
},
/* cmovgf$pack $GRj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmovgf, { 0x1a40000 }
},
/* cmovfg$pack $FRintk,$GRj,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', OP (GRJ), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmovgf, { 0x1a40080 }
},
/* cmovgfd$pack $GRj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmovgf, { 0x1a40040 }
},
/* cmovfgd$pack $FRintk,$GRj,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTK), ',', OP (GRJ), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmovgf, { 0x1a400c0 }
},
/* movgs$pack $GRj,$spr */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRJ), ',', OP (SPR), 0 } },
& ifmt_movgs, { 0xc0180 }
},
/* movsg$pack $spr,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (SPR), ',', OP (GRJ), 0 } },
& ifmt_movgs, { 0xc01c0 }
},
/* bra$pack $hint_taken$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (HINT_TAKEN), OP (LABEL16), 0 } },
& ifmt_bra, { 0x40180000 }
},
/* bno$pack$hint_not_taken */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), OP (HINT_NOT_TAKEN), 0 } },
& ifmt_bno, { 0x180000 }
},
/* beq$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x20180000 }
},
/* bne$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x60180000 }
},
/* ble$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x38180000 }
},
/* bgt$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x78180000 }
},
/* blt$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x18180000 }
},
/* bge$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x58180000 }
},
/* bls$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x28180000 }
},
/* bhi$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x68180000 }
},
/* bc$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x8180000 }
},
/* bnc$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x48180000 }
},
/* bn$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x30180000 }
},
/* bp$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x70180000 }
},
/* bv$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x10180000 }
},
/* bnv$pack $ICCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_beq, { 0x50180000 }
},
/* fbra$pack $hint_taken$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (HINT_TAKEN), OP (LABEL16), 0 } },
& ifmt_fbra, { 0x781c0000 }
},
/* fbno$pack$hint_not_taken */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), OP (HINT_NOT_TAKEN), 0 } },
& ifmt_fbno, { 0x1c0000 }
},
/* fbne$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x381c0000 }
},
/* fbeq$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x401c0000 }
},
/* fblg$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x301c0000 }
},
/* fbue$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x481c0000 }
},
/* fbul$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x281c0000 }
},
/* fbge$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x501c0000 }
},
/* fblt$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x201c0000 }
},
/* fbuge$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x581c0000 }
},
/* fbug$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x181c0000 }
},
/* fble$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x601c0000 }
},
/* fbgt$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x101c0000 }
},
/* fbule$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x681c0000 }
},
/* fbu$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x81c0000 }
},
/* fbo$pack $FCCi_2,$hint,$label16 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), ',', OP (LABEL16), 0 } },
& ifmt_fbne, { 0x701c0000 }
},
/* bctrlr$pack $ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bctrlr, { 0x382000 }
},
/* bralr$pack$hint_taken */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), OP (HINT_TAKEN), 0 } },
& ifmt_bralr, { 0x40384000 }
},
/* bnolr$pack$hint_not_taken */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), OP (HINT_NOT_TAKEN), 0 } },
& ifmt_bnolr, { 0x384000 }
},
/* beqlr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x20384000 }
},
/* bnelr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x60384000 }
},
/* blelr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x38384000 }
},
/* bgtlr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x78384000 }
},
/* bltlr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x18384000 }
},
/* bgelr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x58384000 }
},
/* blslr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x28384000 }
},
/* bhilr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x68384000 }
},
/* bclr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x8384000 }
},
/* bnclr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x48384000 }
},
/* bnlr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x30384000 }
},
/* bplr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x70384000 }
},
/* bvlr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x10384000 }
},
/* bnvlr$pack $ICCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (HINT), 0 } },
& ifmt_beqlr, { 0x50384000 }
},
/* fbralr$pack$hint_taken */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), OP (HINT_TAKEN), 0 } },
& ifmt_fbralr, { 0x7838c000 }
},
/* fbnolr$pack$hint_not_taken */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), OP (HINT_NOT_TAKEN), 0 } },
& ifmt_fbnolr, { 0x38c000 }
},
/* fbeqlr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x4038c000 }
},
/* fbnelr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x3838c000 }
},
/* fblglr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x3038c000 }
},
/* fbuelr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x4838c000 }
},
/* fbullr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x2838c000 }
},
/* fbgelr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x5038c000 }
},
/* fbltlr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x2038c000 }
},
/* fbugelr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x5838c000 }
},
/* fbuglr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x1838c000 }
},
/* fblelr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x6038c000 }
},
/* fbgtlr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x1038c000 }
},
/* fbulelr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x6838c000 }
},
/* fbulr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x838c000 }
},
/* fbolr$pack $FCCi_2,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (HINT), 0 } },
& ifmt_fbeqlr, { 0x7038c000 }
},
/* bcralr$pack $ccond$hint_taken */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CCOND), OP (HINT_TAKEN), 0 } },
& ifmt_bcralr, { 0x40386000 }
},
/* bcnolr$pack$hint_not_taken */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), OP (HINT_NOT_TAKEN), 0 } },
& ifmt_bnolr, { 0x386000 }
},
/* bceqlr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x20386000 }
},
/* bcnelr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x60386000 }
},
/* bclelr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x38386000 }
},
/* bcgtlr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x78386000 }
},
/* bcltlr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x18386000 }
},
/* bcgelr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x58386000 }
},
/* bclslr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x28386000 }
},
/* bchilr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x68386000 }
},
/* bcclr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x8386000 }
},
/* bcnclr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x48386000 }
},
/* bcnlr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x30386000 }
},
/* bcplr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x70386000 }
},
/* bcvlr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x10386000 }
},
/* bcnvlr$pack $ICCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_bceqlr, { 0x50386000 }
},
/* fcbralr$pack $ccond$hint_taken */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CCOND), OP (HINT_TAKEN), 0 } },
& ifmt_fcbralr, { 0x7838e000 }
},
/* fcbnolr$pack$hint_not_taken */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), OP (HINT_NOT_TAKEN), 0 } },
& ifmt_fbnolr, { 0x38e000 }
},
/* fcbeqlr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x4038e000 }
},
/* fcbnelr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x3838e000 }
},
/* fcblglr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x3038e000 }
},
/* fcbuelr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x4838e000 }
},
/* fcbullr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x2838e000 }
},
/* fcbgelr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x5038e000 }
},
/* fcbltlr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x2038e000 }
},
/* fcbugelr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x5838e000 }
},
/* fcbuglr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x1838e000 }
},
/* fcblelr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x6038e000 }
},
/* fcbgtlr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x1038e000 }
},
/* fcbulelr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x6838e000 }
},
/* fcbulr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x838e000 }
},
/* fcbolr$pack $FCCi_2,$ccond,$hint */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (CCOND), ',', OP (HINT), 0 } },
& ifmt_fcbeqlr, { 0x7038e000 }
},
/* jmpl$pack @($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_jmpl, { 0x300000 }
},
bfd/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (elf32_frv_relocate_section): Force local binding for TLSMOFF. * reloc.c: Add R_FRV_TLSMOFF. * elf32-frv.c (elf32_frv_howto_table): Likewise. (frv_reloc_map, frv_reloc_type_lookup): Map it. (elf32_frv_relocate_section): Handle it. (elf32_frv_check_relocs): Likewise. * libbfd.h, bfd-in2.h: Rebuilt. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (_frvfdpic_emit_got_relocs_plt_entries): Don't crash when given an undefweak TLS symbol. Fix constant TLS PLT entries such that they return the constant in gr9. (_frvfdpic_relax_tls_entries): Don't crash for undefweak TLS symbols. (_frvfdpic_size_got_plt): Set _cooked_size of dynamic sections. too, such that they shrink on relaxation. (elf32_frvfdpic_finish_dynamic_sections): Check __ROFIXUP_END__ as marking the position right past the _GLOBAL_OFFSET_TABLE_ value. (_frvfdpic_assign_plt_entries): Shrink constant TLS PLT entries if we can guarantee the use of 16-bit constants. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> Introduce TLS support for FR-V FDPIC. * reloc.c: Add TLS relocations. * elf32-frv.c (elf32_frv_howto_table): Add TLS relocations. (elf32_frv_rel_tlsdesc_value_howto): New. (elf32_frv_rel_tlsoff_howto): New. (frv_reloc_map): Add new mappings. (struct frvfdpic_elf_link_hash_table): Add pointer to summary reloc information. (frvfdpic_dynamic_got_plt_info): New. (frvfdpic_plt_tls_ret_offset): New. (ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE): Move earlier. (struct _frvfdpic_dynamic_got_info): Likewise. Add TLS members. (struct _frvfdpic_dynamic_got_plt_info): Likewise. (FRVFDPIC_SYM_LOCAL): Regard symbols defined in the absolute section as local. (struct frvfdpic_relocs_info): Add TLS fields. (frvfdpic_relocs_info_hash): Warning clean up. (frvfdpic_relocs_info_find): Initialize tlsplt_entry. (frvfdpic_pic_merge_early_relocs_info): Merge TLS fields. (FRVFDPIC_TLS_BIAS): Define. (tls_biased_base): New. (_frvfdpic_emit_got_relocs_plt_entries): Deal with TLS relocations. (frv_reloc_type_lookup): Likewise. (frvfdpic_info_to_howto_rel): Likewise. (elf32_frv_relocate_section): Likewise. (_frv_create_got_section): Create the PLT section here. (elf32_frvfdpic_create_dynamic_sections): Not here. (_frvfdpic_count_nontls_entries): Move out of... (_frvfdpic_count_got_plt_entries): ... here. (_frvfdpic_count_tls_entries): Likewise. Add TLS support. (_frvfdpic_count_relocs_fixups): Likewise. Add relaxation support. (_frvfdpic_relax_tls_entries): New. (_frvfdpic_compute_got_alloc_data): Add TLS support. (_frvfdpic_get_tlsdesc_entry): New. (_frvfdpic_assign_got_entries): Add TLS support. (_frvfdpic_assign_plt_entries): Likewise. (_frvfdpic_reset_got_plt_entries): New. (_frvfdpic_size_got_plt): Move out of... (elf32_frvfdpic_size_dynamic_sections): ... here. (_frvfdpic_relax_got_plt_entries): New. (elf32_frvfdpic_relax_section): New. (elf32_frvfdpic_finish_dynamic_sections): Add TLS sanity check. (elf32_frv_check_relocs): Add TLS support. (bfd_elf32_bfd_relax_section): Define for FDPIC. * libbfd.h, bfd-in2.h: Rebuilt. cpu/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.cpu: Add support for TLS annotations in loads and calll. * frv.opc (parse_symbolic_address): New. (parse_ldd_annotation): New. (parse_call_annotation): New. (parse_ld_annotation): New. (parse_ulo16, parse_uslo16): Use parse_symbolic_address. Introduce TLS relocations. (parse_d12, parse_s12, parse_u12): Likewise. (parse_uhi16): Likewise. Fix constant checking on 64-bit host. (parse_call_label, print_at): New. gas/ChangeLog: * config/tc-frv.c (md_apply_fix3): Mark TLS symbols as such. 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * config/tc-frv.c (frv_pic_ptr): Add tlsmoff support. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.c (gas_cgen_parse_operand): Handle CGEN_PARSE_OPERAND_SYMBOLIC. * config/tc-frv.c (md_cgen_lookup_reloc): Handle TLS relocations. (frv_force_relocation): Likewise. Fix handling of PIC relocations. (md_apply_fix3): Likewise. include/elf/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add R_FRV_TLSMOFF. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add TLS relocations. include/opcode/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.h (enum cgen_parse_operand_type): Add CGEN_PARSE_OPERAND_SYMBOLIC. ld/testsuite/ChangeLog: * ld-frv/fdpic.exp: Add -mfdpic to ASFLAGS. * ld-frv/tls.exp: Likewise. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-3.s: New. * ld-frv/tls-static-3.d: New. * ld-frv/tls-dynamic-3.d: New. * ld-frv/tls-pie-3.d: New. * ld-frv/tls-shared-3.d: New. * ld-frv/tls-relax-static-3.d: New. * ld-frv/tls-relax-dynamic-3.d: New. * ld-frv/tls-relax-pie-3.d: New. * ld-frv/tls-relax-shared-3.d: New. * ld-frv/tls.exp: Run the new tests. * ld-frv/tls-dynamic-2.d: Adjust for improved relaxation. * ld-frv/tls-relax-dynamic-2.d: Likewise. * ld-frv/tls-relax-initial-shared-2.d: Likewise. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-1-dep.s: New. * ld-frv/tls-1-shared.lds: New. * ld-frv/tls-1.s: New. * ld-frv/tls-2.s: New. * ld-frv/tls-dynamic-1.d: New. * ld-frv/tls-dynamic-2.d: New. * ld-frv/tls-initial-shared-2.d: New. * ld-frv/tls-pie-1.d: New. * ld-frv/tls-relax-dynamic-1.d: New. * ld-frv/tls-relax-dynamic-2.d: New. * ld-frv/tls-relax-initial-shared-2.d: New. * ld-frv/tls-relax-pie-1.d: New. * ld-frv/tls-relax-shared-1.d: New. * ld-frv/tls-relax-shared-2.d: New. * ld-frv/tls-relax-static-1.d: New. * ld-frv/tls-shared-1-fail.d: New. * ld-frv/tls-shared-1.d: New. * ld-frv/tls-shared-2.d: New. * ld-frv/tls-static-1.d: New. * ld-frv/tls.exp: New. * ld-frv/fdpic-pie-1.d: Adjust for 64-bit host. * ld-frv/fdpic-pie-2.d: Likewise. * ld-frv/fdpic-pie-6.d: Likewise. * ld-frv/fdpic-pie-7.d: Likewise. * ld-frv/fdpic-pie-8.d: Likewise. * ld-frv/fdpic-shared-1.d: Likewise. * ld-frv/fdpic-shared-2.d: Likewise. * ld-frv/fdpic-shared-3.d: Likewise. * ld-frv/fdpic-shared-4.d: Likewise. * ld-frv/fdpic-shared-5.d: Likewise. * ld-frv/fdpic-shared-6.d: Likewise. * ld-frv/fdpic-shared-7.d: Likewise. * ld-frv/fdpic-shared-8.d: Likewise. * ld-frv/fdpic-shared-local-2.d: Likewise. * ld-frv/fdpic-shared-local-8.d: Likewise. * ld-frv/fdpic-static-1.d: Likewise. * ld-frv/fdpic-static-2.d: Likewise. * ld-frv/fdpic-static-6.d: Likewise. * ld-frv/fdpic-static-7.d: Likewise. * ld-frv/fdpic-static-8.d: Likewise. opcodes/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv-asm.c: Rebuilt. * frv-desc.c: Rebuilt. * frv-desc.h: Rebuilt. * frv-dis.c: Rebuilt. * frv-ibld.c: Rebuilt. * frv-opc.c: Rebuilt. * frv-opc.h: Rebuilt.
2005-01-25 21:22:41 +01:00
/* calll$pack $callann($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
bfd/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (elf32_frv_relocate_section): Force local binding for TLSMOFF. * reloc.c: Add R_FRV_TLSMOFF. * elf32-frv.c (elf32_frv_howto_table): Likewise. (frv_reloc_map, frv_reloc_type_lookup): Map it. (elf32_frv_relocate_section): Handle it. (elf32_frv_check_relocs): Likewise. * libbfd.h, bfd-in2.h: Rebuilt. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * elf32-frv.c (_frvfdpic_emit_got_relocs_plt_entries): Don't crash when given an undefweak TLS symbol. Fix constant TLS PLT entries such that they return the constant in gr9. (_frvfdpic_relax_tls_entries): Don't crash for undefweak TLS symbols. (_frvfdpic_size_got_plt): Set _cooked_size of dynamic sections. too, such that they shrink on relaxation. (elf32_frvfdpic_finish_dynamic_sections): Check __ROFIXUP_END__ as marking the position right past the _GLOBAL_OFFSET_TABLE_ value. (_frvfdpic_assign_plt_entries): Shrink constant TLS PLT entries if we can guarantee the use of 16-bit constants. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> Introduce TLS support for FR-V FDPIC. * reloc.c: Add TLS relocations. * elf32-frv.c (elf32_frv_howto_table): Add TLS relocations. (elf32_frv_rel_tlsdesc_value_howto): New. (elf32_frv_rel_tlsoff_howto): New. (frv_reloc_map): Add new mappings. (struct frvfdpic_elf_link_hash_table): Add pointer to summary reloc information. (frvfdpic_dynamic_got_plt_info): New. (frvfdpic_plt_tls_ret_offset): New. (ELF_DYNAMIC_INTERPRETER, DEFAULT_STACK_SIZE): Move earlier. (struct _frvfdpic_dynamic_got_info): Likewise. Add TLS members. (struct _frvfdpic_dynamic_got_plt_info): Likewise. (FRVFDPIC_SYM_LOCAL): Regard symbols defined in the absolute section as local. (struct frvfdpic_relocs_info): Add TLS fields. (frvfdpic_relocs_info_hash): Warning clean up. (frvfdpic_relocs_info_find): Initialize tlsplt_entry. (frvfdpic_pic_merge_early_relocs_info): Merge TLS fields. (FRVFDPIC_TLS_BIAS): Define. (tls_biased_base): New. (_frvfdpic_emit_got_relocs_plt_entries): Deal with TLS relocations. (frv_reloc_type_lookup): Likewise. (frvfdpic_info_to_howto_rel): Likewise. (elf32_frv_relocate_section): Likewise. (_frv_create_got_section): Create the PLT section here. (elf32_frvfdpic_create_dynamic_sections): Not here. (_frvfdpic_count_nontls_entries): Move out of... (_frvfdpic_count_got_plt_entries): ... here. (_frvfdpic_count_tls_entries): Likewise. Add TLS support. (_frvfdpic_count_relocs_fixups): Likewise. Add relaxation support. (_frvfdpic_relax_tls_entries): New. (_frvfdpic_compute_got_alloc_data): Add TLS support. (_frvfdpic_get_tlsdesc_entry): New. (_frvfdpic_assign_got_entries): Add TLS support. (_frvfdpic_assign_plt_entries): Likewise. (_frvfdpic_reset_got_plt_entries): New. (_frvfdpic_size_got_plt): Move out of... (elf32_frvfdpic_size_dynamic_sections): ... here. (_frvfdpic_relax_got_plt_entries): New. (elf32_frvfdpic_relax_section): New. (elf32_frvfdpic_finish_dynamic_sections): Add TLS sanity check. (elf32_frv_check_relocs): Add TLS support. (bfd_elf32_bfd_relax_section): Define for FDPIC. * libbfd.h, bfd-in2.h: Rebuilt. cpu/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.cpu: Add support for TLS annotations in loads and calll. * frv.opc (parse_symbolic_address): New. (parse_ldd_annotation): New. (parse_call_annotation): New. (parse_ld_annotation): New. (parse_ulo16, parse_uslo16): Use parse_symbolic_address. Introduce TLS relocations. (parse_d12, parse_s12, parse_u12): Likewise. (parse_uhi16): Likewise. Fix constant checking on 64-bit host. (parse_call_label, print_at): New. gas/ChangeLog: * config/tc-frv.c (md_apply_fix3): Mark TLS symbols as such. 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * config/tc-frv.c (frv_pic_ptr): Add tlsmoff support. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.c (gas_cgen_parse_operand): Handle CGEN_PARSE_OPERAND_SYMBOLIC. * config/tc-frv.c (md_cgen_lookup_reloc): Handle TLS relocations. (frv_force_relocation): Likewise. Fix handling of PIC relocations. (md_apply_fix3): Likewise. include/elf/ChangeLog: 2004-12-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add R_FRV_TLSMOFF. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv.h: Add TLS relocations. include/opcode/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * cgen.h (enum cgen_parse_operand_type): Add CGEN_PARSE_OPERAND_SYMBOLIC. ld/testsuite/ChangeLog: * ld-frv/fdpic.exp: Add -mfdpic to ASFLAGS. * ld-frv/tls.exp: Likewise. 2004-11-26 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-3.s: New. * ld-frv/tls-static-3.d: New. * ld-frv/tls-dynamic-3.d: New. * ld-frv/tls-pie-3.d: New. * ld-frv/tls-shared-3.d: New. * ld-frv/tls-relax-static-3.d: New. * ld-frv/tls-relax-dynamic-3.d: New. * ld-frv/tls-relax-pie-3.d: New. * ld-frv/tls-relax-shared-3.d: New. * ld-frv/tls.exp: Run the new tests. * ld-frv/tls-dynamic-2.d: Adjust for improved relaxation. * ld-frv/tls-relax-dynamic-2.d: Likewise. * ld-frv/tls-relax-initial-shared-2.d: Likewise. 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * ld-frv/tls-1-dep.s: New. * ld-frv/tls-1-shared.lds: New. * ld-frv/tls-1.s: New. * ld-frv/tls-2.s: New. * ld-frv/tls-dynamic-1.d: New. * ld-frv/tls-dynamic-2.d: New. * ld-frv/tls-initial-shared-2.d: New. * ld-frv/tls-pie-1.d: New. * ld-frv/tls-relax-dynamic-1.d: New. * ld-frv/tls-relax-dynamic-2.d: New. * ld-frv/tls-relax-initial-shared-2.d: New. * ld-frv/tls-relax-pie-1.d: New. * ld-frv/tls-relax-shared-1.d: New. * ld-frv/tls-relax-shared-2.d: New. * ld-frv/tls-relax-static-1.d: New. * ld-frv/tls-shared-1-fail.d: New. * ld-frv/tls-shared-1.d: New. * ld-frv/tls-shared-2.d: New. * ld-frv/tls-static-1.d: New. * ld-frv/tls.exp: New. * ld-frv/fdpic-pie-1.d: Adjust for 64-bit host. * ld-frv/fdpic-pie-2.d: Likewise. * ld-frv/fdpic-pie-6.d: Likewise. * ld-frv/fdpic-pie-7.d: Likewise. * ld-frv/fdpic-pie-8.d: Likewise. * ld-frv/fdpic-shared-1.d: Likewise. * ld-frv/fdpic-shared-2.d: Likewise. * ld-frv/fdpic-shared-3.d: Likewise. * ld-frv/fdpic-shared-4.d: Likewise. * ld-frv/fdpic-shared-5.d: Likewise. * ld-frv/fdpic-shared-6.d: Likewise. * ld-frv/fdpic-shared-7.d: Likewise. * ld-frv/fdpic-shared-8.d: Likewise. * ld-frv/fdpic-shared-local-2.d: Likewise. * ld-frv/fdpic-shared-local-8.d: Likewise. * ld-frv/fdpic-static-1.d: Likewise. * ld-frv/fdpic-static-2.d: Likewise. * ld-frv/fdpic-static-6.d: Likewise. * ld-frv/fdpic-static-7.d: Likewise. * ld-frv/fdpic-static-8.d: Likewise. opcodes/ChangeLog: 2004-11-10 Alexandre Oliva <aoliva@redhat.com> * frv-asm.c: Rebuilt. * frv-desc.c: Rebuilt. * frv-desc.h: Rebuilt. * frv-dis.c: Rebuilt. * frv-ibld.c: Rebuilt. * frv-opc.c: Rebuilt. * frv-opc.h: Rebuilt.
2005-01-25 21:22:41 +01:00
{ { MNEM, OP (PACK), ' ', OP (CALLANN), '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_calll, { 0x2300000 }
},
/* jmpil$pack @($GRi,$s12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (S12), ')', 0 } },
& ifmt_jmpil, { 0x340000 }
},
/* callil$pack @($GRi,$s12) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (S12), ')', 0 } },
& ifmt_callil, { 0x2340000 }
},
/* call$pack $label24 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (LABEL24), 0 } },
& ifmt_call, { 0x3c0000 }
},
/* rett$pack $debug */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (DEBUG), 0 } },
& ifmt_rett, { 0x140000 }
},
/* rei$pack $eir */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (EIR), 0 } },
& ifmt_rei, { 0xdc0000 }
},
/* tra$pack $GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_tra, { 0x40100000 }
},
/* tno$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_tno, { 0x100000 }
},
/* teq$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x20100000 }
},
/* tne$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x60100000 }
},
/* tle$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x38100000 }
},
/* tgt$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x78100000 }
},
/* tlt$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x18100000 }
},
/* tge$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x58100000 }
},
/* tls$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x28100000 }
},
/* thi$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x68100000 }
},
/* tc$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x8100000 }
},
/* tnc$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x48100000 }
},
/* tn$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x30100000 }
},
/* tp$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x70100000 }
},
/* tv$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x10100000 }
},
/* tnv$pack $ICCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_teq, { 0x50100000 }
},
/* ftra$pack $GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftra, { 0x78100040 }
},
/* ftno$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_ftno, { 0x100040 }
},
/* ftne$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x38100040 }
},
/* fteq$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x40100040 }
},
/* ftlg$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x30100040 }
},
/* ftue$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x48100040 }
},
/* ftul$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x28100040 }
},
/* ftge$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x50100040 }
},
/* ftlt$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x20100040 }
},
/* ftuge$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x58100040 }
},
/* ftug$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x18100040 }
},
/* ftle$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x60100040 }
},
/* ftgt$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x10100040 }
},
/* ftule$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x68100040 }
},
/* ftu$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x8100040 }
},
/* fto$pack $FCCi_2,$GRi,$GRj */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (GRJ), 0 } },
& ifmt_ftne, { 0x70100040 }
},
/* tira$pack $GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tira, { 0x40700000 }
},
/* tino$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_tino, { 0x700000 }
},
/* tieq$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x20700000 }
},
/* tine$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x60700000 }
},
/* tile$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x38700000 }
},
/* tigt$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x78700000 }
},
/* tilt$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x18700000 }
},
/* tige$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x58700000 }
},
/* tils$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x28700000 }
},
/* tihi$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x68700000 }
},
/* tic$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x8700000 }
},
/* tinc$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x48700000 }
},
/* tin$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x30700000 }
},
/* tip$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x70700000 }
},
/* tiv$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x10700000 }
},
/* tinv$pack $ICCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_tieq, { 0x50700000 }
},
/* ftira$pack $GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftira, { 0x78740000 }
},
/* ftino$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_ftino, { 0x740000 }
},
/* ftine$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x38740000 }
},
/* ftieq$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x40740000 }
},
/* ftilg$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x30740000 }
},
/* ftiue$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x48740000 }
},
/* ftiul$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x28740000 }
},
/* ftige$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x50740000 }
},
/* ftilt$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x20740000 }
},
/* ftiuge$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x58740000 }
},
/* ftiug$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x18740000 }
},
/* ftile$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x60740000 }
},
/* ftigt$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x10740000 }
},
/* ftiule$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x68740000 }
},
/* ftiu$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x8740000 }
},
/* ftio$pack $FCCi_2,$GRi,$s12 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_2), ',', OP (GRI), ',', OP (S12), 0 } },
& ifmt_ftine, { 0x70740000 }
},
/* break$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_break, { 0x1000c0 }
},
/* mtrap$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_break, { 0x100080 }
},
/* andcr$pack $CRi,$CRj,$CRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRI), ',', OP (CRJ), ',', OP (CRK), 0 } },
& ifmt_andcr, { 0x280200 }
},
/* orcr$pack $CRi,$CRj,$CRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRI), ',', OP (CRJ), ',', OP (CRK), 0 } },
& ifmt_andcr, { 0x280240 }
},
/* xorcr$pack $CRi,$CRj,$CRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRI), ',', OP (CRJ), ',', OP (CRK), 0 } },
& ifmt_andcr, { 0x280280 }
},
/* nandcr$pack $CRi,$CRj,$CRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRI), ',', OP (CRJ), ',', OP (CRK), 0 } },
& ifmt_andcr, { 0x280300 }
},
/* norcr$pack $CRi,$CRj,$CRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRI), ',', OP (CRJ), ',', OP (CRK), 0 } },
& ifmt_andcr, { 0x280340 }
},
/* andncr$pack $CRi,$CRj,$CRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRI), ',', OP (CRJ), ',', OP (CRK), 0 } },
& ifmt_andcr, { 0x280400 }
},
/* orncr$pack $CRi,$CRj,$CRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRI), ',', OP (CRJ), ',', OP (CRK), 0 } },
& ifmt_andcr, { 0x280440 }
},
/* nandncr$pack $CRi,$CRj,$CRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRI), ',', OP (CRJ), ',', OP (CRK), 0 } },
& ifmt_andcr, { 0x280500 }
},
/* norncr$pack $CRi,$CRj,$CRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRI), ',', OP (CRJ), ',', OP (CRK), 0 } },
& ifmt_andcr, { 0x280540 }
},
/* notcr$pack $CRj,$CRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRJ), ',', OP (CRK), 0 } },
& ifmt_notcr, { 0x2802c0 }
},
/* ckra$pack $CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRJ_INT), 0 } },
& ifmt_ckra, { 0x40200000 }
},
/* ckno$pack $CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRJ_INT), 0 } },
& ifmt_ckra, { 0x200000 }
},
/* ckeq$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x20200000 }
},
/* ckne$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x60200000 }
},
/* ckle$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x38200000 }
},
/* ckgt$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x78200000 }
},
/* cklt$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x18200000 }
},
/* ckge$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x58200000 }
},
/* ckls$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x28200000 }
},
/* ckhi$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x68200000 }
},
/* ckc$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x8200000 }
},
/* cknc$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x48200000 }
},
/* ckn$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x30200000 }
},
/* ckp$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x70200000 }
},
/* ckv$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x10200000 }
},
/* cknv$pack $ICCi_3,$CRj_int */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), 0 } },
& ifmt_ckeq, { 0x50200000 }
},
/* fckra$pack $CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x78240000 }
},
/* fckno$pack $CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x240000 }
},
/* fckne$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x38240000 }
},
/* fckeq$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x40240000 }
},
/* fcklg$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x30240000 }
},
/* fckue$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x48240000 }
},
/* fckul$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x28240000 }
},
/* fckge$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x50240000 }
},
/* fcklt$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x20240000 }
},
/* fckuge$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x58240000 }
},
/* fckug$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x18240000 }
},
/* fckle$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x60240000 }
},
/* fckgt$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x10240000 }
},
/* fckule$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x68240000 }
},
/* fcku$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x8240000 }
},
/* fcko$pack $FCCi_3,$CRj_float */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), 0 } },
& ifmt_fckra, { 0x70240000 }
},
/* cckra$pack $CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckra, { 0x41a80000 }
},
/* cckno$pack $CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckra, { 0x1a80000 }
},
/* cckeq$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x21a80000 }
},
/* cckne$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x61a80000 }
},
/* cckle$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x39a80000 }
},
/* cckgt$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x79a80000 }
},
/* ccklt$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x19a80000 }
},
/* cckge$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x59a80000 }
},
/* cckls$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x29a80000 }
},
/* cckhi$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x69a80000 }
},
/* cckc$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x9a80000 }
},
/* ccknc$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x49a80000 }
},
/* cckn$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x31a80000 }
},
/* cckp$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x71a80000 }
},
/* cckv$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x11a80000 }
},
/* ccknv$pack $ICCi_3,$CRj_int,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ICCI_3), ',', OP (CRJ_INT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cckeq, { 0x51a80000 }
},
/* cfckra$pack $CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckra, { 0x79a80040 }
},
/* cfckno$pack $CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckra, { 0x1a80040 }
},
/* cfckne$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x39a80040 }
},
/* cfckeq$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x41a80040 }
},
/* cfcklg$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x31a80040 }
},
/* cfckue$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x49a80040 }
},
/* cfckul$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x29a80040 }
},
/* cfckge$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x51a80040 }
},
/* cfcklt$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x21a80040 }
},
/* cfckuge$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x59a80040 }
},
/* cfckug$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x19a80040 }
},
/* cfckle$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x61a80040 }
},
/* cfckgt$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x11a80040 }
},
/* cfckule$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x69a80040 }
},
/* cfcku$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x9a80040 }
},
/* cfcko$pack $FCCi_3,$CRj_float,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FCCI_3), ',', OP (CRJ_FLOAT), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfckne, { 0x71a80040 }
},
/* cjmpl$pack @($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cjmpl, { 0x1a80080 }
},
/* ccalll$pack @($GRi,$GRj),$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_ccalll, { 0x3a80080 }
},
/* ici$pack @($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_smu, { 0xc0e00 }
},
/* dci$pack @($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_smu, { 0xc0f00 }
},
/* icei$pack @($GRi,$GRj),$ae */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (AE), 0 } },
& ifmt_icei, { 0xc0e40 }
},
/* dcei$pack @($GRi,$GRj),$ae */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (AE), 0 } },
& ifmt_icei, { 0xc0e80 }
},
/* dcf$pack @($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_smu, { 0xc0f40 }
},
/* dcef$pack @($GRi,$GRj),$ae */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', ',', OP (AE), 0 } },
& ifmt_icei, { 0xc0ec0 }
},
/* witlb$pack $GRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_slass, { 0xc0c80 }
},
/* wdtlb$pack $GRk,@($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), ',', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_slass, { 0xc0d80 }
},
/* itlbi$pack @($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_smu, { 0xc0cc0 }
},
/* dtlbi$pack @($GRi,$GRj) */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', '@', '(', OP (GRI), ',', OP (GRJ), ')', 0 } },
& ifmt_smu, { 0xc0dc0 }
},
/* icpl$pack $GRi,$GRj,$lock */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (LOCK), 0 } },
& ifmt_icpl, { 0xc0c00 }
},
/* dcpl$pack $GRi,$GRj,$lock */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (LOCK), 0 } },
& ifmt_icpl, { 0xc0d00 }
},
/* icul$pack $GRi */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), 0 } },
& ifmt_icul, { 0xc0c40 }
},
/* dcul$pack $GRi */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), 0 } },
& ifmt_icul, { 0xc0d40 }
},
/* bar$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_bar, { 0xc0f80 }
},
/* membar$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_bar, { 0xc0fc0 }
},
2004-03-01 11:11:46 +01:00
/* lrai$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRK), ',', OP (LRAE), ',', OP (LRAD), ',', OP (LRAS), 0 } },
& ifmt_lrai, { 0xc0800 }
},
/* lrad$pack $GRi,$GRk,$LRAE,$LRAD,$LRAS */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRK), ',', OP (LRAE), ',', OP (LRAD), ',', OP (LRAS), 0 } },
& ifmt_lrai, { 0xc0840 }
},
/* tlbpr$pack $GRi,$GRj,$TLBPRopx,$TLBPRL */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (TLBPROPX), ',', OP (TLBPRL), 0 } },
& ifmt_tlbpr, { 0xc0900 }
},
/* cop1$pack $s6_1,$CPRi,$CPRj,$CPRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (S6_1), ',', OP (CPRI), ',', OP (CPRJ), ',', OP (CPRK), 0 } },
& ifmt_cop1, { 0x1f80000 }
},
/* cop2$pack $s6_1,$CPRi,$CPRj,$CPRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (S6_1), ',', OP (CPRI), ',', OP (CPRJ), ',', OP (CPRK), 0 } },
& ifmt_cop1, { 0x1fc0000 }
},
/* clrgr$pack $GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), 0 } },
& ifmt_clrgr, { 0x280000 }
},
/* clrfr$pack $FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRK), 0 } },
& ifmt_clrfr, { 0x280080 }
},
/* clrga$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_bar, { 0x280040 }
},
/* clrfa$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_bar, { 0x2800c0 }
},
/* commitgr$pack $GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRK), 0 } },
& ifmt_clrgr, { 0x280100 }
},
/* commitfr$pack $FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRK), 0 } },
& ifmt_clrfr, { 0x280180 }
},
/* commitga$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_bar, { 0x280140 }
},
/* commitfa$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_bar, { 0x2801c0 }
},
/* fitos$pack $FRintj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRK), 0 } },
& ifmt_fitos, { 0x1e40000 }
},
/* fstoi$pack $FRj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRINTK), 0 } },
& ifmt_fstoi, { 0x1e40040 }
},
/* fitod$pack $FRintj,$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRDOUBLEK), 0 } },
& ifmt_fitod, { 0x1e80000 }
},
/* fdtoi$pack $FRdoublej,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEJ), ',', OP (FRINTK), 0 } },
& ifmt_fdtoi, { 0x1e80040 }
},
/* fditos$pack $FRintj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRK), 0 } },
& ifmt_fitos, { 0x1e40400 }
},
/* fdstoi$pack $FRj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRINTK), 0 } },
& ifmt_fstoi, { 0x1e40440 }
},
/* nfditos$pack $FRintj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRK), 0 } },
& ifmt_fitos, { 0x1e40c00 }
},
/* nfdstoi$pack $FRj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRINTK), 0 } },
& ifmt_fstoi, { 0x1e40c40 }
},
/* cfitos$pack $FRintj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfitos, { 0x1ac0000 }
},
/* cfstoi$pack $FRj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfstoi, { 0x1ac0040 }
},
/* nfitos$pack $FRintj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRK), 0 } },
& ifmt_fitos, { 0x1e40800 }
},
/* nfstoi$pack $FRj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRINTK), 0 } },
& ifmt_fstoi, { 0x1e40840 }
},
/* fmovs$pack $FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fmovs, { 0x1e40080 }
},
/* fmovd$pack $FRdoublej,$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEJ), ',', OP (FRDOUBLEK), 0 } },
& ifmt_fmovd, { 0x1e80080 }
},
/* fdmovs$pack $FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fmovs, { 0x1e40480 }
},
/* cfmovs$pack $FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfmovs, { 0x1b00000 }
},
/* fnegs$pack $FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fmovs, { 0x1e400c0 }
},
/* fnegd$pack $FRdoublej,$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEJ), ',', OP (FRDOUBLEK), 0 } },
& ifmt_fmovd, { 0x1e800c0 }
},
/* fdnegs$pack $FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fmovs, { 0x1e404c0 }
},
/* cfnegs$pack $FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfmovs, { 0x1b00040 }
},
/* fabss$pack $FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fmovs, { 0x1e40100 }
},
/* fabsd$pack $FRdoublej,$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEJ), ',', OP (FRDOUBLEK), 0 } },
& ifmt_fmovd, { 0x1e80100 }
},
/* fdabss$pack $FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fmovs, { 0x1e40500 }
},
/* cfabss$pack $FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfmovs, { 0x1b00080 }
},
/* fsqrts$pack $FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fmovs, { 0x1e40140 }
},
/* fdsqrts$pack $FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fmovs, { 0x1e40540 }
},
/* nfdsqrts$pack $FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fmovs, { 0x1e40d40 }
},
/* fsqrtd$pack $FRdoublej,$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEJ), ',', OP (FRDOUBLEK), 0 } },
& ifmt_fmovd, { 0x1e80140 }
},
/* cfsqrts$pack $FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfmovs, { 0x1b80080 }
},
/* nfsqrts$pack $FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fmovs, { 0x1e40940 }
},
/* fadds$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40180 }
},
/* fsubs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e401c0 }
},
/* fmuls$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40200 }
},
/* fdivs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40240 }
},
/* faddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEI), ',', OP (FRDOUBLEJ), ',', OP (FRDOUBLEK), 0 } },
& ifmt_faddd, { 0x1e80180 }
},
/* fsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEI), ',', OP (FRDOUBLEJ), ',', OP (FRDOUBLEK), 0 } },
& ifmt_faddd, { 0x1e801c0 }
},
/* fmuld$pack $FRdoublei,$FRdoublej,$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEI), ',', OP (FRDOUBLEJ), ',', OP (FRDOUBLEK), 0 } },
& ifmt_faddd, { 0x1e80200 }
},
/* fdivd$pack $FRdoublei,$FRdoublej,$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEI), ',', OP (FRDOUBLEJ), ',', OP (FRDOUBLEK), 0 } },
& ifmt_faddd, { 0x1e80240 }
},
/* cfadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfadds, { 0x1b40000 }
},
/* cfsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfadds, { 0x1b40040 }
},
/* cfmuls$pack $FRi,$FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfadds, { 0x1b80000 }
},
/* cfdivs$pack $FRi,$FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfadds, { 0x1b80040 }
},
/* nfadds$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40980 }
},
/* nfsubs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e409c0 }
},
/* nfmuls$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40a00 }
},
/* nfdivs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40a40 }
},
/* fcmps$pack $FRi,$FRj,$FCCi_2 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FCCI_2), 0 } },
& ifmt_fcmps, { 0x1e40280 }
},
/* fcmpd$pack $FRdoublei,$FRdoublej,$FCCi_2 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEI), ',', OP (FRDOUBLEJ), ',', OP (FCCI_2), 0 } },
& ifmt_fcmpd, { 0x1e80280 }
},
/* cfcmps$pack $FRi,$FRj,$FCCi_2,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FCCI_2), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfcmps, { 0x1b40080 }
},
/* fdcmps$pack $FRi,$FRj,$FCCi_2 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FCCI_2), 0 } },
& ifmt_fcmps, { 0x1e40680 }
},
/* fmadds$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e402c0 }
},
/* fmsubs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40300 }
},
/* fmaddd$pack $FRdoublei,$FRdoublej,$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEI), ',', OP (FRDOUBLEJ), ',', OP (FRDOUBLEK), 0 } },
& ifmt_faddd, { 0x1e802c0 }
},
/* fmsubd$pack $FRdoublei,$FRdoublej,$FRdoublek */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRDOUBLEI), ',', OP (FRDOUBLEJ), ',', OP (FRDOUBLEK), 0 } },
& ifmt_faddd, { 0x1e80300 }
},
/* fdmadds$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e406c0 }
},
/* nfdmadds$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40ec0 }
},
/* cfmadds$pack $FRi,$FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfadds, { 0x1bc0000 }
},
/* cfmsubs$pack $FRi,$FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfadds, { 0x1bc0040 }
},
/* nfmadds$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40ac0 }
},
/* nfmsubs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40b00 }
},
/* fmas$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40380 }
},
/* fmss$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e403c0 }
},
/* fdmas$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40700 }
},
/* fdmss$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40740 }
},
/* nfdmas$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40f00 }
},
/* nfdmss$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40f40 }
},
/* cfmas$pack $FRi,$FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfadds, { 0x1bc0080 }
},
/* cfmss$pack $FRi,$FRj,$FRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cfadds, { 0x1bc00c0 }
},
/* fmad$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e80380 }
},
/* fmsd$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e803c0 }
},
/* nfmas$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40b80 }
},
/* nfmss$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40bc0 }
},
/* fdadds$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40580 }
},
/* fdsubs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e405c0 }
},
/* fdmuls$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40600 }
},
/* fddivs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40640 }
},
/* fdsads$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40780 }
},
/* fdmulcs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e407c0 }
},
/* nfdmulcs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40fc0 }
},
/* nfdadds$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40d80 }
},
/* nfdsubs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40dc0 }
},
/* nfdmuls$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40e00 }
},
/* nfddivs$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40e40 }
},
/* nfdsads$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1e40f80 }
},
/* nfdcmps$pack $FRi,$FRj,$FCCi_2 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FCCI_2), 0 } },
& ifmt_fcmps, { 0x1e40e80 }
},
/* mhsetlos$pack $u12,$FRklo */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (U12), ',', OP (FRKLO), 0 } },
& ifmt_mhsetlos, { 0x1e00800 }
},
/* mhsethis$pack $u12,$FRkhi */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (U12), ',', OP (FRKHI), 0 } },
& ifmt_mhsethis, { 0x1e00880 }
},
/* mhdsets$pack $u12,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (U12), ',', OP (FRINTK), 0 } },
& ifmt_mhdsets, { 0x1e00900 }
},
/* mhsetloh$pack $s5,$FRklo */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (S5), ',', OP (FRKLO), 0 } },
& ifmt_mhsetloh, { 0x1e00840 }
},
/* mhsethih$pack $s5,$FRkhi */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (S5), ',', OP (FRKHI), 0 } },
& ifmt_mhsethih, { 0x1e008c0 }
},
/* mhdseth$pack $s5,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (S5), ',', OP (FRINTK), 0 } },
& ifmt_mhdseth, { 0x1e00940 }
},
/* mand$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec0000 }
},
/* mor$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec0040 }
},
/* mxor$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec0080 }
},
/* cmand$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmand, { 0x1c00000 }
},
/* cmor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmand, { 0x1c00040 }
},
/* cmxor$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmand, { 0x1c00080 }
},
/* mnot$pack $FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mnot, { 0x1ec00c0 }
},
/* cmnot$pack $FRintj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmnot, { 0x1c000c0 }
},
/* mrotli$pack $FRinti,$u6,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), 0 } },
& ifmt_mrotli, { 0x1ec0100 }
},
/* mrotri$pack $FRinti,$u6,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), 0 } },
& ifmt_mrotli, { 0x1ec0140 }
},
/* mwcut$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec0180 }
},
/* mwcuti$pack $FRinti,$u6,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), 0 } },
& ifmt_mrotli, { 0x1ec01c0 }
},
/* mcut$pack $ACC40Si,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mcut, { 0x1ec0b00 }
},
/* mcuti$pack $ACC40Si,$s6,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (S6), ',', OP (FRINTK), 0 } },
& ifmt_mcuti, { 0x1ec0b80 }
},
/* mcutss$pack $ACC40Si,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mcut, { 0x1ec0b40 }
},
/* mcutssi$pack $ACC40Si,$s6,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (S6), ',', OP (FRINTK), 0 } },
& ifmt_mcuti, { 0x1ec0bc0 }
},
/* mdcutssi$pack $ACC40Si,$s6,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (S6), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mdcutssi, { 0x1e00380 }
},
/* maveh$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec0200 }
},
/* msllhi$pack $FRinti,$u6,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), 0 } },
& ifmt_mrotli, { 0x1ec0240 }
},
/* msrlhi$pack $FRinti,$u6,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), 0 } },
& ifmt_mrotli, { 0x1ec0280 }
},
/* msrahi$pack $FRinti,$u6,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), 0 } },
& ifmt_mrotli, { 0x1ec02c0 }
},
/* mdrotli$pack $FRintieven,$s6,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (S6), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mdrotli, { 0x1e002c0 }
},
/* mcplhi$pack $FRinti,$u6,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), 0 } },
& ifmt_mrotli, { 0x1e00300 }
},
/* mcpli$pack $FRinti,$u6,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), 0 } },
& ifmt_mrotli, { 0x1e00340 }
},
/* msaths$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec0300 }
},
/* mqsaths$pack $FRintieven,$FRintjeven,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mqsaths, { 0x1e003c0 }
},
/* msathu$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec0340 }
},
/* mcmpsh$pack $FRinti,$FRintj,$FCCk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FCCK), 0 } },
& ifmt_mcmpsh, { 0x1ec0380 }
},
/* mcmpuh$pack $FRinti,$FRintj,$FCCk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FCCK), 0 } },
& ifmt_mcmpsh, { 0x1ec03c0 }
},
/* mabshs$pack $FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mabshs, { 0x1e00280 }
},
/* maddhss$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec0400 }
},
/* maddhus$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec0440 }
},
/* msubhss$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec0480 }
},
/* msubhus$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec04c0 }
},
/* cmaddhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmand, { 0x1c40000 }
},
/* cmaddhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmand, { 0x1c40040 }
},
/* cmsubhss$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmand, { 0x1c40080 }
},
/* cmsubhus$pack $FRinti,$FRintj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmand, { 0x1c400c0 }
},
/* mqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mqsaths, { 0x1ec0600 }
},
/* mqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mqsaths, { 0x1ec0640 }
},
/* mqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mqsaths, { 0x1ec0680 }
},
/* mqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mqsaths, { 0x1ec06c0 }
},
/* cmqaddhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmqaddhss, { 0x1cc0000 }
},
/* cmqaddhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmqaddhss, { 0x1cc0040 }
},
/* cmqsubhss$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmqaddhss, { 0x1cc0080 }
},
/* cmqsubhus$pack $FRintieven,$FRintjeven,$FRintkeven,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmqaddhss, { 0x1cc00c0 }
},
2004-03-01 11:11:46 +01:00
/* mqlclrhs$pack $FRintieven,$FRintjeven,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mqsaths, { 0x1e00400 }
},
/* mqlmths$pack $FRintieven,$FRintjeven,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mqsaths, { 0x1e00500 }
},
/* mqsllhi$pack $FRintieven,$u6,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (U6), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mqsllhi, { 0x1e00440 }
},
/* mqsrahi$pack $FRintieven,$u6,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (U6), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mqsllhi, { 0x1e004c0 }
},
/* maddaccs$pack $ACC40Si,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (ACC40SK), 0 } },
& ifmt_maddaccs, { 0x1e00100 }
},
/* msubaccs$pack $ACC40Si,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (ACC40SK), 0 } },
& ifmt_maddaccs, { 0x1e00140 }
},
/* mdaddaccs$pack $ACC40Si,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (ACC40SK), 0 } },
& ifmt_maddaccs, { 0x1e00180 }
},
/* mdsubaccs$pack $ACC40Si,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (ACC40SK), 0 } },
& ifmt_maddaccs, { 0x1e001c0 }
},
/* masaccs$pack $ACC40Si,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (ACC40SK), 0 } },
& ifmt_maddaccs, { 0x1e00200 }
},
/* mdasaccs$pack $ACC40Si,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (ACC40SK), 0 } },
& ifmt_maddaccs, { 0x1e00240 }
},
/* mmulhs$pack $FRinti,$FRintj,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } },
& ifmt_mmulhs, { 0x1ec0500 }
},
/* mmulhu$pack $FRinti,$FRintj,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } },
& ifmt_mmulhs, { 0x1ec0540 }
},
/* mmulxhs$pack $FRinti,$FRintj,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } },
& ifmt_mmulhs, { 0x1ec0a00 }
},
/* mmulxhu$pack $FRinti,$FRintj,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } },
& ifmt_mmulhs, { 0x1ec0a40 }
},
/* cmmulhs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmmulhs, { 0x1c80000 }
},
/* cmmulhu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmmulhs, { 0x1c80040 }
},
/* mqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1ec0700 }
},
/* mqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1ec0740 }
},
/* mqmulxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1ec0a80 }
},
/* mqmulxhu$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1ec0ac0 }
},
/* cmqmulhs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmqmulhs, { 0x1d00000 }
},
/* cmqmulhu$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmqmulhs, { 0x1d00040 }
},
/* mmachs$pack $FRinti,$FRintj,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } },
& ifmt_mmulhs, { 0x1ec0580 }
},
/* mmachu$pack $FRinti,$FRintj,$ACC40Uk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40UK), 0 } },
& ifmt_mmachu, { 0x1ec05c0 }
},
/* mmrdhs$pack $FRinti,$FRintj,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } },
& ifmt_mmulhs, { 0x1ec0c00 }
},
/* mmrdhu$pack $FRinti,$FRintj,$ACC40Uk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40UK), 0 } },
& ifmt_mmachu, { 0x1ec0c40 }
},
/* cmmachs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmmulhs, { 0x1c80080 }
},
/* cmmachu$pack $FRinti,$FRintj,$ACC40Uk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40UK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmmachu, { 0x1c800c0 }
},
/* mqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1ec0780 }
},
/* mqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40UK), 0 } },
& ifmt_mqmachu, { 0x1ec07c0 }
},
/* cmqmachs$pack $FRintieven,$FRintjeven,$ACC40Sk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmqmulhs, { 0x1d00080 }
},
/* cmqmachu$pack $FRintieven,$FRintjeven,$ACC40Uk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40UK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmqmachu, { 0x1d000c0 }
},
/* mqxmachs$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1e00000 }
},
/* mqxmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1e00040 }
},
/* mqmacxhs$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1e00080 }
},
/* mcpxrs$pack $FRinti,$FRintj,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } },
& ifmt_mmulhs, { 0x1ec0800 }
},
/* mcpxru$pack $FRinti,$FRintj,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } },
& ifmt_mmulhs, { 0x1ec0840 }
},
/* mcpxis$pack $FRinti,$FRintj,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } },
& ifmt_mmulhs, { 0x1ec0880 }
},
/* mcpxiu$pack $FRinti,$FRintj,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), 0 } },
& ifmt_mmulhs, { 0x1ec08c0 }
},
/* cmcpxrs$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmmulhs, { 0x1d40000 }
},
/* cmcpxru$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmmulhs, { 0x1d40040 }
},
/* cmcpxis$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmmulhs, { 0x1d40080 }
},
/* cmcpxiu$pack $FRinti,$FRintj,$ACC40Sk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (ACC40SK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmmulhs, { 0x1d400c0 }
},
/* mqcpxrs$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1ec0900 }
},
/* mqcpxru$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1ec0940 }
},
/* mqcpxis$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1ec0980 }
},
/* mqcpxiu$pack $FRintieven,$FRintjeven,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (ACC40SK), 0 } },
& ifmt_mqmulhs, { 0x1ec09c0 }
},
/* mexpdhw$pack $FRinti,$u6,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), 0 } },
& ifmt_mrotli, { 0x1ec0c80 }
},
/* cmexpdhw$pack $FRinti,$u6,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmexpdhw, { 0x1d80080 }
},
/* mexpdhd$pack $FRinti,$u6,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mexpdhd, { 0x1ec0cc0 }
},
/* cmexpdhd$pack $FRinti,$u6,$FRintkeven,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (U6), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmexpdhd, { 0x1d800c0 }
},
/* mpackh$pack $FRinti,$FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mand, { 0x1ec0d00 }
},
/* mdpackh$pack $FRintieven,$FRintjeven,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTJEVEN), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mqsaths, { 0x1ec0d80 }
},
/* munpackh$pack $FRinti,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (FRINTKEVEN), 0 } },
& ifmt_munpackh, { 0x1ec0d40 }
},
/* mdunpackh$pack $FRintieven,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTIEVEN), ',', OP (FRINTK), 0 } },
& ifmt_mdunpackh, { 0x1ec0dc0 }
},
/* mbtoh$pack $FRintj,$FRintkeven */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTKEVEN), 0 } },
& ifmt_mbtoh, { 0x1ec0e00 }
},
/* cmbtoh$pack $FRintj,$FRintkeven,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTKEVEN), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmbtoh, { 0x1dc0000 }
},
/* mhtob$pack $FRintjeven,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJEVEN), ',', OP (FRINTK), 0 } },
& ifmt_mhtob, { 0x1ec0e40 }
},
/* cmhtob$pack $FRintjeven,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJEVEN), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmhtob, { 0x1dc0040 }
},
/* mbtohe$pack $FRintj,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTK), 0 } },
& ifmt_mabshs, { 0x1ec0e80 }
},
/* cmbtohe$pack $FRintj,$FRintk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTJ), ',', OP (FRINTK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmbtohe, { 0x1dc0080 }
},
/* mnop$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_mnop, { 0x7fee0ec0 }
},
/* mclracc$pack $ACC40Sk,$A0 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SK), ',', OP (A0), 0 } },
& ifmt_mclracc_0, { 0x1ec0ec0 }
},
/* mclracc$pack $ACC40Sk,$A1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SK), ',', OP (A1), 0 } },
& ifmt_mclracc_0, { 0x1ee0ec0 }
},
/* mrdacc$pack $ACC40Si,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACC40SI), ',', OP (FRINTK), 0 } },
& ifmt_mrdacc, { 0x1ec0f00 }
},
/* mrdaccg$pack $ACCGi,$FRintk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (ACCGI), ',', OP (FRINTK), 0 } },
& ifmt_mrdaccg, { 0x1ec0f80 }
},
/* mwtacc$pack $FRinti,$ACC40Sk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (ACC40SK), 0 } },
& ifmt_mwtacc, { 0x1ec0f40 }
},
/* mwtaccg$pack $FRinti,$ACCGk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRINTI), ',', OP (ACCGK), 0 } },
& ifmt_mwtaccg, { 0x1ec0fc0 }
},
/* mcop1$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1f00000 }
},
/* mcop2$pack $FRi,$FRj,$FRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (FRI), ',', OP (FRJ), ',', OP (FRK), 0 } },
& ifmt_fadds, { 0x1f40000 }
},
/* fnop$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_fnop, { 0x1e40340 }
},
};
#undef A
#undef OPERAND
#undef MNEM
#undef OP
/* Formats for ALIAS macro-insns. */
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define F(f) & frv_cgen_ifld_table[FRV_##f]
#else
#define F(f) & frv_cgen_ifld_table[FRV_/**/f]
#endif
static const CGEN_IFMT ifmt_nop = {
32, 32, 0x7fffffff, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_ret = {
32, 32, 0x7fffffff, { { F (F_PACK) }, { F (F_INT_CC) }, { F (F_ICCI_2_NULL) }, { F (F_OP) }, { F (F_HINT) }, { F (F_OPE3) }, { F (F_CCOND_NULL) }, { F (F_S12_NULL) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmp = {
32, 32, 0x7ffc03c0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_ICCI_1) }, { F (F_OPE2) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmpi = {
32, 32, 0x7ffc0000, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_ICCI_1) }, { F (F_S10) }, { 0 } }
};
static const CGEN_IFMT ifmt_ccmp = {
32, 32, 0x7ffc00c0, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
static const CGEN_IFMT ifmt_mov = {
32, 32, 0x1fc0fff, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_D12) }, { 0 } }
};
static const CGEN_IFMT ifmt_cmov = {
32, 32, 0x1fc00ff, { { F (F_PACK) }, { F (F_GRK) }, { F (F_OP) }, { F (F_GRI) }, { F (F_CCI) }, { F (F_COND) }, { F (F_OPE4) }, { F (F_GRJ) }, { 0 } }
};
#undef F
/* Each non-simple macro entry points to an array of expansion possibilities. */
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define A(a) (1 << CGEN_INSN_##a)
#else
#define A(a) (1 << CGEN_INSN_/**/a)
#endif
#if defined (__STDC__) || defined (ALMOST_STDC) || defined (HAVE_STRINGIZE)
#define OPERAND(op) FRV_OPERAND_##op
#else
#define OPERAND(op) FRV_OPERAND_/**/op
#endif
#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
/* The macro instruction table. */
static const CGEN_IBASE frv_cgen_macro_insn_table[] =
{
/* nop$pack */
{
-1, "nop", "nop", 32,
2004-03-01 11:11:46 +01:00
{ 0|A(ALIAS), { (1<<MACH_BASE), UNIT_IALL, FR400_MAJOR_I_1, FR450_MAJOR_I_1, FR500_MAJOR_I_1, FR550_MAJOR_NONE } }
},
/* ret$pack */
{
-1, "ret", "ret", 32,
2004-03-01 11:11:46 +01:00
{ 0|A(NO_DIS)|A(ALIAS), { (1<<MACH_BASE), UNIT_B01, FR400_MAJOR_B_3, FR450_MAJOR_B_3, FR500_MAJOR_B_3, FR550_MAJOR_NONE } }
},
/* cmp$pack $GRi,$GRj,$ICCi_1 */
{
-1, "cmp", "cmp", 32,
2004-03-01 11:11:46 +01:00
{ 0|A(NO_DIS)|A(ALIAS), { (1<<MACH_BASE), UNIT_IALL, FR400_MAJOR_I_1, FR450_MAJOR_I_1, FR500_MAJOR_I_1, FR550_MAJOR_NONE } }
},
/* cmpi$pack $GRi,$s10,$ICCi_1 */
{
-1, "cmpi", "cmpi", 32,
2004-03-01 11:11:46 +01:00
{ 0|A(NO_DIS)|A(ALIAS), { (1<<MACH_BASE), UNIT_IALL, FR400_MAJOR_I_1, FR450_MAJOR_I_1, FR500_MAJOR_I_1, FR550_MAJOR_NONE } }
},
/* ccmp$pack $GRi,$GRj,$CCi,$cond */
{
-1, "ccmp", "ccmp", 32,
2004-03-01 11:11:46 +01:00
{ 0|A(CONDITIONAL)|A(NO_DIS)|A(ALIAS), { (1<<MACH_BASE), UNIT_IALL, FR400_MAJOR_I_1, FR450_MAJOR_I_1, FR500_MAJOR_I_1, FR550_MAJOR_NONE } }
},
/* mov$pack $GRi,$GRk */
{
-1, "mov", "mov", 32,
2004-03-01 11:11:46 +01:00
{ 0|A(NO_DIS)|A(ALIAS), { (1<<MACH_BASE), UNIT_IALL, FR400_MAJOR_I_1, FR450_MAJOR_I_1, FR500_MAJOR_I_1, FR550_MAJOR_NONE } }
},
/* cmov$pack $GRi,$GRk,$CCi,$cond */
{
-1, "cmov", "cmov", 32,
2004-03-01 11:11:46 +01:00
{ 0|A(CONDITIONAL)|A(NO_DIS)|A(ALIAS), { (1<<MACH_BASE), UNIT_IALL, FR400_MAJOR_I_1, FR450_MAJOR_I_1, FR500_MAJOR_I_1, FR550_MAJOR_NONE } }
},
};
/* The macro instruction opcode table. */
static const CGEN_OPCODE frv_cgen_macro_insn_opcode_table[] =
{
/* nop$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_nop, { 0x880000 }
},
/* ret$pack */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), 0 } },
& ifmt_ret, { 0x403a4000 }
},
/* cmp$pack $GRi,$GRj,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (ICCI_1), 0 } },
& ifmt_cmp, { 0x140 }
},
/* cmpi$pack $GRi,$s10,$ICCi_1 */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (S10), ',', OP (ICCI_1), 0 } },
& ifmt_cmpi, { 0x540000 }
},
/* ccmp$pack $GRi,$GRj,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRJ), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_ccmp, { 0x1640040 }
},
/* mov$pack $GRi,$GRk */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRK), 0 } },
& ifmt_mov, { 0x880000 }
},
/* cmov$pack $GRi,$GRk,$CCi,$cond */
{
{ 0, 0, 0, 0 },
{ { MNEM, OP (PACK), ' ', OP (GRI), ',', OP (GRK), ',', OP (CCI), ',', OP (COND), 0 } },
& ifmt_cmov, { 0x1680040 }
},
};
#undef A
#undef OPERAND
#undef MNEM
#undef OP
#ifndef CGEN_ASM_HASH_P
#define CGEN_ASM_HASH_P(insn) 1
#endif
#ifndef CGEN_DIS_HASH_P
#define CGEN_DIS_HASH_P(insn) 1
#endif
/* Return non-zero if INSN is to be added to the hash table.
Targets are free to override CGEN_{ASM,DIS}_HASH_P in the .opc file. */
static int
asm_hash_insn_p (insn)
const CGEN_INSN *insn ATTRIBUTE_UNUSED;
{
return CGEN_ASM_HASH_P (insn);
}
static int
dis_hash_insn_p (insn)
const CGEN_INSN *insn;
{
/* If building the hash table and the NO-DIS attribute is present,
ignore. */
if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
return 0;
return CGEN_DIS_HASH_P (insn);
}
#ifndef CGEN_ASM_HASH
#define CGEN_ASM_HASH_SIZE 127
#ifdef CGEN_MNEMONIC_OPERANDS
#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
#else
#define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
#endif
#endif
/* It doesn't make much sense to provide a default here,
but while this is under development we do.
BUFFER is a pointer to the bytes of the insn, target order.
VALUE is the first base_insn_bitsize bits as an int in host order. */
#ifndef CGEN_DIS_HASH
#define CGEN_DIS_HASH_SIZE 256
#define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
#endif
/* The result is the hash value of the insn.
Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file. */
static unsigned int
asm_hash_insn (mnem)
const char * mnem;
{
return CGEN_ASM_HASH (mnem);
}
/* BUF is a pointer to the bytes of the insn, target order.
VALUE is the first base_insn_bitsize bits as an int in host order. */
static unsigned int
dis_hash_insn (buf, value)
const char * buf ATTRIBUTE_UNUSED;
CGEN_INSN_INT value ATTRIBUTE_UNUSED;
{
return CGEN_DIS_HASH (buf, value);
}
static void set_fields_bitsize PARAMS ((CGEN_FIELDS *, int));
/* Set the recorded length of the insn in the CGEN_FIELDS struct. */
static void
set_fields_bitsize (fields, size)
CGEN_FIELDS *fields;
int size;
{
CGEN_FIELDS_BITSIZE (fields) = size;
}
/* Function to call before using the operand instance table.
This plugs the opcode entries and macro instructions into the cpu table. */
void
frv_cgen_init_opcode_table (cd)
CGEN_CPU_DESC cd;
{
int i;
int num_macros = (sizeof (frv_cgen_macro_insn_table) /
sizeof (frv_cgen_macro_insn_table[0]));
const CGEN_IBASE *ib = & frv_cgen_macro_insn_table[0];
const CGEN_OPCODE *oc = & frv_cgen_macro_insn_opcode_table[0];
CGEN_INSN *insns = (CGEN_INSN *) xmalloc (num_macros * sizeof (CGEN_INSN));
memset (insns, 0, num_macros * sizeof (CGEN_INSN));
for (i = 0; i < num_macros; ++i)
{
insns[i].base = &ib[i];
insns[i].opcode = &oc[i];
frv_cgen_build_insn_regex (& insns[i]);
}
cd->macro_insn_table.init_entries = insns;
cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
cd->macro_insn_table.num_init_entries = num_macros;
oc = & frv_cgen_insn_opcode_table[0];
insns = (CGEN_INSN *) cd->insn_table.init_entries;
for (i = 0; i < MAX_INSNS; ++i)
{
insns[i].opcode = &oc[i];
frv_cgen_build_insn_regex (& insns[i]);
}
cd->sizeof_fields = sizeof (CGEN_FIELDS);
cd->set_fields_bitsize = set_fields_bitsize;
cd->asm_hash_p = asm_hash_insn_p;
cd->asm_hash = asm_hash_insn;
cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
cd->dis_hash_p = dis_hash_insn_p;
cd->dis_hash = dis_hash_insn;
cd->dis_hash_size = CGEN_DIS_HASH_SIZE;
}