Lines 147-153
aarch64_ins_reglane (const aarch64_operand *self, const aarch64_opnd_info *info,
Link Here
|
147 |
insert_fields (code, reglane_index, 0, 2, FLD_L, FLD_H); |
147 |
insert_fields (code, reglane_index, 0, 2, FLD_L, FLD_H); |
148 |
break; |
148 |
break; |
149 |
default: |
149 |
default: |
150 |
assert (0); |
150 |
abort (); |
151 |
} |
151 |
} |
152 |
} |
152 |
} |
153 |
else if (inst->opcode->iclass == cryptosm3) |
153 |
else if (inst->opcode->iclass == cryptosm3) |
Lines 185-191
aarch64_ins_reglane (const aarch64_operand *self, const aarch64_opnd_info *info,
Link Here
|
185 |
insert_field (FLD_H, code, reglane_index, 0); |
185 |
insert_field (FLD_H, code, reglane_index, 0); |
186 |
break; |
186 |
break; |
187 |
default: |
187 |
default: |
188 |
assert (0); |
188 |
abort (); |
189 |
} |
189 |
} |
190 |
} |
190 |
} |
191 |
return true; |
191 |
return true; |
Lines 229-235
aarch64_ins_ldst_reglist (const aarch64_operand *self ATTRIBUTE_UNUSED,
Link Here
|
229 |
case 2: value = 0xa; break; |
229 |
case 2: value = 0xa; break; |
230 |
case 3: value = 0x6; break; |
230 |
case 3: value = 0x6; break; |
231 |
case 4: value = 0x2; break; |
231 |
case 4: value = 0x2; break; |
232 |
default: assert (0); |
232 |
default: abort (); |
233 |
} |
233 |
} |
234 |
break; |
234 |
break; |
235 |
case 2: |
235 |
case 2: |
Lines 242-248
aarch64_ins_ldst_reglist (const aarch64_operand *self ATTRIBUTE_UNUSED,
Link Here
|
242 |
value = 0x0; |
242 |
value = 0x0; |
243 |
break; |
243 |
break; |
244 |
default: |
244 |
default: |
245 |
assert (0); |
245 |
abort (); |
246 |
} |
246 |
} |
247 |
insert_field (FLD_opcode, code, value, 0); |
247 |
insert_field (FLD_opcode, code, value, 0); |
248 |
|
248 |
|
Lines 315-321
aarch64_ins_ldst_elemlist (const aarch64_operand *self ATTRIBUTE_UNUSED,
Link Here
|
315 |
opcodeh2 = 0x2; |
315 |
opcodeh2 = 0x2; |
316 |
break; |
316 |
break; |
317 |
default: |
317 |
default: |
318 |
assert (0); |
318 |
abort (); |
319 |
} |
319 |
} |
320 |
insert_fields (code, QSsize, 0, 3, FLD_vldst_size, FLD_S, FLD_Q); |
320 |
insert_fields (code, QSsize, 0, 3, FLD_vldst_size, FLD_S, FLD_Q); |
321 |
gen_sub_field (FLD_asisdlso_opcode, 1, 2, &field); |
321 |
gen_sub_field (FLD_asisdlso_opcode, 1, 2, &field); |
Lines 605-611
aarch64_ins_ft (const aarch64_operand *self, const aarch64_opnd_info *info,
Link Here
|
605 |
case AARCH64_OPND_QLF_S_S: value = 0; break; |
605 |
case AARCH64_OPND_QLF_S_S: value = 0; break; |
606 |
case AARCH64_OPND_QLF_S_D: value = 1; break; |
606 |
case AARCH64_OPND_QLF_S_D: value = 1; break; |
607 |
case AARCH64_OPND_QLF_S_Q: value = 2; break; |
607 |
case AARCH64_OPND_QLF_S_Q: value = 2; break; |
608 |
default: assert (0); |
608 |
default: abort (); |
609 |
} |
609 |
} |
610 |
insert_field (FLD_ldst_size, code, value, 0); |
610 |
insert_field (FLD_ldst_size, code, value, 0); |
611 |
} |
611 |
} |
Lines 1372-1378
aarch64_ins_sme_za_hv_tiles (const aarch64_operand *self,
Link Here
|
1372 |
fld_zan_imm = regno; |
1372 |
fld_zan_imm = regno; |
1373 |
break; |
1373 |
break; |
1374 |
default: |
1374 |
default: |
1375 |
assert (0); |
1375 |
abort (); |
1376 |
} |
1376 |
} |
1377 |
|
1377 |
|
1378 |
insert_field (self->fields[0], code, fld_size, 0); |
1378 |
insert_field (self->fields[0], code, fld_size, 0); |
Lines 1446-1452
aarch64_ins_sme_sm_za (const aarch64_operand *self,
Link Here
|
1446 |
else if (info->reg.regno == 'z') |
1446 |
else if (info->reg.regno == 'z') |
1447 |
fld_crm = 0x04; /* SVCRZA. */ |
1447 |
fld_crm = 0x04; /* SVCRZA. */ |
1448 |
else |
1448 |
else |
1449 |
assert (0); |
1449 |
abort (); |
1450 |
|
1450 |
|
1451 |
insert_field (self->fields[0], code, fld_crm, 0); |
1451 |
insert_field (self->fields[0], code, fld_crm, 0); |
1452 |
return true; |
1452 |
return true; |
Lines 1510-1516
aarch64_ins_sme_pred_reg_with_index (const aarch64_operand *self,
Link Here
|
1510 |
fld_tshl = 0x0; |
1510 |
fld_tshl = 0x0; |
1511 |
break; |
1511 |
break; |
1512 |
default: |
1512 |
default: |
1513 |
assert (0); |
1513 |
abort (); |
1514 |
} |
1514 |
} |
1515 |
|
1515 |
|
1516 |
insert_field (self->fields[2], code, fld_i1, 0); |
1516 |
insert_field (self->fields[2], code, fld_i1, 0); |
Lines 1544-1550
encode_asimd_fcvt (aarch64_inst *inst)
Link Here
|
1544 |
qualifier = inst->operands[0].qualifier; |
1544 |
qualifier = inst->operands[0].qualifier; |
1545 |
break; |
1545 |
break; |
1546 |
default: |
1546 |
default: |
1547 |
assert (0); |
1547 |
abort (); |
1548 |
} |
1548 |
} |
1549 |
assert (qualifier == AARCH64_OPND_QLF_V_4S |
1549 |
assert (qualifier == AARCH64_OPND_QLF_V_4S |
1550 |
|| qualifier == AARCH64_OPND_QLF_V_2D); |
1550 |
|| qualifier == AARCH64_OPND_QLF_V_2D); |
Lines 1749-1755
do_special_encoding (struct aarch64_inst *inst)
Link Here
|
1749 |
case AARCH64_OPND_QLF_S_S: value = 0; break; |
1749 |
case AARCH64_OPND_QLF_S_S: value = 0; break; |
1750 |
case AARCH64_OPND_QLF_S_D: value = 1; break; |
1750 |
case AARCH64_OPND_QLF_S_D: value = 1; break; |
1751 |
case AARCH64_OPND_QLF_S_H: value = 3; break; |
1751 |
case AARCH64_OPND_QLF_S_H: value = 3; break; |
1752 |
default: assert (0); |
1752 |
default: abort (); |
1753 |
} |
1753 |
} |
1754 |
insert_field (FLD_type, &inst->value, value, 0); |
1754 |
insert_field (FLD_type, &inst->value, value, 0); |
1755 |
} |
1755 |
} |
Lines 2098-2110
convert_mov_to_movewide (aarch64_inst *inst)
Link Here
|
2098 |
value = ~inst->operands[1].imm.value; |
2098 |
value = ~inst->operands[1].imm.value; |
2099 |
break; |
2099 |
break; |
2100 |
default: |
2100 |
default: |
2101 |
assert (0); |
2101 |
abort (); |
2102 |
} |
2102 |
} |
2103 |
inst->operands[1].type = AARCH64_OPND_HALF; |
2103 |
inst->operands[1].type = AARCH64_OPND_HALF; |
2104 |
is32 = inst->operands[0].qualifier == AARCH64_OPND_QLF_W; |
2104 |
is32 = inst->operands[0].qualifier == AARCH64_OPND_QLF_W; |
2105 |
if (! aarch64_wide_constant_p (value, is32, &shift_amount)) |
2105 |
if (! aarch64_wide_constant_p (value, is32, &shift_amount)) |
2106 |
/* The constraint check should have guaranteed this wouldn't happen. */ |
2106 |
/* The constraint check should have guaranteed this wouldn't happen. */ |
2107 |
assert (0); |
2107 |
abort (); |
2108 |
value >>= shift_amount; |
2108 |
value >>= shift_amount; |
2109 |
value &= 0xffff; |
2109 |
value &= 0xffff; |
2110 |
inst->operands[1].imm.value = value; |
2110 |
inst->operands[1].imm.value = value; |