Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 665 → Rev 666

/kernel/trunk/arch/sparc64/include/trap/regwin.h
118,12 → 118,14
mov %r0, %l5
mov %r0, %l6
mov %r0, %l7
mov %r0, %i0
mov %r0, %i1
mov %r0, %i2
mov %r0, %i3
mov %r0, %i4
mov %r0, %i5
mov %r0, %o0
mov %r0, %o1
mov %r0, %o2
mov %r0, %o3
mov %r0, %o4
mov %r0, %o5
mov %r0, %o6
mov %r0, %o7
retry
.endm
#endif /* __ASM__ */
/kernel/trunk/arch/sparc64/include/trap/interrupt.h
34,6 → 34,7
#define __sparc64_INTERRUPT_H__
 
#include <arch/trap/trap_table.h>
#include <arch/stack.h>
 
#define TT_INTERRUPT_LEVEL_1 0x41
#define TT_INTERRUPT_LEVEL_2 0x42
58,12 → 59,10
 
#ifdef __ASM__
.macro INTERRUPT_LEVEL_N_HANDLER n
save %sp, -128, %sp
save %sp, -STACK_WINDOW_SAVE_AREA_SIZE, %sp
mov \n - 1, %o0
call exc_dispatch
mov %fp, %o1
restore
retry
SAVING_HANDLER exc_dispatch
.endm
 
.macro INTERRUPT_VECTOR_TRAP_HANDLER
/kernel/trunk/arch/sparc64/include/trap/trap_table.h
33,6 → 33,8
#include <arch/types.h>
#endif /* __ASM__ */
 
#include <arch/stack.h>
 
#define TRAP_TABLE_ENTRY_COUNT 1024
#define TRAP_TABLE_ENTRY_SIZE 32
#define TRAP_TABLE_SIZE (TRAP_TABLE_ENTRY_COUNT*TRAP_TABLE_ENTRY_SIZE)
48,4 → 50,32
extern trap_table_entry_t trap_table_save[TRAP_TABLE_ENTRY_COUNT];
#endif /* !__ASM__ */
 
#ifdef __ASM__
.macro SAVE_GLOBALS
mov %g1, %l1
mov %g2, %l2
mov %g3, %l3
mov %g4, %l4
mov %g5, %l5
mov %g6, %l6
mov %g7, %l7
.endm
 
.macro RESTORE_GLOBALS
mov %l1, %g1
mov %l2, %g2
mov %l3, %g3
mov %l4, %g4
mov %l5, %g5
mov %l6, %g6
mov %l7, %g7
.endm
 
.macro SAVING_HANDLER f
set \f, %l0
b saving_handler
nop
.endm
#endif /* __ASM__ */
 
#endif