URL: <http://savannah.nongnu.org/bugs/?35240>
Summary: Incomplete Description of Calling Convention Project: AVR C Runtime Library Submitted by: dkinzer Submitted on: Wed 04 Jan 2012 03:42:04 PM PST Category: Documentation Severity: 3 - Normal Priority: 5 - Normal Item Group: Documentation Status: None Percent Complete: 0% Assigned to: None Open/Closed: Open Discussion Lock: Any Release: 1.6.7 Fixed Release: None _______________________________________________________ Details: 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. This observation applies to the documentation accompanying avr-libc v1.6.7 and v1.8.0. _______________________________________________________ Reply to this item at: <http://savannah.nongnu.org/bugs/?35240> _______________________________________________ Message sent via/by Savannah http://savannah.nongnu.org/ _______________________________________________ AVR-libc-dev mailing list AVR-libc-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/avr-libc-dev