From: Scott DOT Mintz AT po DOT cle DOT ab DOT com (Scott Mintz) Subject: Bug in h8300.c 23 Apr 1997 13:23:57 -0700 Approved: cygnus DOT gnu-win32 AT cygnus DOT com Distribution: cygnus Message-ID: <0004A3AF.1893.cygnus.gnu-win32@po.cle.ab.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Original-To: gnu-win32 AT cygnus DOT com Content-Description: cc:Mail note part Original-Sender: owner-gnu-win32 AT cygnus DOT com I built a cygwin32 cross compiler for the H8300-hms on a WinNT machine using the 17.1 CDK. The file h8300.c in the gcc/config/h8300 subdirectory has the following defined: /* Output assembly language code for the function prologue. */ static int push_order[FIRST_PSEUDO_REGISTER] = {0, 1, 2, 3, 4, 5, 6, -1, -1}; static int pop_order[FIRST_PSEUDO_REGISTER] = {6, 5, 4, 3, 2, 1, 0, -1, -1}; where FIRST_PSEUDO_REGISTER is defined to be 10. The last item in the above arrays gets defined as 0 because there are only 9 initializers instead of 10. This causes the generated interrupt prologue/epilogue code to be incorrect. The arrays should be defined this way: /* Output assembly language code for the function prologue. */ static int push_order[FIRST_PSEUDO_REGISTER] = {0, 1, 2, 3, 4, 5, 6, -1, -1, -1}; static int pop_order[FIRST_PSEUDO_REGISTER] = {6, 5, 4, 3, 2, 1, 0, -1, -1, -1}; +------------------------------+------------------------------------+ | Scott A. Mintz | voice: (216) 646-4805 | | Allen-Bradley Company | fax: (216) 646-4961 | | 1 Allen-Bradley Drive | email: scott DOT mintz AT po DOT cle DOT ab DOT com | | Mayfield Hts., OH 44124-6118 | CIS: 71461,632 | +------------------------------+------------------------------------+ - For help on using this list (especially unsubscribing), send a message to "gnu-win32-request AT cygnus DOT com" with one line of text: "help".