Ignore:
Timestamp:
2006-10-08T20:09:28Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e4398200
Parents:
64c2ad5
Message:

A quote from from SPARC V9 specification:

The Y register is deprecated; it is provided only for compatibility with previous versions
of the architecture. It should not be used in new SPARC-V9 software. It is
recommended that all instructions that reference the Y register (i.e., SMUL,
SMULcc, UMUL, UMULcc, MULScc, SDIV, SDIVcc, UDIV, UDIVcc, RDY, and
WRY) be avoided. See the appropriate pages in Appendix A, “Instruction Definitions,”
for suitable substitute instructions.

Still gcc is generating code which uses Y and some of the instructions above.
This change modifies the preemptible_handler() to preserve the Y register
across preemption.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/sparc64/include/trap/trap_table.h

    r64c2ad5 r7ba7c6d  
    8585#define SAVED_TPC       -(2*8)
    8686#define SAVED_TNPC      -(3*8)          /* <-- istate_t begins here */
    87 /* alignment gap */
     87#define SAVED_Y         -(4*8)
    8888#define SAVED_I0        -(5*8)
    8989#define SAVED_I1        -(6*8)
Note: See TracChangeset for help on using the changeset viewer.