Changeset 7ba7c6d in mainline for kernel/generic/src


Ignore:
Timestamp:
2006-10-08T20:09:28Z (19 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/generic/src/mm/as.c

    r64c2ad5 r7ba7c6d  
    15931593        link_t *cur;
    15941594        for (cur = as->as_area_btree.leaf_head.next; cur != &as->as_area_btree.leaf_head; cur = cur->next) {
    1595                 as_area_t *area;
    1596                 btree_node_t *node;
    1597                
    1598                 node = list_get_instance(cur, btree_node_t, leaf_link);
     1595                btree_node_t *node = list_get_instance(cur, btree_node_t, leaf_link);
    15991596               
    16001597                int i;
    16011598                for (i = 0; i < node->keys; i++) {
    1602                         area = node->value[i];
     1599                        as_area_t *area = node->value[i];
    16031600               
    16041601                        mutex_lock(&area->lock);
Note: See TracChangeset for help on using the changeset viewer.