summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Brown <julian@codesourcery.com>2006-04-26 16:30:48 +0000
committerJulian Brown <julian@codesourcery.com>2006-04-26 16:30:48 +0000
commit7a7263a59ebbe863401ca75e6318a192fc5e5d3e (patch)
tree371fcdf761cca6fae199c0efdf5945ac793d8af1
parentc7643fae1d755d159165d97769df1ca62f6bedf1 (diff)
downloadgdb-7a7263a59ebbe863401ca75e6318a192fc5e5d3e.tar.gz
* gas/config/tc-arm.c (parse_vfp_reg_list): Improve register bounds
checking. (do_neon_mov): Enable several VMOV variants for VFP. Add suitable architecture version checks. (insns): Allow overlapping instructions to be used in VFP mode. * gas/testsuite/gas/arm/vfp-neon-overlap.s: New test. Overlapping VFP/Neon instructions. * gas/testsuite/gas/arm/vfp-neon-overlap.d: Expected output of above. * gas/testsuite/gas/arm/vfp1xD.d: Test for fldmx/fstmx. * gas/testsuite/gas/arm/vfp1xD_t2.d: Likewise. * gas/testsuite/gas/arm/vfpv3-32drs.d: Likewise. * opcodes/arm-dis.c (coprocessor_opcodes): Don't interpret fldmx/fstmx as vldm/vstm.
-rw-r--r--ChangeLog.csl18
-rw-r--r--opcodes/arm-dis.c8
2 files changed, 22 insertions, 4 deletions
diff --git a/ChangeLog.csl b/ChangeLog.csl
index 271df1dab61..7322b23ec33 100644
--- a/ChangeLog.csl
+++ b/ChangeLog.csl
@@ -1,5 +1,23 @@
2006-04-26 Julian Brown <julian@codesourcery.com>
+ * gas/config/tc-arm.c (parse_vfp_reg_list): Improve register bounds
+ checking.
+ (do_neon_mov): Enable several VMOV variants for VFP. Add suitable
+ architecture version checks.
+ (insns): Allow overlapping instructions to be used in VFP mode.
+
+ * gas/testsuite/gas/arm/vfp-neon-overlap.s: New test. Overlapping
+ VFP/Neon instructions.
+ * gas/testsuite/gas/arm/vfp-neon-overlap.d: Expected output of above.
+ * gas/testsuite/gas/arm/vfp1xD.d: Test for fldmx/fstmx.
+ * gas/testsuite/gas/arm/vfp1xD_t2.d: Likewise.
+ * gas/testsuite/gas/arm/vfpv3-32drs.d: Likewise.
+
+ * opcodes/arm-dis.c (coprocessor_opcodes): Don't interpret fldmx/fstmx
+ as vldm/vstm.
+
+2006-04-26 Julian Brown <julian@codesourcery.com>
+
* gas/config/tc-arm.c (neon_is_quarter_float): Move, and rename to...
(is_quarter_float): Rename from above. Simplify slightly.
(parse_qfloat_immediate): Parse a "quarter precision" floating-point
diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
index 6ca93335d38..ef80304d22d 100644
--- a/opcodes/arm-dis.c
+++ b/opcodes/arm-dis.c
@@ -209,12 +209,12 @@ static const struct opcode32 coprocessor_opcodes[] =
{FPU_FPA_EXT_V2, 0x0c100200, 0x0e100f00, "lfm%c\t%12-14f, %F, %A"},
/* Register load/store */
+ {FPU_NEON_EXT_V1, 0x0d200b00, 0x0fb00f01, "vstmdb%c\t%16-19r%21'!, %B"},
+ {FPU_NEON_EXT_V1, 0x0d300b00, 0x0fb00f01, "vldmdb%c\t%16-19r%21'!, %B"},
+ {FPU_NEON_EXT_V1, 0x0c800b00, 0x0f900f01, "vstmia%c\t%16-19r%21'!, %B"},
+ {FPU_NEON_EXT_V1, 0x0c900b00, 0x0f900f01, "vldmia%c\t%16-19r%21'!, %B"},
{FPU_NEON_EXT_V1, 0x0d000b00, 0x0f300f00, "vstr%c\t%12-15,22D, %C"},
{FPU_NEON_EXT_V1, 0x0d100b00, 0x0f300f00, "vldr%c\t%12-15,22D, %C"},
- {FPU_NEON_EXT_V1, 0x0c800b00, 0x0f900f00, "vstmia%c\t%16-19r%21'!, %B"},
- {FPU_NEON_EXT_V1, 0x0c900b00, 0x0f900f00, "vldmia%c\t%16-19r%21'!, %B"},
- {FPU_NEON_EXT_V1, 0x0d000b00, 0x0f900f00, "vstmdb%c\t%16-19r%21'!, %B"},
- {FPU_NEON_EXT_V1, 0x0d100b00, 0x0f900f00, "vldmdb%c\t%16-19r%21'!, %B"},
/* Data transfer between ARM and NEON registers */
{FPU_NEON_EXT_V1, 0x0e800b10, 0x0ff00f70, "vdup%c.32\t%16-19,7D, %12-15r"},