Ensure ARM VPUSH and VPOP instructions do not affect more than 16 registers.
[deliverable/binutils-gdb.git] / gas / config / tc-arm.c
index 73d0531639a9f8b277729122999122a423cc7549..a8d9556c05b4f24f28cc266a3d40c6ab70ddc6ab 100644 (file)
@@ -14390,6 +14390,11 @@ static void
 do_vfp_nsyn_push (void)
 {
   nsyn_insert_sp ();
+
+  constraint (inst.operands[1].imm < 1 || inst.operands[1].imm > 16,
+             _("register list must contain at least 1 and at most 16 "
+               "registers"));
+
   if (inst.operands[1].issingle)
     do_vfp_nsyn_opcode ("fstmdbs");
   else
@@ -14400,6 +14405,11 @@ static void
 do_vfp_nsyn_pop (void)
 {
   nsyn_insert_sp ();
+
+  constraint (inst.operands[1].imm < 1 || inst.operands[1].imm > 16,
+             _("register list must contain at least 1 and at most 16 "
+               "registers"));
+
   if (inst.operands[1].issingle)
     do_vfp_nsyn_opcode ("fldmias");
   else
This page took 0.044898 seconds and 4 git commands to generate.