diff options
author | Julian Brown <julian@codesourcery.com> | 2006-04-26 16:30:48 +0000 |
---|---|---|
committer | Julian Brown <julian@codesourcery.com> | 2006-04-26 16:30:48 +0000 |
commit | 7a7263a59ebbe863401ca75e6318a192fc5e5d3e (patch) | |
tree | 371fcdf761cca6fae199c0efdf5945ac793d8af1 | |
parent | c7643fae1d755d159165d97769df1ca62f6bedf1 (diff) | |
download | gdb-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.csl | 18 | ||||
-rw-r--r-- | opcodes/arm-dis.c | 8 |
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"}, |