This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Bug in h8300.c


     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.mintz@po.cle.ab.com   |
     | Mayfield Hts., OH 44124-6118 | CIS:   71461,632                   |
     +------------------------------+------------------------------------+

-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]