diff options
author | Alessandro Marzocchi <alessandro.marzocchi@gmail.com> | 2015-06-17 12:56:17 +0100 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2015-06-17 12:56:17 +0100 |
commit | ba592044bc04610d6fa14d0a95931bac303ace37 (patch) | |
tree | e27d11dea0199e1971007a285fdae37e35289f33 /gas/write.c | |
parent | fc2484855563d0cd3e43b9f2d937481b5f5e4a7b (diff) | |
download | gdb-ba592044bc04610d6fa14d0a95931bac303ace37.zip gdb-ba592044bc04610d6fa14d0a95931bac303ace37.tar.gz gdb-ba592044bc04610d6fa14d0a95931bac303ace37.tar.bz2 |
Add support for converting VLDR <reg>,=<constant> to a VMOV instruction when appropriate.
PR gas/18500
gas * config/tc-arm.c (is_double_a_single): New function.
(double_to_single): New function.
(move_or_literal_pool): Add support for converting VLDR to VMOV.
tests * gas/arm/vfpv2-ldr_immediate.s: New test case.
* gas/arm/vfpv2-ldr_immediate.d: Expected disassembly.
* gas/arm/vfpv3-ldr_immediate.s: New test case.
* gas/arm/vfpv3-ldr_immediate.d: Expected disassembly.
* gas/arm/vfpv3xd-ldr_immediate.s: New test case.
* gas/arm/vfpv3xd-ldr_immediate.d: Expected disassembly.
Diffstat (limited to 'gas/write.c')
-rw-r--r-- | gas/write.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gas/write.c b/gas/write.c index 894b271..a76813d 100644 --- a/gas/write.c +++ b/gas/write.c @@ -1585,7 +1585,9 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED, f->fr_literal, (file_ptr) offset, (bfd_size_type) f->fr_fix); if (!x) - as_fatal (_("can't write %s: %s"), stdoutput->filename, + as_fatal (_("can't write %ld bytes to section %s of %s because: '%s'"), + (long) f->fr_fix, sec->name, + stdoutput->filename, bfd_errmsg (bfd_get_error ())); offset += f->fr_fix; } @@ -1606,7 +1608,9 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED, (file_ptr) offset, (bfd_size_type) fill_size); if (!x) - as_fatal (_("can't write %s: %s"), stdoutput->filename, + as_fatal (_("can't fill %ld bytes in section %s of %s because '%s'"), + (long) fill_size, sec->name, + stdoutput->filename, bfd_errmsg (bfd_get_error ())); offset += fill_size; } @@ -1636,7 +1640,8 @@ write_contents (bfd *abfd ATTRIBUTE_UNUSED, (stdoutput, sec, buf, (file_ptr) offset, (bfd_size_type) n_per_buf * fill_size); if (!x) - as_fatal (_("cannot write to output file '%s': %s"), + as_fatal (_("cannot fill %ld bytes in section %s of %s because: '%s'"), + (long)(n_per_buf * fill_size), sec->name, stdoutput->filename, bfd_errmsg (bfd_get_error ())); offset += n_per_buf * fill_size; |