> It's describing a 7-bit field, so O7 is the more consistent (with other
> O<n> and F<n>) name. This way a subsequent change will also be a little
> easier.
> ---
> v2: New.
>
> --- a/gas/config/tc-riscv.c
> +++ b/gas/config/tc-riscv.c
> @@ -1620,7 +1620,7 @@ validate_riscv_insn (const struct riscv_
> case 'O': /* Opcode for .insn directive. */
> switch (*++oparg)
> {
> - case '4': USE_BITS (OP_MASK_OP, OP_SH_OP); break;
> + case '7': USE_BITS (OP_MASK_OP, OP_SH_OP); break;
> case '2': USE_BITS (OP_MASK_OP2, OP_SH_OP2); break;
> default:
> goto unknown_validate_operand;
> @@ -3711,7 +3711,7 @@ riscv_ip (char *str, struct riscv_cl_ins
> case 'O':
> switch (*++oparg)
> {
> - case '4':
> + case '7':
> if (my_getOpcodeExpression (imm_expr, imm_reloc, asarg)
> || imm_expr->X_op != O_constant
> || imm_expr->X_add_number < 0
LGTM.
Renaming O4 to O7 looks right to me. The operand describes the full 7-bit
opcode field, so O7 is more consistent with the other O<n>/F<n> operand
names and avoids the temporary regno == 4 special case in the following
cleanup.
> --- a/opcodes/riscv-opc.c
> +++ b/opcodes/riscv-opc.c
> @@ -3587,74 +3587,74 @@ const struct riscv_opcode riscv_opcodes[
> const struct riscv_opcode riscv_insn_types[] =
> {
> /* name, xlen, isa, operands, match, mask, match_func, pinfo. */
> -{"r", 0, INSN_CLASS_I, "O4,F3,F7,d,s,t", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,s,t", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,S,t", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,S,t", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,s,T", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,s,T", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,S,T", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,S,T", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,r", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,r", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,r", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,r", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,r", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,r", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,r", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,r", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,t,R", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,R", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,R", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,R", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,R", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,R", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,R", 0, 0, NULL, 0 },
> -{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,R", 0, 0, NULL, 0 },
> -
> -{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,r", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,r", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,r", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,r", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,r", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,r", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,r", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,r", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,t,R", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,R", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,R", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,R", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,R", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,R", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,R", 0, 0, NULL, 0 },
> -{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,R", 0, 0, NULL, 0 },
> -
> -{"i", 0, INSN_CLASS_I, "O4,F3,d,s,j", 0, 0, NULL, 0 },
> -{"i", 0, INSN_CLASS_F, "O4,F3,D,s,j", 0, 0, NULL, 0 },
> -{"i", 0, INSN_CLASS_F, "O4,F3,d,S,j", 0, 0, NULL, 0 },
> -{"i", 0, INSN_CLASS_F, "O4,F3,D,S,j", 0, 0, NULL, 0 },
> -{"i", 0, INSN_CLASS_I, "O4,F3,d,o(s)", 0, 0, NULL, 0 },
> -{"i", 0, INSN_CLASS_F, "O4,F3,D,o(s)", 0, 0, NULL, 0 },
> -
> -{"s", 0, INSN_CLASS_I, "O4,F3,t,q(s)", 0, 0, NULL, 0 },
> -{"s", 0, INSN_CLASS_F, "O4,F3,T,q(s)", 0, 0, NULL, 0 },
> -
> -{"sb", 0, INSN_CLASS_I, "O4,F3,s,t,p", 0, 0, NULL, 0 },
> -{"sb", 0, INSN_CLASS_F, "O4,F3,S,t,p", 0, 0, NULL, 0 },
> -{"sb", 0, INSN_CLASS_F, "O4,F3,s,T,p", 0, 0, NULL, 0 },
> -{"sb", 0, INSN_CLASS_F, "O4,F3,S,T,p", 0, 0, NULL, 0 },
> -{"b", 0, INSN_CLASS_I, "O4,F3,s,t,p", 0, 0, NULL, 0 },
> -{"b", 0, INSN_CLASS_F, "O4,F3,S,t,p", 0, 0, NULL, 0 },
> -{"b", 0, INSN_CLASS_F, "O4,F3,s,T,p", 0, 0, NULL, 0 },
> -{"b", 0, INSN_CLASS_F, "O4,F3,S,T,p", 0, 0, NULL, 0 },
> -
> -{"u", 0, INSN_CLASS_I, "O4,d,u", 0, 0, NULL, 0 },
> -{"u", 0, INSN_CLASS_F, "O4,D,u", 0, 0, NULL, 0 },
> -
> -{"uj", 0, INSN_CLASS_I, "O4,d,a", 0, 0, NULL, 0 },
> -{"uj", 0, INSN_CLASS_F, "O4,D,a", 0, 0, NULL, 0 },
> -{"j", 0, INSN_CLASS_I, "O4,d,a", 0, 0, NULL, 0 },
> -{"j", 0, INSN_CLASS_F, "O4,D,a", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_I, "O7,F3,F7,d,s,t", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F7,D,s,t", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F7,d,S,t", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F7,D,S,t", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F7,d,s,T", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F7,D,s,T", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F7,d,S,T", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F7,D,S,T", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_I, "O7,F3,F2,d,s,t,r", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,s,t,r", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,S,t,r", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,S,t,r", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,s,T,r", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,s,T,r", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,S,T,r", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,S,T,r", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,s,t,R", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,s,t,R", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,S,t,R", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,S,t,R", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,s,T,R", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,s,T,R", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,S,T,R", 0, 0, NULL, 0 },
> +{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,S,T,R", 0, 0, NULL, 0 },
> +
> +{"r4", 0, INSN_CLASS_I, "O7,F3,F2,d,s,t,r", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,s,t,r", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,S,t,r", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,S,t,r", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,s,T,r", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,s,T,r", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,S,T,r", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,S,T,r", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,s,t,R", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,s,t,R", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,S,t,R", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,S,t,R", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,s,T,R", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,s,T,R", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,S,T,R", 0, 0, NULL, 0 },
> +{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,S,T,R", 0, 0, NULL, 0 },
> +
> +{"i", 0, INSN_CLASS_I, "O7,F3,d,s,j", 0, 0, NULL, 0 },
> +{"i", 0, INSN_CLASS_F, "O7,F3,D,s,j", 0, 0, NULL, 0 },
> +{"i", 0, INSN_CLASS_F, "O7,F3,d,S,j", 0, 0, NULL, 0 },
> +{"i", 0, INSN_CLASS_F, "O7,F3,D,S,j", 0, 0, NULL, 0 },
> +{"i", 0, INSN_CLASS_I, "O7,F3,d,o(s)", 0, 0, NULL, 0 },
> +{"i", 0, INSN_CLASS_F, "O7,F3,D,o(s)", 0, 0, NULL, 0 },
> +
> +{"s", 0, INSN_CLASS_I, "O7,F3,t,q(s)", 0, 0, NULL, 0 },
> +{"s", 0, INSN_CLASS_F, "O7,F3,T,q(s)", 0, 0, NULL, 0 },
> +
> +{"sb", 0, INSN_CLASS_I, "O7,F3,s,t,p", 0, 0, NULL, 0 },
> +{"sb", 0, INSN_CLASS_F, "O7,F3,S,t,p", 0, 0, NULL, 0 },
> +{"sb", 0, INSN_CLASS_F, "O7,F3,s,T,p", 0, 0, NULL, 0 },
> +{"sb", 0, INSN_CLASS_F, "O7,F3,S,T,p", 0, 0, NULL, 0 },
> +{"b", 0, INSN_CLASS_I, "O7,F3,s,t,p", 0, 0, NULL, 0 },
> +{"b", 0, INSN_CLASS_F, "O7,F3,S,t,p", 0, 0, NULL, 0 },
> +{"b", 0, INSN_CLASS_F, "O7,F3,s,T,p", 0, 0, NULL, 0 },
> +{"b", 0, INSN_CLASS_F, "O7,F3,S,T,p", 0, 0, NULL, 0 },
> +
> +{"u", 0, INSN_CLASS_I, "O7,d,u", 0, 0, NULL, 0 },
> +{"u", 0, INSN_CLASS_F, "O7,D,u", 0, 0, NULL, 0 },
> +
> +{"uj", 0, INSN_CLASS_I, "O7,d,a", 0, 0, NULL, 0 },
> +{"uj", 0, INSN_CLASS_F, "O7,D,a", 0, 0, NULL, 0 },
> +{"j", 0, INSN_CLASS_I, "O7,d,a", 0, 0, NULL, 0 },
> +{"j", 0, INSN_CLASS_F, "O7,D,a", 0, 0, NULL, 0 },
>
> {"cr", 0, INSN_CLASS_ZCA, "O2,CF4,d,CV", 0, 0, NULL, 0 },
> {"cr", 0, INSN_CLASS_ZCF, "O2,CF4,D,CV", 0, 0, NULL, 0 },
Reviewed-by: Jiawei <jiawei@iscas.ac.cn>
@@ -1620,7 +1620,7 @@ validate_riscv_insn (const struct riscv_
case 'O': /* Opcode for .insn directive. */
switch (*++oparg)
{
- case '4': USE_BITS (OP_MASK_OP, OP_SH_OP); break;
+ case '7': USE_BITS (OP_MASK_OP, OP_SH_OP); break;
case '2': USE_BITS (OP_MASK_OP2, OP_SH_OP2); break;
default:
goto unknown_validate_operand;
@@ -3711,7 +3711,7 @@ riscv_ip (char *str, struct riscv_cl_ins
case 'O':
switch (*++oparg)
{
- case '4':
+ case '7':
if (my_getOpcodeExpression (imm_expr, imm_reloc, asarg)
|| imm_expr->X_op != O_constant
|| imm_expr->X_add_number < 0
@@ -3587,74 +3587,74 @@ const struct riscv_opcode riscv_opcodes[
const struct riscv_opcode riscv_insn_types[] =
{
/* name, xlen, isa, operands, match, mask, match_func, pinfo. */
-{"r", 0, INSN_CLASS_I, "O4,F3,F7,d,s,t", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,s,t", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,S,t", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,S,t", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,s,T", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,s,T", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,d,S,T", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F7,D,S,T", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,r", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,r", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,r", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,r", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,r", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,r", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,r", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,r", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,t,R", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,R", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,R", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,R", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,R", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,R", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,R", 0, 0, NULL, 0 },
-{"r", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,R", 0, 0, NULL, 0 },
-
-{"r4", 0, INSN_CLASS_I, "O4,F3,F2,d,s,t,r", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,r", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,r", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,r", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,r", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,r", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,r", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,r", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,t,R", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,t,R", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,t,R", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,t,R", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,s,T,R", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,s,T,R", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,d,S,T,R", 0, 0, NULL, 0 },
-{"r4", 0, INSN_CLASS_F, "O4,F3,F2,D,S,T,R", 0, 0, NULL, 0 },
-
-{"i", 0, INSN_CLASS_I, "O4,F3,d,s,j", 0, 0, NULL, 0 },
-{"i", 0, INSN_CLASS_F, "O4,F3,D,s,j", 0, 0, NULL, 0 },
-{"i", 0, INSN_CLASS_F, "O4,F3,d,S,j", 0, 0, NULL, 0 },
-{"i", 0, INSN_CLASS_F, "O4,F3,D,S,j", 0, 0, NULL, 0 },
-{"i", 0, INSN_CLASS_I, "O4,F3,d,o(s)", 0, 0, NULL, 0 },
-{"i", 0, INSN_CLASS_F, "O4,F3,D,o(s)", 0, 0, NULL, 0 },
-
-{"s", 0, INSN_CLASS_I, "O4,F3,t,q(s)", 0, 0, NULL, 0 },
-{"s", 0, INSN_CLASS_F, "O4,F3,T,q(s)", 0, 0, NULL, 0 },
-
-{"sb", 0, INSN_CLASS_I, "O4,F3,s,t,p", 0, 0, NULL, 0 },
-{"sb", 0, INSN_CLASS_F, "O4,F3,S,t,p", 0, 0, NULL, 0 },
-{"sb", 0, INSN_CLASS_F, "O4,F3,s,T,p", 0, 0, NULL, 0 },
-{"sb", 0, INSN_CLASS_F, "O4,F3,S,T,p", 0, 0, NULL, 0 },
-{"b", 0, INSN_CLASS_I, "O4,F3,s,t,p", 0, 0, NULL, 0 },
-{"b", 0, INSN_CLASS_F, "O4,F3,S,t,p", 0, 0, NULL, 0 },
-{"b", 0, INSN_CLASS_F, "O4,F3,s,T,p", 0, 0, NULL, 0 },
-{"b", 0, INSN_CLASS_F, "O4,F3,S,T,p", 0, 0, NULL, 0 },
-
-{"u", 0, INSN_CLASS_I, "O4,d,u", 0, 0, NULL, 0 },
-{"u", 0, INSN_CLASS_F, "O4,D,u", 0, 0, NULL, 0 },
-
-{"uj", 0, INSN_CLASS_I, "O4,d,a", 0, 0, NULL, 0 },
-{"uj", 0, INSN_CLASS_F, "O4,D,a", 0, 0, NULL, 0 },
-{"j", 0, INSN_CLASS_I, "O4,d,a", 0, 0, NULL, 0 },
-{"j", 0, INSN_CLASS_F, "O4,D,a", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_I, "O7,F3,F7,d,s,t", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F7,D,s,t", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F7,d,S,t", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F7,D,S,t", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F7,d,s,T", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F7,D,s,T", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F7,d,S,T", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F7,D,S,T", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_I, "O7,F3,F2,d,s,t,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,s,t,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,S,t,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,S,t,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,s,T,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,s,T,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,S,T,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,S,T,r", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,s,t,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,s,t,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,S,t,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,S,t,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,s,T,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,s,T,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,d,S,T,R", 0, 0, NULL, 0 },
+{"r", 0, INSN_CLASS_F, "O7,F3,F2,D,S,T,R", 0, 0, NULL, 0 },
+
+{"r4", 0, INSN_CLASS_I, "O7,F3,F2,d,s,t,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,s,t,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,S,t,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,S,t,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,s,T,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,s,T,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,S,T,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,S,T,r", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,s,t,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,s,t,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,S,t,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,S,t,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,s,T,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,s,T,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,d,S,T,R", 0, 0, NULL, 0 },
+{"r4", 0, INSN_CLASS_F, "O7,F3,F2,D,S,T,R", 0, 0, NULL, 0 },
+
+{"i", 0, INSN_CLASS_I, "O7,F3,d,s,j", 0, 0, NULL, 0 },
+{"i", 0, INSN_CLASS_F, "O7,F3,D,s,j", 0, 0, NULL, 0 },
+{"i", 0, INSN_CLASS_F, "O7,F3,d,S,j", 0, 0, NULL, 0 },
+{"i", 0, INSN_CLASS_F, "O7,F3,D,S,j", 0, 0, NULL, 0 },
+{"i", 0, INSN_CLASS_I, "O7,F3,d,o(s)", 0, 0, NULL, 0 },
+{"i", 0, INSN_CLASS_F, "O7,F3,D,o(s)", 0, 0, NULL, 0 },
+
+{"s", 0, INSN_CLASS_I, "O7,F3,t,q(s)", 0, 0, NULL, 0 },
+{"s", 0, INSN_CLASS_F, "O7,F3,T,q(s)", 0, 0, NULL, 0 },
+
+{"sb", 0, INSN_CLASS_I, "O7,F3,s,t,p", 0, 0, NULL, 0 },
+{"sb", 0, INSN_CLASS_F, "O7,F3,S,t,p", 0, 0, NULL, 0 },
+{"sb", 0, INSN_CLASS_F, "O7,F3,s,T,p", 0, 0, NULL, 0 },
+{"sb", 0, INSN_CLASS_F, "O7,F3,S,T,p", 0, 0, NULL, 0 },
+{"b", 0, INSN_CLASS_I, "O7,F3,s,t,p", 0, 0, NULL, 0 },
+{"b", 0, INSN_CLASS_F, "O7,F3,S,t,p", 0, 0, NULL, 0 },
+{"b", 0, INSN_CLASS_F, "O7,F3,s,T,p", 0, 0, NULL, 0 },
+{"b", 0, INSN_CLASS_F, "O7,F3,S,T,p", 0, 0, NULL, 0 },
+
+{"u", 0, INSN_CLASS_I, "O7,d,u", 0, 0, NULL, 0 },
+{"u", 0, INSN_CLASS_F, "O7,D,u", 0, 0, NULL, 0 },
+
+{"uj", 0, INSN_CLASS_I, "O7,d,a", 0, 0, NULL, 0 },
+{"uj", 0, INSN_CLASS_F, "O7,D,a", 0, 0, NULL, 0 },
+{"j", 0, INSN_CLASS_I, "O7,d,a", 0, 0, NULL, 0 },
+{"j", 0, INSN_CLASS_F, "O7,D,a", 0, 0, NULL, 0 },
{"cr", 0, INSN_CLASS_ZCA, "O2,CF4,d,CV", 0, 0, NULL, 0 },
{"cr", 0, INSN_CLASS_ZCF, "O2,CF4,D,CV", 0, 0, NULL, 0 },