aboutsummaryrefslogtreecommitdiff
path: root/gas/write.c
diff options
context:
space:
mode:
authorAlessandro Marzocchi <alessandro.marzocchi@gmail.com>2015-06-17 12:56:17 +0100
committerNick Clifton <nickc@redhat.com>2015-06-17 12:56:17 +0100
commitba592044bc04610d6fa14d0a95931bac303ace37 (patch)
treee27d11dea0199e1971007a285fdae37e35289f33 /gas/write.c
parentfc2484855563d0cd3e43b9f2d937481b5f5e4a7b (diff)
downloadgdb-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.c11
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;