mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-18 12:24:38 +08:00
* gas/config/tc-arm.c (ARM_IT_MAX_OPERANDS): New define.
(arm_it): Use ARM_IT_MAX_OPERANDS. (neon_select_shape): Ensure we have matched all operands. * gas/testsuite/gas/arm/neon-suffix-bad.l: Add testcase. * gas/testsuite/gas/arm/neon-suffix-bad.s: Likewise.
This commit is contained in:
parent
1b11b49fe4
commit
ad6cec4372
@ -1,3 +1,9 @@
|
||||
2011-11-07 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||||
|
||||
* config/tc-arm.c (ARM_IT_MAX_OPERANDS): New define.
|
||||
(arm_it): Use ARM_IT_MAX_OPERANDS.
|
||||
(neon_select_shape): Ensure we have matched all operands.
|
||||
|
||||
2011-11-07 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||||
|
||||
* config/tc-arm.c (parse_neon_mov): Update which_operand
|
||||
|
@ -351,6 +351,9 @@ enum it_instruction_type
|
||||
IT_INSN /* The IT insn has been parsed. */
|
||||
};
|
||||
|
||||
/* The maximum number of operands we need. */
|
||||
#define ARM_IT_MAX_OPERANDS 6
|
||||
|
||||
struct arm_it
|
||||
{
|
||||
const char * error;
|
||||
@ -402,7 +405,7 @@ struct arm_it
|
||||
unsigned negative : 1; /* Index register was negated. */
|
||||
unsigned shifted : 1; /* Shift applied to operation. */
|
||||
unsigned shift_kind : 3; /* Shift operation (enum shift_kind). */
|
||||
} operands[6];
|
||||
} operands[ARM_IT_MAX_OPERANDS];
|
||||
};
|
||||
|
||||
static struct arm_it inst;
|
||||
@ -12415,7 +12418,9 @@ neon_select_shape (enum neon_shape shape, ...)
|
||||
if (!matches)
|
||||
break;
|
||||
}
|
||||
if (matches)
|
||||
if (matches && (j >= ARM_IT_MAX_OPERANDS || !inst.operands[j].present))
|
||||
/* We've matched all the entries in the shape table, and we don't
|
||||
have any left over operands which have not been matched. */
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2011-11-07 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
|
||||
|
||||
* gas/arm/neon-suffix-bad.l: Add testcase.
|
||||
* gas/arm/neon-suffix-bad.s: Likewise.
|
||||
|
||||
2011-12-05 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* gas/arm/attr-any-armv4t.d: New test.
|
||||
|
@ -2,6 +2,8 @@
|
||||
[^:]*:3: Error: invalid neon suffix for non neon instruction
|
||||
[^:]*:4: Error: invalid neon suffix for non neon instruction
|
||||
[^:]*:5: Error: invalid neon suffix for non neon instruction
|
||||
[^:]*:8: Error: invalid neon suffix for non neon instruction
|
||||
[^:]*:6: Error: invalid instruction shape -- `vcvt.f64.s32 d0,s0,#11'
|
||||
[^:]*:9: Error: invalid neon suffix for non neon instruction
|
||||
[^:]*:10: Error: invalid neon suffix for non neon instruction
|
||||
[^:]*:11: Error: invalid neon suffix for non neon instruction
|
||||
[^:]*:12: Error: invalid instruction shape -- `vcvt.f64.s32 d0,s0,#11'
|
||||
|
@ -3,10 +3,11 @@
|
||||
add.f32 r0, r0, r0
|
||||
faddd.f32 d0, d0, d0
|
||||
faddd.f64 d0, d0, d0
|
||||
vcvt.f64.s32 d0, s0, #11
|
||||
|
||||
.thumb
|
||||
add.f32 r0, r0, r0
|
||||
faddd.f32 d0, d0, d0
|
||||
faddd.f64 d0, d0, d0
|
||||
|
||||
vcvt.f64.s32 d0, s0, #11
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user