📄 mmu_crueltt.s
字号:
#ident "@(#)mmu_crueltt.s 1.1 8/6/90 SMI"/* * Copyright (c) 1990 by Sun Microsystems, Inc *//* Adapted from @(#)crueltt.s 1.16 6/9/89 trap table and window over/under flow trap handlers for use on Verilog description of custom sunrise. swk added some stuff to the reset handler to deal with enabling the mmu. 6/22 swk Changed T_reset to T_RESET so mpsas parsing of sym.dat file will work. 6/25 swk Added switch to disable ITBR if wanted.*/!----------------------------------------------------------------------! Link in trap handling routines by #defining the entry point before! #including crueltt.#ifndef IAE_HANDLER#ifdef iae_handler#define IAE_HANDLER iae_handler#else#define IAE_HANDLER TRAP(unimplemented_trap)#endif#endif#ifndef IAER_HANDLER#ifdef iaer_handler#define IAER_HANDLER iaer_handler#else#define IAER_HANDLER TRAP(unimplemented_trap)#endif#endif#ifndef DAE_HANDLER#ifdef dae_handler#define DAE_HANDLER dae_handler#else#define DAE_HANDLER TRAP(unimplemented_trap)#endif#endif#ifndef DAER_HANDLER#ifdef daer_handler#define DAER_HANDLER daer_handler#else#define DAER_HANDLER TRAP(unimplemented_trap)#endif#endif#ifndef INT14_HANDLER#define INT14_HANDLER int_handler#endif#ifndef INT15_HANDLER#define INT15_HANDLER int_handler#endif#ifndef UNIMP_HANDLER#define UNIMP_HANDLER unimplemented_trap#endif#ifndef PRIV_HANDLER#define PRIV_HANDLER unimplemented_trap#endif#ifndef FPDIS_HANDLER#define FPDIS_HANDLER unimplemented_trap#endif#ifndef CPDIS_HANDLER#define CPDIS_HANDLER unimplemented_trap#endif#ifndef OFL_HANDLER#define OFL_HANDLER win_overflow#endif#ifndef UFL_HANDLER#define UFL_HANDLER win_underflow#endif#ifndef MALGN_HANDLER#define MALGN_HANDLER unimplemented_trap#endif#ifndef FPX_HANDLER#define FPX_HANDLER unimplemented_trap#endif#ifndef CPX_HANDLER#define CPX_HANDLER unimplemented_trap#endif#ifndef TAGOF_HANDLER#define TAGOF_HANDLER unimplemented_trap#endif! register file parity error handler#ifndef RFE_HANDLER#define RFE_HANDLER unimplemented_trap#endif#ifndef SWTRAP_0#define SWTRAP_0 set_super#endif#ifndef SWTRAP_1#define SWTRAP_1 unimplemented_trap#endif#ifndef SWTRAP_2#define SWTRAP_2 unimplemented_trap#endif#ifndef SWTRAP_3#define SWTRAP_3 unimplemented_trap#endif#ifndef SW_TRAP_HANDLER#define other_swtraps unimplemented_trap#endif!----------------------------------------------------------------------#include "exc_handlers.s"#define TRAP(label) b label; rd %psr, %l0; nop; nop .global address_0 .global _startaddress_0:T_reset: TRAP(T_RESET) ! 0T_instr_access_exception: IAE_HANDLER ! 1T_unimplemented_instruction: TRAP(UNIMP_HANDLER) ! 2T_privileged_instruction: TRAP(PRIV_HANDLER) ! 3T_fp_disabled: TRAP(FPDIS_HANDLER) ! 4T_window_overflow: TRAP(OFL_HANDLER) ! 5T_window_underflow: TRAP(UFL_HANDLER) ! 6T_mem_addr_not_aligned: TRAP(MALGN_HANDLER) ! 7T_fp_exception: TRAP(FPX_HANDLER) ! 8T_data_access_exception: DAE_HANDLER ! 9T_tag_overflow: TRAP(TAGOF_HANDLER) ! 10 TRAP(unimplemented_trap) ! 11 TRAP(unimplemented_trap) ! 12 TRAP(unimplemented_trap) ! 13 TRAP(unimplemented_trap) ! 14 TRAP(unimplemented_trap) ! 15 TRAP(unimplemented_trap) ! 16T_int_1: int_handler ! 17T_int_2: int_handler ! 18T_int_3: int_handler ! 19T_int_4: int_handler ! 20T_int_5: int_handler ! 21T_int_6: int_handler ! 22T_int_7: int_handler ! 23T_int_8: int_handler ! 24T_int_9: int_handler ! 25T_int_10: int_handler ! 26T_int_11: int_handler ! 27T_int_12: int_handler ! 28T_int_13: int_handler ! 29T_int_14: INT14_HANDLER ! 30T_int_15: INT15_HANDLER ! 31T_rferr: TRAP(RFE_HANDLER) ! 32T_iaerr: IAER_HANDLER ! 33 TRAP(unimplemented_trap) TRAP(unimplemented_trap)T_cp_disabled: TRAP(CPDIS_HANDLER) ! 36 TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap)T_cp_exception: TRAP(CPX_HANDLER) ! 40T_daerr: DAER_HANDLER ! 41 ! unused hardware trap vectors 42 - 127 TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap) TRAP(unimplemented_trap)software_traps: ! 128 - 255 TRAP(SWTRAP_0) TRAP(SWTRAP_1) TRAP(SWTRAP_2) TRAP(SWTRAP_3) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps) TRAP(other_swtraps)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -