📄 testzlib.asm
字号:
ld8 r30=[r31];; //89 cc:1
adds r29=4, r30 //89 cc:2
nop.i 0;;
}
{ .mmi //R-Addr: 0X0150
st4 [r29]=r0;; //89 cc:3
nop.m 0
nop.i 0;;
}
$LN3@BeginCount:
// 90 : }
// 91 : }
{ .mii //R-Addr: 0X0160
adds sp=32, sp //91 cc:0
mov.ret b0=r34;; //91 cc:0
mov.i ar.pfs=r35 //91 cc:1
}
{ .mmb //R-Addr: 0X0170
nop.m 0
nop.m 0
br.ret.sptk.many b0;; //91 cc:1
}
// End code for function:
.endp BeginCountPerfCounter#
.type GetMsecSincePerfCounter# ,@function
.global GetMsecSincePerfCounter#
.type __imp_QueryPerformanceFrequency# ,@function
.global __imp_QueryPerformanceFrequency#
.section .pdata
$T80458: data4 @imagerel($LN6@GetMsecSin#)
data4 @imagerel($LN6@GetMsecSin#+896)
data4 @imagerel($T80456#)
.section .xdata
.skip 8
$T80456: data2 03H
data2 00H
data4 03H
string "\x0a" //R1:prologue size 10
string "\xe6\x00" //P7:pfs_when time 0
string "\xb1\x23" //P3:pfs_gr 35
string "\xe0\x01\x05" //P7:mem_stack_f time 1 size 5
string "\xe4\x02" //P7:rp_when time 2
string "\xb0\xa2" //P3:rp_gr 34
string "\x61\x9e\x01" //R3:body size 158
string "\x81" //B1:label_state 1
string "\xc0\x05" //B2:ecount 0 time 5
string "\x00\x00\x00\x00\x00\x00" //padding
// Function compile flags: /Odtp
.section .text
// Begin code for function: GetMsecSincePerfCounter:
.proc GetMsecSincePerfCounter#
.align 32
dwRet$ = 16
dwLog$ = 20
ticks$ = 24
tickSecShifted$ = 32
endTime64$ = 40
ticksPerSecond$ = 48
ticksShifted$ = 56
$T80454 = 64
$T80455 = 68
beginTime64$ = 80
fComputeTimeQueryPerf$ = 88
GetMsecSincePerfCounter:
// beginTime64$ = r32
// fComputeTimeQueryPerf$ = r33
// Output regs: r37-r39
$LN6@GetMsecSin:
// 94 : {
// 95 : LARGE_INTEGER endTime64,ticksPerSecond,ticks;
// 96 : DWORDLONG ticksShifted,tickSecShifted;
// 97 : DWORD dwLog=16+0;
// 98 : DWORD dwRet;
// 99 : if ((!fComputeTimeQueryPerf) || (!QueryPerformanceCounter(&endTime64)))
{ .mmi //R-Addr: 0X00
alloc r35=2, 3, 3, 0 //94 cc:0
adds sp=-80, sp //94 cc:0, ffffffb0H
mov r34=b0 //94 cc:0
}
{ .mmi //R-Addr: 0X010
mov r36=gp;; //94 cc:0
ld8.nta r2=[sp] //94 cc:1
adds r31=beginTime64$, sp
}
{ .mmi //R-Addr: 0X020
adds r30=fComputeTimeQueryPerf$, sp;;
st8 [r31]=r32
nop.i 0
}
{ .mmi //R-Addr: 0X030
st4 [r30]=r33;;
mov r29=16 //97 cc:0
adds r28=dwLog$, sp;; //97 cc:0
}
{ .mmi //R-Addr: 0X040
st4 [r28]=r29;; //97 cc:1
adds r27=fComputeTimeQueryPerf$, sp //99 cc:0
nop.i 0;;
}
{ .mmi //R-Addr: 0X050
ld4 r26=[r27];; //99 cc:1
cmp4.eq.unc p14,p15=r0, r26 //99 cc:2
nop.i 0
}
{ .mmb //R-Addr: 0X060
nop.m 0
nop.m 0
(p14) br.cond.dptk.few $LN2@GetMsecSin#;; //99 cc:2
}
// 99 : if ((!fComputeTimeQueryPerf) || (!QueryPerformanceCounter(&endTime64)))
{ .mib //R-Addr: 0X070
addl r25=@gprel(__imp_QueryPerformanceCounter#),gp //99 cc:3
adds r37=endTime64$, sp //99 cc:3
nop.b 0;;
}
{ .mmi //R-Addr: 0X080
ld8 r22=[r25];; //99 cc:4
ld8 r21=[r22], 8 //99 cc:6
nop.i 0;;
}
{ .mib //R-Addr: 0X090
ld8 gp=[r22] //99 cc:7
mov b6=r21 //99 cc:7
br.call.dptk.many b0=b6;; //99 cc:7
}
{ .mmi //R-Addr: 0X0a0
adds r20=$T80454, sp //99 cc:18
adds r19=$T80454, sp //99 cc:18
mov gp=r36;; //99 cc:18
}
{ .mmb //R-Addr: 0X0b0
st4 [r20]=r8 //99 cc:19
ld4 r18=[r19] //99 cc:19
nop.b 0;;
}
{ .mmb //R-Addr: 0X0c0
cmp4.ne.unc p14,p15=r0, r18 //99 cc:20
nop.m 0
(p14) br.cond.dptk.few $LN3@GetMsecSin#;; //99 cc:20
}
$LN2@GetMsecSin:
// 100 : dwRet = (GetTickCount() - beginTime64.LowPart)*1;
// 101 : else
{ .mmi //R-Addr: 0X0d0
addl r17=@gprel(__imp_GetTickCount#),gp;; //100 cc:0
ld8 r16=[r17] //100 cc:1
nop.i 0;;
}
{ .mmi //R-Addr: 0X0e0
ld8 r15=[r16], 8;; //100 cc:3
ld8 gp=[r16] //100 cc:4
mov b7=r15 //100 cc:4
}
{ .mmb //R-Addr: 0X0f0
nop.m 0
nop.m 0
br.call.dptk.many b0=b7;; //100 cc:4
}
{ .mmi //R-Addr: 0X0100
adds r11=$T80455, sp //100 cc:15
adds r10=$T80455, sp //100 cc:15
adds r29=dwRet$, sp //100 cc:15
}
{ .mmi //R-Addr: 0X0110
mov gp=r36;; //100 cc:15
st4 [r11]=r8 //100 cc:16
adds r8=beginTime64$, sp //100 cc:16
}
{ .mmi //R-Addr: 0X0120
ld4 r9=[r10];; //100 cc:16
ld4 r31=[r8] //100 cc:17
nop.i 0;;
}
{ .mmi //R-Addr: 0X0130
sub r30=r9, r31;; //100 cc:18
st4 [r29]=r30 //100 cc:19
nop.i 0;;
}
{ .mmb //R-Addr: 0X0140
nop.m 0
nop.m 0
br.cond.sptk.few $LN1@GetMsecSin#;; //101 cc:0
}
$LN3@GetMsecSin:
// 102 : {
// 103 : MyDoMinus64(&ticks,endTime64,beginTime64);
// 104 : QueryPerformanceFrequency(&ticksPerSecond);
// 105 :
// 106 :
// 107 : {
// 108 : ticksShifted = Int64ShrlMod32(*(DWORDLONG*)&ticks,dwLog);
// 109 : tickSecShifted = Int64ShrlMod32(*(DWORDLONG*)&ticksPerSecond,dwLog);
// 110 :
// 111 : }
// 112 :
// 113 : dwRet = (DWORD)((((DWORD)ticksShifted)*1000)/(DWORD)(tickSecShifted));
// 114 : dwRet *=1;
{ .mmi //R-Addr: 0X0150
adds r28=beginTime64$, sp //103 cc:0
adds r27=endTime64$, sp //103 cc:0
adds r37=ticks$, sp;; //103 cc:0
}
{ .mmb //R-Addr: 0X0160
ld8 r39=[r28] //103 cc:1
ld8 r38=[r27] //103 cc:1
br.call.sptk.few b0=MyDoMinus64#;; //103 cc:1
}
{ .mib //R-Addr: 0X0170
addl r26=@gprel(__imp_QueryPerformanceFrequency#),gp //104 cc:0
adds r37=ticksPerSecond$, sp //104 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0180
ld8 r25=[r26];; //104 cc:1
ld8 r22=[r25], 8 //104 cc:3
nop.i 0;;
}
{ .mib //R-Addr: 0X0190
ld8 gp=[r25] //104 cc:4
mov b6=r22 //104 cc:4
br.call.dptk.many b0=b6;; //104 cc:4
}
{ .mmi //R-Addr: 0X01a0
mov gp=r36;; //104 cc:15
adds r21=ticks$, sp //108 cc:0
adds r19=dwLog$, sp //108 cc:0
}
{ .mmi //R-Addr: 0X01b0
adds r16=ticksShifted$, sp;; //108 cc:0
ld8 r20=[r21] //108 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X01c0
ld4 r18=[r19];; //108 cc:1
nop.m 0
shr.u r17=r20, r18;; //108 cc:3
}
{ .mmi //R-Addr: 0X01d0
st8 [r16]=r17;; //108 cc:6
adds r15=ticksPerSecond$, sp //109 cc:0
adds r10=dwLog$, sp //109 cc:0
}
{ .mmi //R-Addr: 0X01e0
adds r31=tickSecShifted$, sp;; //109 cc:0
ld8 r11=[r15] //109 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X01f0
ld4 r9=[r10];; //109 cc:1
nop.m 0
shr.u r8=r11, r9;; //109 cc:3
}
{ .mmi //R-Addr: 0X0200
st8 [r31]=r8;; //109 cc:6
adds r30=ticksShifted$, sp //113 cc:0
mov r28=1000 //113 cc:0, 000003e8H
}
{ .mmi //R-Addr: 0X0210
adds r26=tickSecShifted$, sp //113 cc:0
mov r20=65501 //113 cc:0, 0000ffddH
adds r18=dwRet$, sp;; //113 cc:0
}
{ .mmb //R-Addr: 0X0220
ld8 r29=[r30] //113 cc:1
ld8 r25=[r26] //113 cc:1
nop.b 0
}
{ .mmb //R-Addr: 0X0230
setf.sig f7=r28 //113 cc:1
setf.exp f13=r20 //113 cc:1
nop.b 0;;
}
{ .mii //R-Addr: 0X0240
setf.sig f6=r29 //113 cc:2
zxt4 r21=r25;; //113 cc:2
cmp.eq.unc p15,p0=0, r21 //113 cc:3
}
{ .mmi //R-Addr: 0X0250
setf.sig f10=r21;; //113 cc:3
(p15) break.m 1 //113 cc:4
nop.i 0;;
}
{ .mfb //R-Addr: 0X0260
nop.m 0
xma.lu f8=f6, f7, f0 //113 cc:8
nop.b 0;;
}
{ .mfb //R-Addr: 0X0270
nop.m 0
fcvt.xuf.s1 f12=f10 //113 cc:9
nop.b 0;;
}
{ .mmi //R-Addr: 0X0280
getf.sig r27=f8;; //113 cc:12
nop.m 0
zxt4 r22=r27;; //113 cc:17
}
{ .mmb //R-Addr: 0X0290
setf.sig f9=r22 //113 cc:18
nop.m 0
nop.b 0;;
}
{ .mfb //R-Addr: 0X02a0
nop.m 0
fcvt.xuf.s1 f11=f9 //113 cc:24
nop.b 0;;
}
{ .mfb //R-Addr: 0X02b0
nop.m 0
frcpa.s1 f14,p6=f11, f12 //113 cc:28
nop.b 0;;
}
{ .mfb //R-Addr: 0X02c0
nop.m 0
(p6) fma.s1 f11=f11, f14, f0 //113 cc:32
nop.b 0
}
{ .mfb //R-Addr: 0X02d0
nop.m 0
(p6) fnma.s1 f12=f12, f14, f1 //113 cc:32
nop.b 0;;
}
{ .mfb //R-Addr: 0X02e0
nop.m 0
(p6) fma.s1 f11=f12, f11, f11 //113 cc:36
nop.b 0
}
{ .mfb //R-Addr: 0X02f0
nop.m 0
(p6) fma.s1 f12=f12, f12, f13 //113 cc:36
nop.b 0;;
}
{ .mfb //R-Addr: 0X0300
nop.m 0
(p6) fma.s1 f14=f12, f11, f11, f14 //113 cc:40
nop.b 0;;
}
{ .mfb //R-Addr: 0X0310
nop.m 0
fcvt.fxu.trunc.s1 f11=f14, f11 //113 cc:44
nop.b 0;;
}
{ .mmi //R-Addr: 0X0320
getf.sig r19=f11;; //113 cc:48
st4 [r18]=r19 //113 cc:53
nop.i 0;;
}
{ .mib //R-Addr: 0X0330
adds r17=dwRet$, sp //114 cc:0
adds r15=dwRet$, sp //114 cc:0
nop.b 0;;
}
{ .mmi //R-Addr: 0X0340
ld4 r16=[r17];; //114 cc:1
st4 [r15]=r16 //114 cc:2
nop.i 0;;
}
$LN1@GetMsecSin:
// 115 : }
// 116 : return dwRet;
// 117 : }
{ .mmi //R-Addr: 0X0350
adds r11=dwRet$, sp;; //116 cc:0
ld4 r8=[r11] //116 cc:1
nop.i 0;;
}
{ .mii //R-Addr: 0X0360
adds sp=80, sp //117 cc:0, 00000050H
mov.ret b0=r34;; //117 cc:0
mov.i ar.pfs=r35 //117 cc:1
}
{ .mmb //R-Addr: 0X0370
nop.m 0
nop.m 0
br.ret.sptk.many b0;; //117 cc:1
}
// End code for function:
.endp GetMsecSincePerfCounter#
.type ReadFileMemory# ,@function
.global ReadFileMemory#
.type __imp_fclose# ,@function
.global __imp_fclose#
.type __imp_fread# ,@function
.global __imp_fread#
.type __imp_malloc# ,@function
.global __imp_malloc#
.type __imp_ftell# ,@function
.global __imp_ftell#
.type __imp_fseek# ,@function
.global __imp_fseek#
.type __imp_fopen# ,@function
.global __imp_fopen#
.section .pdata
$T80468: data4 @imagerel($LN7@ReadFileMe#)
data4 @imagerel($LN7@ReadFileMe#+1056)
data4 @imagerel($T80466#)
.section .xdata
.skip 8
$T80466: data2 03H
data2 00H
data4 03H
string "\x0d" //R1:prologue size 13
string "\xe6\x00" //P7:pfs_when time 0
string "\xb1\x24" //P3:pfs_gr 36
string "\xe0\x01\x06" //P7:mem_stack_f time 1 size 6
string "\xe4\x02" //P7:rp_when time 2
string "\xb0\xa3" //P3:rp_gr 35
string "\x61\xb9\x01" //R3:body size 185
string "\x81" //B1:label_state 1
string "\xc0\x05" //B2:ecount 0 time 5
string "\x00\x00\x00\x00\x00\x00" //padding
// Function compile flags: /Odtp
.section .text
// Begin code for function: ReadFileMemory:
.proc ReadFileMemory#
.align 32
retVal$ = 16
stream$ = 24
ptr$ = 32
$T80462 = 40
$T80463 = 48
$T80464 = 56
$T80465 = 64
filename$ = 80
plFileSize$ = 88
pFilePtr$ = 96
ReadFileMemory:
// filename$ = r32
// plFileSize$ = r33
// pFilePtr$ = r34
// Output regs: r38-r41
$LN7@ReadFileMe:
// 120 : {
// 121 : FILE* stream;
// 122 : void* ptr;
// 123 : int retVal=1;
// 124 : stream=fopen(filename, "rb");
// 125 : if (stream==NULL)
{ .mmi //R-Addr: 0X00
alloc r36=3, 3, 4, 0 //120 cc:0
adds sp=-96, sp //120 cc:0, ffffffa0H
mov r35=b0 //120 cc:0
}
{ .mmi //R-Addr: 0X010
mov r37=gp;; //120 cc:0
ld8.nta r2=[sp] //120 cc:1
adds r31=filename$, sp
}
{ .mib //R-Addr: 0X020
adds r30=plFileSize$, sp
adds r29=pFilePtr$, sp
nop.b 0;;
}
{ .mmb //R-Addr: 0X030
st8 [r31]=r32
st8 [r30]=r33
nop.b 0;;
}
{ .mmi //R-Addr: 0X040
st8 [r29]=r34;;
mov r28=1 //123 cc:0
adds r27=retVal$, sp;; //123 cc:0
}
{ .mmi //R-Addr: 0X050
st4 [r27]=r28;; //123 cc:1
addl r25=@gprel(__imp_fopen#),gp //124 cc:0
addl r39=@gprel($SG80305#),gp //124 cc:0
}
{ .mmi //R-Addr: 0X060
adds r26=filename$, sp;; //124 cc:0
ld8 r22=[r25] //124 cc:1
nop.i 0
}
{ .mmi //R-Addr: 0X070
ld8 r38=[r26];; //124 cc:1
ld8 r21=[r22], 8 //124 cc:3
nop.i 0;;
}
{ .mib //R-Addr: 0X080
ld8 gp=[r22] //124 cc:4
mov b6=r21 //124 cc:4
br.call.dptk.many b0=b6;; //124 cc:4
}
{ .mmi //R-Addr: 0X090
adds r20=$T80462, sp //124 cc:15
adds r19=$T80462, sp //124 cc:15
adds r17=stream$, sp //124 cc:15
}
{ .mmi //R-Addr: 0X0a0
mov gp=r37;; //124 cc:15
st8 [r20]=r8 //124 cc:16
nop.i 0
}
{ .mmi //R-Addr: 0X0b0
ld8 r18=[r19];; //124 cc:16
st8 [r17]=r18 //124 cc:17
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -