bugAVR C Runtime Library - Bugs: bug #21623, boot.h: Use the "z"...

 
 

bug #21623: boot.h: Use the "z" register constraint

Submitted by:  Shaun Jackman <sjackman>
Submitted on:  Tue 20 Nov 2007 11:06:14 PM UTC  
 
Category: HeaderSeverity: 3 - Normal
Priority: 9 - ImmediateItem Group: Header files
Status: FixedPercent Complete: 100%
Assigned to: Eric Weddington <arcanum>Open/Closed: Closed
Release: AnyFixed Release: 1.7.0

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Wed 19 Mar 2008 10:53:33 PM UTC, comment #4:

Like bug #21805, this is again deferred until 1.6.3.

Eric Weddington <arcanum>
Project AdministratorIn charge of this item.
Tue 18 Dec 2007 10:48:26 PM UTC, comment #3:

Deferred until 1.6.1.

Eric Weddington <arcanum>
Project AdministratorIn charge of this item.
Wed 21 Nov 2007 03:49:53 AM UTC, comment #2:

Definitely remove r30 and r31 from the clobber. The spm instruction doesn't clobber the Z register, since it has the same value going out as coming in. If it did modify the Z register, it should be listed with a read/write constraint, as in "+z" or possibly "+&z" if it's an early clobber.

Do you have a small test case for the EEPROM bug you mentioned? I've had no problem, and I'm using both gcc and avr-libc from head. I use both the EEPROM API and my flash patch with no trouble. I'm certainly not against more testing though.

Shaun Jackman <sjackman>
Wed 21 Nov 2007 03:19:38 AM UTC, comment #1:

I have some concerns:
- Even though you replace the constraint with the Z constraint, you are removing r30, r31 from the clobbered list. Should this be done?
- Right now there is a major AVR GCC bug with the EEPROM API because it uses the Z register instead of a general purpose reg and the compiler can't find a register to use.

I would prefer if this change got a lot of testing before it gets committed.

Eric Weddington <arcanum>
Project AdministratorIn charge of this item.
Tue 20 Nov 2007 11:06:14 PM UTC, original submission:

2007-11-20 Shaun Jackman <sjackman@gmail.com>

  • include/avr/boot.h (__boot_page_fill_normal,

__boot_page_erase_normal, __boot_page_write_normal): Use the "z"
register constraint.

This same method could also be applied to the xxx_alternate and xxx_extended functions.

Cheers,
Shaun

Shaun Jackman <sjackman>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

Attached Files
file #14446:  avr-libc-boot.diff added by sjackman (3KiB - text/plain)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by arcanum (Posted a comment)
  • -unavailable- added by sjackman (Submitted the item)
  •  

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 9 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Tue 30 Sep 2008 02:01:25 PM UTCarcanumStatusNone=>Fixed
      Percent Complete30%=>100%
      Open/ClosedOpen=>Closed
      Fixed ReleaseNone=>1.7.0
    Wed 24 Sep 2008 03:18:13 PM UTCarcanumPercent Complete0%=>30%
    Mon 11 Aug 2008 03:01:12 AM UTCarcanumPriority5 - Normal=>9 - Immediate
      ReleaseNone=>Any
    Wed 21 Nov 2007 03:19:38 AM UTCarcanumAssigned toNone=>arcanum
    Tue 20 Nov 2007 11:06:14 PM UTCsjackmanAttached File-=>Added avr-libc-boot.diff, #14446

    Back to the top


    Powered by Savane 3.1-cleanup1