diff options
Diffstat (limited to 'opcodes/aarch64-asm.c')
-rw-r--r-- | opcodes/aarch64-asm.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c index f20bdf6..00ac4ae 100644 --- a/opcodes/aarch64-asm.c +++ b/opcodes/aarch64-asm.c @@ -2033,7 +2033,8 @@ do_special_encoding (struct aarch64_inst *inst) { idx = select_operand_for_sf_field_coding (inst->opcode); value = (inst->operands[idx].qualifier == AARCH64_OPND_QLF_X - || inst->operands[idx].qualifier == AARCH64_OPND_QLF_SP) + || inst->operands[idx].qualifier == AARCH64_OPND_QLF_SP + || inst->operands[idx].qualifier == AARCH64_OPND_QLF_S_D) ? 1 : 0; insert_field (FLD_sf, &inst->value, value, 0); if (inst->opcode->flags & F_N) @@ -2063,6 +2064,13 @@ do_special_encoding (struct aarch64_inst *inst) insert_field (FLD_rcpc3_size, &inst->value, value, 0); } + if (inst->opcode->flags & F_LSFE_SZ) + { + value = aarch64_get_qualifier_standard_value (inst->operands[0].qualifier); + insert_field (FLD_ldst_size, &inst->value, value, 0); + return; + } + if (inst->opcode->flags & F_SIZEQ) encode_sizeq (inst); if (inst->opcode->flags & F_FPTYPE) |