windows-nt/Source/XPSP1/NT/multimedia/dshow/mfvideo/mswebdvd/ia64/atltmr21.s

26 lines
955 B
ArmAsm
Raw Normal View History

2020-09-26 03:20:57 -05:00
.global _TimerProcThunkProc
.proc _TimerProcThunkProc
.align 32
_TimerProcThunkProc:
// On entry, gp is actually a pointer to the pRealWndProcDesc member of
// the _WndProcThunk struct
alloc r36=ar.pfs,4,6,4,0
mov r37=rp // Save return address
mov r38=gp // Save gp
mov r40=gp // r40 = &thunk.pRealWndProcDesc
ld8 r30=[r40],8 // r30 = thunk.pRealWndProcDesc, r40 = &thunk.pThis
ld8 r42=[r40] // r42 = pThis
ld8 r31=[r30],8 // r31 = thunk.pRealWndProcDesc->pfn, r30 = &thunk.pRealWndProcDesc->gp
ld8 gp=[r30] // gp = thunk.pRealWndProcDesc->gp
mov r43=r33 // r43 = nMsg
mov r44=r34 // r44 = wParam
mov r45=r35 // r45 = lParam
mov b6=r31 // b6 = thunk.pRealWndProcDesc->pfn
br.call.sptk.many rp=b6 // Call thunk.pRealWndProcDesc->pfn
mov gp=r38 // restore gp
mov rp=r37 // restore return address
mov ar.pfs=r36 // restore previous function state
br.ret.sptk.many rp // return
.endp _TimerProcThunkProc