Commit bc42452f authored by Yufeng Zhang's avatar Yufeng Zhang

opcodes/

	* aarch64-opc.c (set_syntax_error): New function.
	(operand_general_constraint_met_p): Replace set_other_error
	with set_syntax_error.

gas/testsuite/

	* gas/aarch64/diagnostic.s: Add tests of ldp/stp.
	* gas/aarch64/diagnostic.l: Update.
parent 05c4e689
2013-11-05 Yufeng Zhang <yufeng.zhang@arm.com>
* gas/aarch64/diagnostic.s: Add tests of ldp/stp.
* gas/aarch64/diagnostic.l: Update.
2013-11-05 Will Newton <will.newton@linaro.org>
* gas/aarch64/advsimd-mov-bad.d: New file.
......
......@@ -87,3 +87,9 @@
[^:]*:89: Error: shift amount expected to be 0 at operand 2 -- `movi v1.8b,97,lsl#8'
[^:]*:90: Error: unknown or missing system register name at operand 1 -- `msr dummy,x1'
[^:]*:91: Error: invalid floating-point constant at operand 2 -- `fmov s0,0x42000000'
[^:]*:92: Error: immediate value should be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2,#4\]'
[^:]*:93: Error: immediate value should be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2,#4\]!'
[^:]*:94: Error: immediate value should be a multiple of 8 at operand 3 -- `ldp x0,x1,\[x2\],#4'
[^:]*:95: Error: immediate value should be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2,#3\]'
[^:]*:96: Error: immediate value should be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2,#2\]!'
[^:]*:97: Error: immediate value should be a multiple of 4 at operand 3 -- `stp w0,w1,\[x2\],#1'
......@@ -89,3 +89,9 @@
movi v1.8b, 97, lsl #8
msr dummy, x1
fmov s0, 0x42000000
ldp x0, x1, [x2, #4]
ldp x0, x1, [x2, #4]!
ldp x0, x1, [x2], #4
stp w0, w1, [x2, #3]
stp w0, w1, [x2, #2]!
stp w0, w1, [x2], #1
2013-11-05 Yufeng Zhang <yufeng.zhang@arm.com>
* aarch64-opc.c (set_syntax_error): New function.
(operand_general_constraint_met_p): Replace set_other_error
with set_syntax_error.
2013-10-12 Jan Beulich <jbeulich@suse.com>
* i386-dis.c (intel_operand_size): Move v_bnd_mode alongside the
......
......@@ -1121,6 +1121,15 @@ set_error (aarch64_operand_error *mismatch_detail,
mismatch_detail->error = error;
}
static inline void
set_syntax_error (aarch64_operand_error *mismatch_detail, int idx,
const char* error)
{
if (mismatch_detail == NULL)
return;
set_error (mismatch_detail, AARCH64_OPDE_SYNTAX_ERROR, idx, error);
}
static inline void
set_out_of_range_error (aarch64_operand_error *mismatch_detail,
int idx, int lower_bound, int upper_bound,
......@@ -1288,8 +1297,8 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
case ldst_unpriv:
if (opnd->addr.writeback == 1)
{
set_other_error (mismatch_detail, idx,
_("unexpected address writeback"));
set_syntax_error (mismatch_detail, idx,
_("unexpected address writeback"));
return 0;
}
break;
......@@ -1299,8 +1308,8 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
case asisdlsop:
if (opnd->addr.writeback == 0)
{
set_other_error (mismatch_detail, idx,
_("address writeback expected"));
set_syntax_error (mismatch_detail, idx,
_("address writeback expected"));
return 0;
}
break;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment