@@ -16008,12 +16008,20 @@ do_neon_ldx_stx (void)
_("bad register for post-index"));
inst.instruction |= postreg;
}
- else if (inst.operands[1].writeback)
+ else
{
- inst.instruction |= 0xd;
+ constraint (inst.operands[1].immisreg, BAD_ADDR_MODE);
+ constraint (inst.reloc.exp.X_op != O_constant
+ || inst.reloc.exp.X_add_number != 0,
+ BAD_ADDR_MODE);
+
+ if (inst.operands[1].writeback)
+ {
+ inst.instruction |= 0xd;
+ }
+ else
+ inst.instruction |= 0xf;
}
- else
- inst.instruction |= 0xf;
if (thumb_mode)
inst.instruction |= 0xf9000000;
@@ -12,12 +12,16 @@
[^:]*:14: Error: only loads support such operands -- `vst2.8 {D0\[\].*
[^:]*:15: Error: only loads support such operands -- `vst3.16 {D0\[\].*
[^:]*:16: Error: only loads support such operands -- `vst4.32 {D0\[\].*
-[^:]*:18: Error: r15 not allowed here -- `vld1.8 {d0},2f'
-[^:]*:20: Error: r15 not allowed here -- `vld1.8 {D0},R0'
-[^:]*:21: Error: r15 not allowed here -- `vld1.8 {Q1},R0'
-[^:]*:22: Error: r15 not allowed here -- `vld1.8 {D0},\[PC\]'
-[^:]*:23: Error: r15 not allowed here -- `vld1.8 {D0},\[PC,#0\]'
-[^:]*:24: Error: r15 not allowed here -- `vst1.8 {D0},R0'
-[^:]*:25: Error: r15 not allowed here -- `vst1.8 {Q1},R0'
-[^:]*:26: Error: r15 not allowed here -- `vst1.8 {D0},\[PC\]'
-[^:]*:27: Error: r15 not allowed here -- `vst1.8 {D0},\[PC,#0\]'
+[^:]*:17: Error: instruction does not accept this addressing mode -- `vld1.8 {Q0},\[R0,#8\]'
+[^:]*:18: Error: instruction does not accept this addressing mode -- `vld1.8 {Q0},\[R0,#8\]!'
+[^:]*:19: Error: instruction does not accept this addressing mode -- `vld1.8 {Q0},\[R0,R1\]'
+[^:]*:20: Error: instruction does not accept this addressing mode -- `vld1.8 {Q0},\[R0,R1\]!'
+[^:]*:22: Error: r15 not allowed here -- `vld1.8 {d0},2f'
+[^:]*:24: Error: r15 not allowed here -- `vld1.8 {D0},R0'
+[^:]*:25: Error: r15 not allowed here -- `vld1.8 {Q1},R0'
+[^:]*:26: Error: r15 not allowed here -- `vld1.8 {D0},\[PC\]'
+[^:]*:27: Error: r15 not allowed here -- `vld1.8 {D0},\[PC,#0\]'
+[^:]*:28: Error: r15 not allowed here -- `vst1.8 {D0},R0'
+[^:]*:29: Error: r15 not allowed here -- `vst1.8 {Q1},R0'
+[^:]*:30: Error: r15 not allowed here -- `vst1.8 {D0},\[PC\]'
+[^:]*:31: Error: r15 not allowed here -- `vst1.8 {D0},\[PC,#0\]'
@@ -14,6 +14,10 @@ VST1.8 {D0[]}, [R0]
VST2.8 {D0[], D2[]}, [R0]
VST3.16 {D0[], D1[], D2[]}, [R0]
VST4.32 {D0[], D1[], D2[], D3[]}, [R0]
+VLD1.8 {Q0}, [R0, #8]
+VLD1.8 {Q0}, [R0, #8]!
+VLD1.8 {Q0}, [R0, R1]
+VLD1.8 {Q0}, [R0, R1]!
.thumb
VLD1.8 {d0}, 2f
2: