📄 excalib.s
字号:
_excIntStub: mov.l r0,@sp /* overwrite pr' on stack */ mov.l r1,@-sp mov.l r2,@-sp; mov.l IntLockSR,r2 mov.l AreWeNested,r1; mov.l @r2,r0 stc sr,r2 /* save current sr */ /* update areWeNested */ ldc r0,sr /* LOCK INTERRUPTS */ mov.l @r1,r0 rotl r0 mov.l r0,@r1#if (CPU==SH7000) mov sp,r1 bf excIntNested#else bf.s excIntNested mov sp,r1 /* r1: points at r2 on stack */#endif mov.l VxIntStackBase,r0; mov.l @r0,r0; mov.l sp,@-r0 /* save task's sp */ mov r0,sp /* switch to interrupt stack */excIntNested: ldc r2,sr /* UNLOCK INTERRUPTS */ mov.l r3, @-sp mov.l r4, @-sp; mov.l IntCnt,r2 mov.l r5, @-sp; mov.l @r2,r0 mov.l r6, @-sp; add #1,r0 mov.l r7, @-sp; mov.l Errno,r3 sts.l mach,@-sp; mov.l @r3,r3 sts.l macl,@-sp; mov.l r3,@-sp /* save errno */ mov.l r0,@r2 /* bump count */ /* form REG_SET on stack */ mov.l @(20,r1),r0; mov.l r0, @-sp /* save sr */ mov.l @(16,r1),r0; mov.l r0, @-sp /* save pc */ add #-4,sp; mov.l r14, @-sp /* save r14 */ mov.l r13, @-sp; mov.l r12, @-sp /* save r13/r12 */ mov.l r11, @-sp; mov.l r10, @-sp /* save r11/r10 */ mov.l r9, @-sp; mov.l r8, @-sp /* save r9/r8 */ sts.l macl,@-sp; sts.l mach,@-sp /* save macl/mach */ mov.l r7, @-sp; mov.l r6, @-sp /* save r7/r6 */ mov.l r5, @-sp; mov.l r4, @-sp /* save r5/r4 */ sts pr,r4 /* r4: excBsrTbl[] */ mov r1,r5; add #16,r5 /* r5->ESF */ mov.l r5,@(52,sp) /* save as r15 */ mov.l r3,@-sp /* save r3 */ mov.l @r1,r0; mov.l r0,@-sp /* save r2 */ mov.l @(4,r1),r0; mov.l r0,@-sp /* save r1 */ mov.l @(8,r1),r0; mov.l r0,@-sp /* save r0 */ mov.l @(12,r1),r0; mov.l r0,@-sp /* save pr */ stc.l gbr,@-sp; stc.l vbr,@-sp /* save gbr/vbr */ /* (sp ==> REG_SET) */ add #-6,r4 /* adjust return adrs to be BSR adrs */ mova _excBsrTbl,r0 /* (_excBsrTbl must be long aligned) */ sub r0,r4 /* get offset from start of BSR table */ mov.l ExcIntHandle,r0 shlr2 r4 /* turn vector offset into excep num */ /* do exception processing */ jsr @r0; /* r4: excep num */ mov sp,r6 /* r5: ESF* */ /* r6: REG_SET* (delay slot) */ mov.l IntExit,r0 add #92,sp jmp @r0; /* exit the ISR thru the kernel */ mov.l @sp+,r1 /* r1: _errno */ .align 2IntLockSR: .long _intLockTaskSRAreWeNested: .long _areWeNestedVxIntStackBase: .long _vxIntStackBaseIntCnt: .long _intCntErrno: .long _errnoExcIntHandle: .long _excIntHandleIntExit: .long _intExit/******************************************************************************** excBsrTbl - table of BSRs** NOMANUAL*/ .align 2 .type _excBsrTblBErr,@object .type _excBsrTbl,@object_excBsrTblBErr: sts.l pr,@-sp; bsr _excStub; /* 0: bus error (bsp specific)*/_excBsrTbl: sts.l pr,@-sp; bsr _excIntStub; /* 0: power-on reset pc */ sts.l pr,@-sp; bsr _excIntStub; /* 1: power-on reset sp */ sts.l pr,@-sp; bsr _excIntStub; /* 2: manual reset pc */ sts.l pr,@-sp; bsr _excIntStub; /* 3: manual reset sp */ sts.l pr,@-sp; bsr _excStub; /* 4: general illegal instr */ sts.l pr,@-sp; bsr _excStub; /* 5: (reserved) */ sts.l pr,@-sp; bsr _excStub; /* 6: illegal slot instr */ sts.l pr,@-sp; bsr _excStub; /* 7: (reserved) */ sts.l pr,@-sp; bsr _excStub; /* 8: (reserved) */ sts.l pr,@-sp; bsr _excStub; /* 9: cpu address error */ sts.l pr,@-sp; bsr _excStub; /*10: dma address error */ sts.l pr,@-sp; bsr _excIntStub; /*11: non-maskable interrupt */ sts.l pr,@-sp; bsr _excStub; /*12: user break interrupt */ sts.l pr,@-sp; bsr _excStub; /*13: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*14: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*15: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*16: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*17: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*18: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*19: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*20: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*21: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*22: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*23: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*24: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*25: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*26: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*27: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*28: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*29: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*30: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*31: (reserved) */ sts.l pr,@-sp; bsr _excStub; /*32: trap */ sts.l pr,@-sp; bsr _excStub; /*33: trap */ sts.l pr,@-sp; bsr _excStub; /*34: trap */ sts.l pr,@-sp; bsr _excStub; /*35: trap */ sts.l pr,@-sp; bsr _excStub; /*36: trap */ sts.l pr,@-sp; bsr _excStub; /*37: trap */ sts.l pr,@-sp; bsr _excStub; /*38: trap */ sts.l pr,@-sp; bsr _excStub; /*39: trap */ sts.l pr,@-sp; bsr _excStub; /*40: trap */ sts.l pr,@-sp; bsr _excStub; /*41: trap */ sts.l pr,@-sp; bsr _excStub; /*42: trap */ sts.l pr,@-sp; bsr _excStub; /*43: trap */ sts.l pr,@-sp; bsr _excStub; /*44: trap */ sts.l pr,@-sp; bsr _excStub; /*45: trap */ sts.l pr,@-sp; bsr _excStub; /*46: trap */ sts.l pr,@-sp; bsr _excStub; /*47: trap */ sts.l pr,@-sp; bsr _excStub; /*48: trap */ sts.l pr,@-sp; bsr _excStub; /*49: trap */ sts.l pr,@-sp; bsr _excStub; /*50: trap */ sts.l pr,@-sp; bsr _excStub; /*51: trap */ sts.l pr,@-sp; bsr _excStub; /*52: trap */ sts.l pr,@-sp; bsr _excStub; /*53: trap */ sts.l pr,@-sp; bsr _excStub; /*54: trap */ sts.l pr,@-sp; bsr _excStub; /*55: trap */ sts.l pr,@-sp; bsr _excStub; /*56: trap */ sts.l pr,@-sp; bsr _excStub; /*57: trap */ sts.l pr,@-sp; bsr _excStub; /*58: trap */ sts.l pr,@-sp; bsr _excStub; /*59: trap */ sts.l pr,@-sp; bsr _excStub; /*60: trap */ sts.l pr,@-sp; bsr _excStub; /*61: trap */ sts.l pr,@-sp; bsr _excStub; /*62: trap */ sts.l pr,@-sp; bsr _excStub; /*63: trap */ sts.l pr,@-sp; bsr _excIntStub; /*64: IRL 1 */ sts.l pr,@-sp; bsr _excIntStub; /*65: IRL 2-3 */ sts.l pr,@-sp; bsr _excIntStub; /*66: IRL 4-5 */ sts.l pr,@-sp; bsr _excIntStub; /*67: IRL 6-7 */ sts.l pr,@-sp; bsr _excIntStub; /*68: IRL 8-9 */ sts.l pr,@-sp; bsr _excIntStub; /*69: IRL10-11 */ sts.l pr,@-sp; bsr _excIntStub; /*70: IRL12-13 */ sts.l pr,@-sp; bsr _excIntStub; /*71: IRL14-15 */ sts.l pr,@-sp; bsr _excIntStub; /*72: */ sts.l pr,@-sp; bsr _excIntStub; /*73: */ sts.l pr,@-sp; bsr _excIntStub; /*74: */ sts.l pr,@-sp; bsr _excIntStub; /*75: */ sts.l pr,@-sp; bsr _excIntStub; /*76: */ sts.l pr,@-sp; bsr _excIntStub; /*77: */ sts.l pr,@-sp; bsr _excIntStub; /*78: */ sts.l pr,@-sp; bsr _excIntStub; /*79: */ sts.l pr,@-sp; bsr _excIntStub; /*80: */ sts.l pr,@-sp; bsr _excIntStub; /*81: */ sts.l pr,@-sp; bsr _excIntStub; /*82: */ sts.l pr,@-sp; bsr _excIntStub; /*83: */ sts.l pr,@-sp; bsr _excIntStub; /*84: */ sts.l pr,@-sp; bsr _excIntStub; /*85: */ sts.l pr,@-sp; bsr _excIntStub; /*86: */ sts.l pr,@-sp; bsr _excIntStub; /*87: */ sts.l pr,@-sp; bsr _excIntStub; /*88: */ sts.l pr,@-sp; bsr _excIntStub; /*89: */ sts.l pr,@-sp; bsr _excIntStub; /*90: */ sts.l pr,@-sp; bsr _excIntStub; /*91: */ sts.l pr,@-sp; bsr _excIntStub; /*92: */ sts.l pr,@-sp; bsr _excIntStub; /*93: */ sts.l pr,@-sp; bsr _excIntStub; /*94: */ sts.l pr,@-sp; bsr _excIntStub; /*95: */ sts.l pr,@-sp; bsr _excIntStub; /*96: */ sts.l pr,@-sp; bsr _excIntStub; /*97: */ sts.l pr,@-sp; bsr _excIntStub; /*98: */ sts.l pr,@-sp; bsr _excIntStub; /*99: */ sts.l pr,@-sp; bsr _excIntStub; /*100: */ sts.l pr,@-sp; bsr _excIntStub; /*101: */ sts.l pr,@-sp; bsr _excIntStub; /*102: */ sts.l pr,@-sp; bsr _excIntStub; /*103: */ sts.l pr,@-sp; bsr _excIntStub; /*104: */ sts.l pr,@-sp; bsr _excIntStub; /*105: */ sts.l pr,@-sp; bsr _excIntStub; /*106: */ sts.l pr,@-sp; bsr _excIntStub; /*107: */ sts.l pr,@-sp; bsr _excIntStub; /*108: */ sts.l pr,@-sp; bsr _excIntStub; /*109: */ sts.l pr,@-sp; bsr _excIntStub; /*110: */ sts.l pr,@-sp; bsr _excIntStub; /*111: */ sts.l pr,@-sp; bsr _excIntStub; /*112: */ sts.l pr,@-sp; bsr _excIntStub; /*113: */ sts.l pr,@-sp; bsr _excIntStub; /*114: */ sts.l pr,@-sp; bsr _excIntStub; /*115: */ sts.l pr,@-sp; bsr _excIntStub; /*116: */ sts.l pr,@-sp; bsr _excIntStub; /*117: */ sts.l pr,@-sp; bsr _excIntStub; /*118: */ sts.l pr,@-sp; bsr _excIntStub; /*119: */ sts.l pr,@-sp; bsr _excIntStub; /*120: */ sts.l pr,@-sp; bsr _excIntStub; /*121: */ sts.l pr,@-sp; bsr _excIntStub; /*122: */ sts.l pr,@-sp; bsr _excIntStub; /*123: */ sts.l pr,@-sp; bsr _excIntStub; /*124: */ sts.l pr,@-sp; bsr _excIntStub; /*125: */ sts.l pr,@-sp; bsr _excIntStub; /*126: */ sts.l pr,@-sp; bsr _excIntStub; /*127: */#if (CPU==SH7600) sts.l pr,@-sp; bsr _excIntStub; /*128: */ sts.l pr,@-sp; bsr _excIntStub; /*129: */ sts.l pr,@-sp; bsr _excIntStub; /*130: */ sts.l pr,@-sp; bsr _excIntStub; /*131: */ sts.l pr,@-sp; bsr _excIntStub; /*132: */ sts.l pr,@-sp; bsr _excIntStub; /*133: */ sts.l pr,@-sp; bsr _excIntStub; /*134: */ sts.l pr,@-sp; bsr _excIntStub; /*135: */ sts.l pr,@-sp; bsr _excIntStub; /*136: */ sts.l pr,@-sp; bsr _excIntStub; /*137: */ sts.l pr,@-sp; bsr _excIntStub; /*138: */ sts.l pr,@-sp; bsr _excIntStub; /*139: */ sts.l pr,@-sp; bsr _excIntStub; /*140: */ sts.l pr,@-sp; bsr _excIntStub; /*141: */ sts.l pr,@-sp; bsr _excIntStub; /*142: */ sts.l pr,@-sp; bsr _excIntStub; /*143: */ sts.l pr,@-sp; bsr _excIntStub; /*144: */ sts.l pr,@-sp; bsr _excIntStub; /*145: */ sts.l pr,@-sp; bsr _excIntStub; /*146: */ sts.l pr,@-sp; bsr _excIntStub; /*147: */ sts.l pr,@-sp; bsr _excIntStub; /*148: */ sts.l pr,@-sp; bsr _excIntStub; /*149: */ sts.l pr,@-sp; bsr _excIntStub; /*150: */ sts.l pr,@-sp; bsr _excIntStub; /*151: */ sts.l pr,@-sp; bsr _excIntStub; /*152: */ sts.l pr,@-sp; bsr _excIntStub; /*153: */ sts.l pr,@-sp; bsr _excIntStub; /*154: */ sts.l pr,@-sp; bsr _excIntStub; /*155: */ sts.l pr,@-sp; bsr _excIntStub; /*156: */ sts.l pr,@-sp; bsr _excIntStub; /*157: */ sts.l pr,@-sp; bsr _excIntStub; /*158: */ sts.l pr,@-sp; bsr _excIntStub; /*159: */ sts.l pr,@-sp; bsr _excIntStub; /*160: */ sts.l pr,@-sp; bsr _excIntStub; /*161: */ sts.l pr,@-sp; bsr _excIntStub; /*162: */ sts.l pr,@-sp; bsr _excIntStub; /*163: */ sts.l pr,@-sp; bsr _excIntStub; /*164: */ sts.l pr,@-sp; bsr _excIntStub; /*165: */ sts.l pr,@-sp; bsr _excIntStub; /*166: */ sts.l pr,@-sp; bsr _excIntStub; /*167: */ sts.l pr,@-sp; bsr _excIntStub; /*168: */ sts.l pr,@-sp; bsr _excIntStub; /*169: */ sts.l pr,@-sp; bsr _excIntStub; /*170: */ sts.l pr,@-sp; bsr _excIntStub; /*171: */ sts.l pr,@-sp; bsr _excIntStub; /*172: */ sts.l pr,@-sp; bsr _excIntStub; /*173: */ sts.l pr,@-sp; bsr _excIntStub; /*174: */ sts.l pr,@-sp; bsr _excIntStub; /*175: */ sts.l pr,@-sp; bsr _excIntStub; /*176: */ sts.l pr,@-sp; bsr _excIntStub; /*177: */ sts.l pr,@-sp; bsr _excIntStub; /*178: */ sts.l pr,@-sp; bsr _excIntStub; /*179: */ sts.l pr,@-sp; bsr _excIntStub; /*180: */ sts.l pr,@-sp; bsr _excIntStub; /*181: */ sts.l pr,@-sp; bsr _excIntStub; /*182: */ sts.l pr,@-sp; bsr _excIntStub; /*183: */ sts.l pr,@-sp; bsr _excIntStub; /*184: */ sts.l pr,@-sp; bsr _excIntStub; /*185: */ sts.l pr,@-sp; bsr _excIntStub; /*186: */ sts.l pr,@-sp; bsr _excIntStub; /*187: */ sts.l pr,@-sp; bsr _excIntStub; /*188: */ sts.l pr,@-sp; bsr _excIntStub; /*189: */ sts.l pr,@-sp; bsr _excIntStub; /*190: */ sts.l pr,@-sp; bsr _excIntStub; /*191: */ sts.l pr,@-sp; bsr _excIntStub; /*192: */ sts.l pr,@-sp; bsr _excIntStub; /*193: */ sts.l pr,@-sp; bsr _excIntStub; /*194: */ sts.l pr,@-sp; bsr _excIntStub; /*195: */ sts.l pr,@-sp; bsr _excIntStub; /*196: */ sts.l pr,@-sp; bsr _excIntStub; /*197: */ sts.l pr,@-sp; bsr _excIntStub; /*198: */ sts.l pr,@-sp; bsr _excIntStub; /*199: */ sts.l pr,@-sp; bsr _excIntStub; /*200: */ sts.l pr,@-sp; bsr _excIntStub; /*201: */ sts.l pr,@-sp; bsr _excIntStub; /*202: */ sts.l pr,@-sp; bsr _excIntStub; /*203: */ sts.l pr,@-sp; bsr _excIntStub; /*204: */ sts.l pr,@-sp; bsr _excIntStub; /*205: */ sts.l pr,@-sp; bsr _excIntStub; /*206: */ sts.l pr,@-sp; bsr _excIntStub; /*207: */ sts.l pr,@-sp; bsr _excIntStub; /*208: */ sts.l pr,@-sp; bsr _excIntStub; /*209: */ sts.l pr,@-sp; bsr _excIntStub; /*210: */ sts.l pr,@-sp; bsr _excIntStub; /*211: */ sts.l pr,@-sp; bsr _excIntStub; /*212: */ sts.l pr,@-sp; bsr _excIntStub; /*213: */ sts.l pr,@-sp; bsr _excIntStub; /*214: */ sts.l pr,@-sp; bsr _excIntStub; /*215: */ sts.l pr,@-sp; bsr _excIntStub; /*216: */ sts.l pr,@-sp; bsr _excIntStub; /*217: */ sts.l pr,@-sp; bsr _excIntStub; /*218: */ sts.l pr,@-sp; bsr _excIntStub; /*219: */ sts.l pr,@-sp; bsr _excIntStub; /*220: */ sts.l pr,@-sp; bsr _excIntStub; /*221: */ sts.l pr,@-sp; bsr _excIntStub; /*222: */ sts.l pr,@-sp; bsr _excIntStub; /*223: */ sts.l pr,@-sp; bsr _excIntStub; /*224: */ sts.l pr,@-sp; bsr _excIntStub; /*225: */ sts.l pr,@-sp; bsr _excIntStub; /*226: */ sts.l pr,@-sp; bsr _excIntStub; /*227: */ sts.l pr,@-sp; bsr _excIntStub; /*228: */ sts.l pr,@-sp; bsr _excIntStub; /*229: */ sts.l pr,@-sp; bsr _excIntStub; /*230: */ sts.l pr,@-sp; bsr _excIntStub; /*231: */ sts.l pr,@-sp; bsr _excIntStub; /*232: */ sts.l pr,@-sp; bsr _excIntStub; /*233: */ sts.l pr,@-sp; bsr _excIntStub; /*234: */ sts.l pr,@-sp; bsr _excIntStub; /*235: */ sts.l pr,@-sp; bsr _excIntStub; /*236: */ sts.l pr,@-sp; bsr _excIntStub; /*237: */ sts.l pr,@-sp; bsr _excIntStub; /*238: */ sts.l pr,@-sp; bsr _excIntStub; /*239: */ sts.l pr,@-sp; bsr _excIntStub; /*240: */ sts.l pr,@-sp; bsr _excIntStub; /*241: */ sts.l pr,@-sp; bsr _excIntStub; /*242: */ sts.l pr,@-sp; bsr _excIntStub; /*243: */ sts.l pr,@-sp; bsr _excIntStub; /*244: */ sts.l pr,@-sp; bsr _excIntStub; /*245: */ sts.l pr,@-sp; bsr _excIntStub; /*246: */ sts.l pr,@-sp; bsr _excIntStub; /*247: */ sts.l pr,@-sp; bsr _excIntStub; /*248: */ sts.l pr,@-sp; bsr _excIntStub; /*249: */ sts.l pr,@-sp; bsr _excIntStub; /*250: */ sts.l pr,@-sp; bsr _excIntStub; /*251: */ sts.l pr,@-sp; bsr _excIntStub; /*252: */ sts.l pr,@-sp; bsr _excIntStub; /*253: */ sts.l pr,@-sp; bsr _excIntStub; /*254: */ sts.l pr,@-sp; bsr _excIntStub; /*255: */#endif /* CPU==SH7600 */ sts.l pr,@-sp#endif /* CPU==SH7600 || CPU==SH7000 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -