Changeset 7614565 in mainline for arch/sparc64/src/trap/trap_table.S


Ignore:
Timestamp:
2005-12-27T21:40:02Z (19 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
feb5915
Parents:
1120276
Message:

sparc64 work.
Fix clean_window trap handler so that it clears output registers instead of input registers!
Fix interrupt handlers to save global registers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • arch/sparc64/src/trap/trap_table.S

    r1120276 r7614565  
    3838 * link-time addresses which is good for debugging.
    3939 */
    40  
     40
     41.register %g2, #scratch
     42.register %g3, #scratch
     43.register %g6, #scratch
     44.register %g7, #scratch
     45
    4146.text
    4247
     
    203208trap_table_save:
    204209        .space TABLE_SIZE, 0
     210
     211
     212/* Trap handler that explicitly saves global registers.
     213 *
     214 * Input registers:
     215 *      %l0             Address of function to call.
     216 * Output registers:
     217 *       %l1 - %l7      Copy of %g1 - %g7
     218 */
     219.global saving_handler
     220saving_handler:
     221        SAVE_GLOBALS
     222        call %l0
     223        nop
     224        RESTORE_GLOBALS
     225        restore         /* matches the save instruction from the top-level handler */
     226        retry
Note: See TracChangeset for help on using the changeset viewer.