This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 64-bit support for srec


On Feb 1, 2012, at 7:22 PM, Alan Modra wrote:
> On Wed, Feb 01, 2012 at 03:55:11PM -0800, Mike Stump wrote:
>> --- 897,907 ----
>>        else if ((section->lma + offset + bytes_to_do - 1) <= 0xffffff
>>  	       && tdata->type <= 2)
>>  	tdata->type = 2;
>> !       else if ((section->lma + offset + bytes_to_do - 1) <= 0xffffffff
>> ! 	       && tdata->type <= 2)
> 
> Probably ought to be <= 3 here.  Presumably the idea of the existing
> code is that once you've used S3 records, don't drop back to S2.

Agreed:

Index: bfd/srec.c
===================================================================
--- bfd/srec.c  (revision 2081)
+++ bfd/srec.c  (working copy)
@@ -898,7 +898,7 @@ srec_set_section_contents (bfd *abfd,
               && tdata->type <= 2)
        tdata->type = 2;
       else if ((section->lma + offset + bytes_to_do - 1) <= 0xffffffff
-              && tdata->type <= 2)
+              && tdata->type <= 3)
        tdata->type = 3;
       else
        tdata->type = 4;


>> +     case 4:
>> +       TOHEX (dst, (address >> 56), check_sum);
>> +       dst += 2;
> 
> What if "address" is only a 32-bit type?

The optimizer removes the 64-bit code, since it can never be true.

> I think you need to conditionalize all your new code on BFD64.

I think it is safe to rely upon the optimizer to remove it.  I don't see any advantages to peppering the code with #ifdef.

> And it would be sad if we can't read back our own output..

It would be even sadder if we silently dropped address bits and couldn't handle 64-bit addresses...  oh, wait, we already do that.  I'll see about doing up a reader, though, I can't say if or when I will get time to do it.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]