AVR C Runtime Library - Bugs: bug #35240, Incomplete Description of Calling...
You are not allowed to post comments on this tracker with your current authentication level.
bug #35240: Incomplete Description of Calling Convention
Submitter: | Don Kinzer <dkinzer> | ||
Submitted: | Wed 04 Jan 2012 11:42:04 PM UTC | ||
Category: | Documentation | Severity: | 3 - Normal |
Priority: | 9 - Immediate | Item Group: | Documentation |
Status: | None | Assigned to: | None |
Percent Complete: | 0% | Open/Closed: | Open |
Release: | 1.6.7 | Fixed Release: | None |
Sun 04 Nov 2012 07:49:44 PM UTC, comment #1: |
Georg-Johann Lay <gjlayde> |
Wed 04 Jan 2012 11:42:04 PM UTC, original submission:
The avr-libc documentation section "11.14 What registers are used by the C compiler?" is incomplete in that it does not describe the case where a function returns a large (>64 bit) data item. As far as I can tell, in this (perhaps unusual) case r25:24 contains a pointer to a buffer in which to return the data and all parameters (if any) are shifted by two registers (i.e. a first uint16_t parameter is in r23:22, etc.). Large pointer support may change the register use in this case.
|
Don Kinzer <dkinzer> |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
Follows 1 latest change.
Date | Changed by | Updated Field | Previous Value | => | Replaced by |
---|---|---|---|---|---|
2012-11-16 | arcanum | Priority | 5 - Normal | 9 - Immediate |
Powered by Savane 3.13-4448.
Corresponding source code
For a complete description of the calling conversion, see the avr-gcc AVI in the GCC Wiki:
http://gcc.gnu.org/wiki/avr-gcc#Calling_Convention