mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-28 23:39:35 +08:00
* config/tc-arm.c (opcode_lookup): Allow Neon type suffixes to be
recognized in non-unified syntax mode.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2006-08-16 Julian Brown <julian@codesourcery.com>
|
||||||
|
|
||||||
|
* config/tc-arm.c (opcode_lookup): Allow Neon type suffixes to be
|
||||||
|
recognized in non-unified syntax mode.
|
||||||
|
|
||||||
2006-08-15 Thiemo Seufer <ths@mips.com>
|
2006-08-15 Thiemo Seufer <ths@mips.com>
|
||||||
Nigel Stephens <nigel@mips.com>
|
Nigel Stephens <nigel@mips.com>
|
||||||
David Ung <davidu@mips.com>
|
David Ung <davidu@mips.com>
|
||||||
|
@ -13582,11 +13582,14 @@ opcode_lookup (char **str)
|
|||||||
const struct asm_opcode *opcode;
|
const struct asm_opcode *opcode;
|
||||||
const struct asm_cond *cond;
|
const struct asm_cond *cond;
|
||||||
char save[2];
|
char save[2];
|
||||||
|
bfd_boolean neon_supported;
|
||||||
|
|
||||||
|
neon_supported = ARM_CPU_HAS_FEATURE (cpu_variant, fpu_neon_ext_v1);
|
||||||
|
|
||||||
/* Scan up to the end of the mnemonic, which must end in white space,
|
/* Scan up to the end of the mnemonic, which must end in white space,
|
||||||
'.' (in unified mode only), or end of string. */
|
'.' (in unified mode, or for Neon instructions), or end of string. */
|
||||||
for (base = end = *str; *end != '\0'; end++)
|
for (base = end = *str; *end != '\0'; end++)
|
||||||
if (*end == ' ' || (unified_syntax && *end == '.'))
|
if (*end == ' ' || ((unified_syntax || neon_supported) && *end == '.'))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (end == base)
|
if (end == base)
|
||||||
@ -13597,9 +13600,11 @@ opcode_lookup (char **str)
|
|||||||
{
|
{
|
||||||
int offset = 2;
|
int offset = 2;
|
||||||
|
|
||||||
if (end[1] == 'w')
|
/* The .w and .n suffixes are only valid if the unified syntax is in
|
||||||
|
use. */
|
||||||
|
if (unified_syntax && end[1] == 'w')
|
||||||
inst.size_req = 4;
|
inst.size_req = 4;
|
||||||
else if (end[1] == 'n')
|
else if (unified_syntax && end[1] == 'n')
|
||||||
inst.size_req = 2;
|
inst.size_req = 2;
|
||||||
else
|
else
|
||||||
offset = 0;
|
offset = 0;
|
||||||
@ -13610,7 +13615,8 @@ opcode_lookup (char **str)
|
|||||||
|
|
||||||
if (end[offset] == '.')
|
if (end[offset] == '.')
|
||||||
{
|
{
|
||||||
/* See if we have a Neon type suffix. */
|
/* See if we have a Neon type suffix (possible in either unified or
|
||||||
|
non-unified ARM syntax mode). */
|
||||||
if (parse_neon_type (&inst.vectype, str) == FAIL)
|
if (parse_neon_type (&inst.vectype, str) == FAIL)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user