Attached is patched for 4.1.0 head that changes AVR to use RTL prologue/epilogue generation.
This also should also fix the c++ bug caused by the existing code using the function name as a label. (sorry the PR escapes me!) It generates same code with following exceptions: Small stack adjustments are made using "rcall ." (2 bytes) and "push r0" (1 byte). This avoids difficult direct manipulation of stack pointer when it is less efficient. Choice is based on instruction size - but thats pretty close to speed. All stack pointer loads are now handled by move_hi code. This removes duplicated tests and simplifies code. Various unspecs have been added to generate the required abnormal RTL instructions and where gcc want to remove things (usually to do with register push/pops for r0/r1). Asm comments are different - limited by RTL. However they convey same information if not more descriptive. ...and hopefully the code's right! Comments on accuracy and style please. -- Andy Hutchinson __________________________________________________________________ Switch to Netscape Internet Service. As low as $9.95 a month -- Sign up today at http://isp.netscape.com/register Netscape. Just the Net You Need. New! Netscape Toolbar for Internet Explorer Search from anywhere on the Web and block those annoying pop-ups. Download now at http://channels.netscape.com/ns/search/install.jsp
patch.txt.bz2
Description: patch.txt.bz2