+2016-01-20 Matthew Wahab <matthew.wahab@arm.com>
+
+ * testsuite/gas/aarch64/armv8_2-a-illegal.d: New.
+ * testsuite/gas/aarch64/armv8_2-a-illegal.l: New.
+ * testsuite/gas/aarch64/armv8_2-a-illegal.s: New.
+
2016-01-20 Mickael Guene <mickael.guene@st.com>
Terry Guo <terry.guo@arm.com>
--- /dev/null
+#as: -march=armv8.2-a
+#source: armv8_2-a-illegal.s
+#error-output: armv8_2-a-illegal.l
--- /dev/null
+[^:]+: Assembler messages:
+[^:]+:[0-9]+: Error: immediate value out of range 0 to 1 at operand 1 -- `msr uao,#2'
+[^:]+:[0-9]+: Error: immediate value out of range 0 to 1 at operand 1 -- `msr uao,#3'
+[^:]+:[0-9]+: Error: immediate value out of range 0 to 1 at operand 1 -- `msr uao,#4'
+[^:]+:[0-9]+: Error: immediate value out of range 0 to 1 at operand 1 -- `msr uao,#5'
+[^:]+:[0-9]+: Error: immediate value out of range 0 to 1 at operand 1 -- `msr uao,#8'
+[^:]+:[0-9]+: Error: immediate value out of range 0 to 1 at operand 1 -- `msr uao,#15'
+[^:]+:[0-9]+: Error: immediate value out of range 0 to 1 at operand 1 -- `msr uao,#19'
+[^:]+:[0-9]+: Error: immediate value out of range 0 to 1 at operand 1 -- `msr uao,#31'
--- /dev/null
+
+ /* MSR UAO, #imm4. */
+ .irp N,0, 1,2,3,4,5,8,15,19,31
+ msr uao, #\N
+ .endr
+2016-01-20 Matthew Wahab <matthew.wahab@arm.com>
+
+ * aarch64-opc.c (operand_general_constraint_met_p): Check validity
+ of MSR UAO immediate operand.
+
2016-01-18 Maciej W. Rozycki <macro@imgtec.com>
* mips-dis.c (print_insn_micromips): Remove 48-bit microMIPS
{
case AARCH64_OPND_PSTATEFIELD:
assert (idx == 0 && opnds[1].type == AARCH64_OPND_UIMM4);
- /* MSR PAN, #uimm4
+ /* MSR UAO, #uimm4
+ MSR PAN, #uimm4
The immediate must be #0 or #1. */
- if (opnd->pstatefield == 0x04 /* PAN. */
+ if ((opnd->pstatefield == 0x03 /* UAO. */
+ || opnd->pstatefield == 0x04) /* PAN. */
&& opnds[1].imm.value > 1)
{
set_imm_out_of_range_error (mismatch_detail, idx, 0, 1);