profisr.src
来自「WinCE 3.0 BSP, 包含Inter SA1110, Intel_815」· SRC 代码 · 共 134 行
SRC
134 行
;
; Copyright(c) 1998,1999 SIC/Hitachi,Ltd.
;
; Module Name:
;
; profisr.src
;
; Revision History:
;
; 26th April 1999 Released
; 24th May 1999 Modified (Profile buffer address)
;
.list OFF
.include "kxshx.h"
.list ON
.include "shx.inc"
.import _ProfilerHit
.section .KDATA,stack
.import _KData
.section .data,data
.align 4
SaveR1: .data.l 0
SaveR2: .data.l 0
SaveR3: .data.l 0
SaveR4: .data.l 0
SaveR5: .data.l 0
SaveR6: .data.l 0
SaveR7: .data.l 0
SaveR8: .data.l 0
SaveR9: .data.l 0
SaveR10: .data.l 0
SaveR11: .data.l 0
SaveR12: .data.l 0
SaveR13: .data.l 0
SaveR14: .data.l 0
SavePR: .data.l 0
.section .text,code
LEAF_ENTRY _OEMProfilerISR
mov #SavePR, r0 ; save all used regs
mov r14, @-r0
mov r13, @-r0
mov r12, @-r0
mov r11, @-r0
mov r10, @-r0
mov r9, @-r0
mov r8, @-r0
mov r7, @-r0
mov r6, @-r0
mov r5, @-r0
mov r4, @-r0
mov r3, @-r0
mov r2, @-r0
mov r1, @-r0
sts pr, r1
mov #SavePR, r0 ; save return address
mov r1, @r0
stc SPC, r4 ; r4= saved program counter
mov #_ProfilerHit, r0
jsr @r0
nop
mov #TMU_TCR2, r1 ; (r1) = ptr to timer unit registers
mov.w @r1, r0
nop
and #h'ff, r0
mov.w r0, @r1
mov #SaveR1, r0 ; restore registers
mov @r0+, r1
mov @r0+, r2
mov @r0+, r3
mov @r0+, r4
mov @r0+, r5
mov @r0+, r6
mov @r0+, r7
mov @r0+, r8
mov @r0+, r9
mov @r0+, r10
mov @r0+, r11
mov @r0+, r12
mov @r0+, r13
mov @r0+, r14
mov @r0, r0
lds r0, pr
mov #0, r0
rts
nop
.endf
LEAF_ENTRY _OEMProfilerBufferISR
mov #0xae000000, r0 ; r0= profile buffer address
mov @r0, r1 ; r1= lpdwProfileBufNext
mov @(4,r0), r2 ; r2= lpdwProfileBufEnd
cmp/eq r1, r2 ; if at end of buffer
bt pend ; exit
stc SPC, r2 ; r2= saved program counter
mov #_KData+144, r3 ; r3= _KDATA.pCurPrc
mov.l r2, @r1 ; save EPC
mov.l @r3, r3 ; r3= KData.pCurPrc
mov.b #72, r0
mov.l @(r0, r3), r3 ; r3= pCurProc->oe.tocptr
mov.l r3,@(4, r1) ; save pCurProc->oe.tocptr
add #8, r1 ; lpdwProfileBufNext+=2
mov #0xae000000, r0 ; r0= profile buffer address
mov r1,@r0 ; save lpdwProfileBufNext
pend:
mov #TMU_TCR2, r1 ; (r1) = ptr to timer unit registers
;tisr10:
mov.w @r1, r0
nop
and #h'ff, r0
mov.w r0, @r1
; mov.w @r1, r0
; shlr8 r0
; tst #1, r0
; bf tisr10
rts
mov #0, r0
.endf
.end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?