⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 paranoia.sbk

📁 3D 游戏界的大牛人 John Carmack 终于放出了 Q3 的源代码
💻 SBK
📖 第 1 页 / 共 5 页
字号:
.L306:
.L304:
.L302:
.L300:
.L297:
set StickyBit,%l3
ld2 [%l3],%f30
set One,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbne .L314; nop
set .L316,%o0
call printf; nop
ba .L315; nop
.L314:
set .L317,%o0
call printf; nop
.L315:
set 3,%o0
set GMult,%l2
ld [%l2],%l2
cmp %l2,%g0; be .L320; nop
set GDiv,%l2
ld [%l2],%l2
cmp %l2,%g0; be .L320; nop
set GAddSub,%l2
ld [%l2],%l2
cmp %l2,%g0; be .L320; nop
set RMult,%l2
ld [%l2],%l2
cmp %l2,%g0; be .L320; nop
set RDiv,%l2
ld [%l2],%l2
cmp %l2,%g0; be .L320; nop
set RAddSub,%l2
ld [%l2],%l2
cmp %l2,%g0; be .L320; nop
set 1,%l3
st %l3,[%fp+-48]
ba .L321; nop
.L320:
st %g0,[%fp+-48]
.L321:
ld [%fp+-48],%o1
set .L319,%o2
call TstCond; nop
set Milestone,%l3
set 60,%l2
st %l2,[%l3]
set .L45,%o0
call printf; nop
set .L322,%o0
call printf; nop
set .L323,%o0
set NoTrials,%l3
ld [%l3],%o1
call printf; nop
set .L324,%l3
ld2 [%l3],%f30
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call sqrt; nop
fmovs %f0,%f30; fmovs %f1,%f31
set Random9,%l3
st2 %f30,[%l3]
set Random1,%l3
set Third,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
set I,%l3
set 1,%l2
st %l2,[%l3]
.L325:
call Random; nop
fmovs %f0,%f30; fmovs %f1,%f31
set X,%l3
st2 %f30,[%l3]
call Random; nop
fmovs %f0,%f30; fmovs %f1,%f31
set Y,%l3
st2 %f30,[%l3]
set Z9,%l3
set Y,%l2
ld2 [%l2],%f30
set X,%l2
ld2 [%l2],%f28
fmuld %f30,%f28,%f26
st2 %f26,[%l3]
set Z,%l2
fmuld %f28,%f30,%f30
st2 %f30,[%l2]
ld2 [%l2],%f30
ld2 [%l3],%f28
fsubd %f30,%f28,%f30
st2 %f30,[%l3]
set I,%l3
ld [%l3],%l2
add %l2,1,%l2
st %l2,[%l3]
.L326:
set I,%l3
ld [%l3],%l3
set NoTrials,%l2
ld [%l2],%l2
cmp %l3,%l2; bg .L328; nop
set Z9,%l3
ld2 [%l3],%f30
set Zero,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbue .L325; nop
.L328:
set I,%l3
ld [%l3],%l3
set NoTrials,%l2
ld [%l2],%l2
cmp %l3,%l2; bne .L329; nop
set Random1,%l3
set One,%l2
ld2 [%l2],%f30
set Half,%l2
ld2 [%l2],%f28
set Three,%l2
ld2 [%l2],%f26
fdivd %f28,%f26,%f28
faddd %f30,%f28,%f28
st2 %f28,[%l3]
set Random2,%l2
set U2,%l1
ld2 [%l1],%f26
set U1,%l1
ld2 [%l1],%f24
faddd %f26,%f24,%f26
faddd %f26,%f30,%f30
st2 %f30,[%l2]
ld2 [%l3],%f26
ld2 [%l2],%f24
set Z,%l3
fmuld %f26,%f24,%f22
st2 %f22,[%l3]
set Y,%l3
fmuld %f24,%f26,%f26
st2 %f26,[%l3]
fmuld %f28,%f30,%f30
set Z9,%l3
fsubd %f30,%f30,%f30
st2 %f30,[%l3]
.L329:
set I,%l3
ld [%l3],%l3
set NoTrials,%l2
ld [%l2],%l2
cmp %l3,%l2; be .L331; nop
set Z9,%l3
ld2 [%l3],%f30
set Zero,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbue .L331; nop
set 2,%o0
set .L333,%o1
call BadCond; nop
ba .L332; nop
.L331:
set .L334,%o0
set NoTrials,%l3
ld [%l3],%o1
call printf; nop
.L332:
set Milestone,%l3
set 70,%l2
st %l2,[%l3]
set .L335,%o0
call printf; nop
set Zero,%l3
ld2 [%l3],%f30
std %f30,[%fp+-64]
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call sqrt; nop
fmovs %f0,%f30; fmovs %f1,%f31
ldd [%fp+-64],%f28
fcmped %f28,%f30; nop; fbne .L338; nop
set Zero,%l3
ld2 [%l3],%f30
fnegs %f30,%f30; fmovs %f31,%f31
std %f30,[%fp+-72]
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call sqrt; nop
fmovs %f0,%f30; fmovs %f1,%f31
ldd [%fp+-72],%f28
fcmped %f28,%f30; nop; fbne .L338; nop
set One,%l3
ld2 [%l3],%f30
std %f30,[%fp+-80]
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call sqrt; nop
fmovs %f0,%f30; fmovs %f1,%f31
ldd [%fp+-80],%f28
fcmped %f28,%f30; nop; fbne .L338; nop
set 1,%l3
st %l3,[%fp+-52]
ba .L339; nop
.L338:
st %g0,[%fp+-52]
.L339:
mov %g0,%o0
ld [%fp+-52],%o1
set .L337,%o2
call TstCond; nop
set Zero,%l3
ld2 [%l3],%f30
set MinSqEr,%l3
st2 %f30,[%l3]
set MaxSqEr,%l3
st2 %f30,[%l3]
set J,%l3
st2 %f30,[%l3]
set X,%l3
set Radix,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
set OneUlp,%l3
set U2,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
set 1,%o0
call SqXMinX; nop
set BInvrse,%l3
ld2 [%l3],%f30
set X,%l3
st2 %f30,[%l3]
set OneUlp,%l3
set U1,%l2
ld2 [%l2],%f28
fmuld %f30,%f28,%f30
st2 %f30,[%l3]
set 1,%o0
call SqXMinX; nop
set U1,%l3
ld2 [%l3],%f30
set X,%l3
st2 %f30,[%l3]
set OneUlp,%l3
fmuld %f30,%f30,%f30
st2 %f30,[%l3]
set 1,%o0
call SqXMinX; nop
set J,%l3
ld2 [%l3],%f30
set Zero,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbue .L340; nop
call Pause; nop
.L340:
set .L342,%o0
set NoTrials,%l3
ld [%l3],%o1
call printf; nop
set J,%l3
set Zero,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
set X,%l3
set Two,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
set Radix,%l3
ld2 [%l3],%f30
set Y,%l3
st2 %f30,[%l3]
set One,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbue .L343; nop
.L345:
set Y,%l3
ld2 [%l3],%f30
set X,%l2
st2 %f30,[%l2]
set Radix,%l2
ld2 [%l2],%f28
fmuld %f28,%f30,%f30
st2 %f30,[%l3]
.L346:
set Y,%l3
ld2 [%l3],%f30
set X,%l3
ld2 [%l3],%f28
fsubd %f30,%f28,%f30
set NoTrials,%l3
ld [%l3],%l3
st %l3,[%sp+64]; ld [%sp+64],%f28; fitod %f28,%f28
fcmped %f30,%f28; nop; fbul .L345; nop
.L343:
set OneUlp,%l3
set X,%l2
ld2 [%l2],%f30
set U2,%l2
ld2 [%l2],%f28
fmuld %f30,%f28,%f30
st2 %f30,[%l3]
set I,%l3
set 1,%l2
st %l2,[%l3]
ba .L349; nop
.L348:
set X,%l3
ld2 [%l3],%f30
set One,%l2
ld2 [%l2],%f28
faddd %f30,%f28,%f30
st2 %f30,[%l3]
set 2,%o0
call SqXMinX; nop
set J,%l3
ld2 [%l3],%f30
set Zero,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbule .L351; nop
ba .L350; nop
.L351:
set I,%l3
ld [%l3],%l2
add %l2,1,%l2
st %l2,[%l3]
.L349:
set I,%l3
ld [%l3],%l3
set NoTrials,%l2
ld [%l2],%l2
cmp %l3,%l2; ble .L348; nop
.L350:
set .L353,%o0
call printf; nop
set I,%l3
set -1,%l2
st %l2,[%l3]
set X,%l3
set BMinusU2,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
set Radix,%l3
ld2 [%l3],%f30
set Y,%l3
st2 %f30,[%l3]
set Z,%l3
set U2,%l2
ld2 [%l2],%f28
fmuld %f30,%f28,%f28
faddd %f30,%f28,%f30
st2 %f30,[%l3]
set NotMonot,%l2
st %g0,[%l2]
set Monot,%l2
st %g0,[%l2]
ba .L355; nop
.L354:
set I,%l3
ld [%l3],%l2
add %l2,1,%l2
st %l2,[%l3]
set X,%l3
ld2 [%l3],%f30
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call sqrt; nop
fmovs %f0,%f30; fmovs %f1,%f31
st2 %f30,[%l3]
set Y,%l3
ld2 [%l3],%f30
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call sqrt; nop
fmovs %f0,%f30; fmovs %f1,%f31
set Q,%l3
st2 %f30,[%l3]
set Z,%l3
ld2 [%l3],%f30
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call sqrt; nop
fmovs %f0,%f30; fmovs %f1,%f31
st2 %f30,[%l3]
set Q,%l3
ld2 [%l3],%f30
set X,%l3
ld2 [%l3],%f28
fcmped %f28,%f30; nop; fbug .L359; nop
set Z,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbule .L357; nop
.L359:
set NotMonot,%l3
set 1,%l2
st %l2,[%l3]
ba .L358; nop
.L357:
set Q,%l3
ld2 [%l3],%f30
set Half,%l2
ld2 [%l2],%f28
faddd %f30,%f28,%f30
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call floor; nop
fmovs %f0,%f30; fmovs %f1,%f31
st2 %f30,[%l3]
set I,%l3
ld [%l3],%l3
cmp %l3,0; bg .L362; nop
set Q,%l3
ld2 [%l3],%f30
set Radix,%l3
ld2 [%l3],%f28
fmuld %f30,%f30,%f30
fcmped %f28,%f30; nop; fbne .L360; nop
.L362:
set Monot,%l3
set 1,%l2
st %l2,[%l3]
ba .L361; nop
.L360:
set I,%l3
ld [%l3],%l3
cmp %l3,0; ble .L363; nop
set I,%l3
ld [%l3],%l3
cmp %l3,1; ble .L365; nop
set Monot,%l3
set 1,%l2
st %l2,[%l3]
ba .L364; nop
.L365:
set Y,%l3
ld2 [%l3],%f30
set BInvrse,%l2
ld2 [%l2],%f28
fmuld %f30,%f28,%f30
st2 %f30,[%l3]
ld2 [%l3],%f30
set U1,%l3
ld2 [%l3],%f28
set X,%l3
fsubd %f30,%f28,%f26
st2 %f26,[%l3]
set Z,%l3
faddd %f30,%f28,%f30
st2 %f30,[%l3]
ba .L364; nop
.L363:
set Y,%l3
set Q,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
ld2 [%l3],%f30
set U2,%l3
ld2 [%l3],%f28
set X,%l3
fsubd %f30,%f28,%f26
st2 %f26,[%l3]
set Z,%l3
faddd %f30,%f28,%f30
st2 %f30,[%l3]
.L364:
.L361:
.L358:
.L355:
set NotMonot,%l2
ld [%l2],%l2
cmp %l2,%g0; bne .L367; nop
set Monot,%l2
ld [%l2],%l2
cmp %l2,%g0; be .L354; nop
.L367:
set Monot,%l3
ld [%l3],%l3
cmp %l3,0; be .L368; nop
set .L370,%o0
call printf; nop
ba .L369; nop
.L368:
set 2,%o0
set .L158,%o1
call BadCond; nop
set .L371,%o0
set Y,%l3
ld2 [%l3],%f30
st %f30,[%sp+4*1+68]
st %f31,[%sp+4*2+68]
ld [%sp+4*1+68],%o1
ld [%sp+4*2+68],%o2
call printf; nop
.L369:
set Milestone,%l3
set 80,%l2
st %l2,[%l3]
set MinSqEr,%l3
set Half,%l2
ld2 [%l2],%f30
ld2 [%l3],%f28
faddd %f28,%f30,%f28
st2 %f28,[%l3]
set MaxSqEr,%l3
ld2 [%l3],%f28
fsubd %f28,%f30,%f30
st2 %f30,[%l3]
set One,%l3
ld2 [%l3],%f30
set U2,%l3
ld2 [%l3],%f28
faddd %f30,%f28,%f30
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call sqrt; nop
fmovs %f0,%f30; fmovs %f1,%f31
set One,%l3
ld2 [%l3],%f28
set U2,%l3
ld2 [%l3],%f26
set Y,%l3
fsubd %f30,%f28,%f30
fdivd %f30,%f26,%f30
st2 %f30,[%l3]
set SqEr,%l3
set Y,%l2
ld2 [%l2],%f30
fsubd %f30,%f28,%f30
set Eight,%l2
ld2 [%l2],%f28
fdivd %f26,%f28,%f28
faddd %f30,%f28,%f30
st2 %f30,[%l3]
ld2 [%l3],%f30
set MaxSqEr,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbule .L372; nop
set MaxSqEr,%l3
set SqEr,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
.L372:
set SqEr,%l3
set Y,%l2
ld2 [%l2],%f30
set U2,%l2
ld2 [%l2],%f28
set Eight,%l2
ld2 [%l2],%f26
fdivd %f28,%f26,%f28
faddd %f30,%f28,%f30
st2 %f30,[%l3]
ld2 [%l3],%f30
set MinSqEr,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbuge .L374; nop
set MinSqEr,%l3
set SqEr,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
.L374:
set F9,%l3
ld2 [%l3],%f30
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call sqrt; nop
fmovs %f0,%f30; fmovs %f1,%f31
set U2,%l3
ld2 [%l3],%f28
set U1,%l3
ld2 [%l3],%f26
set Y,%l3
fsubd %f30,%f28,%f30
set One,%l2
ld2 [%l2],%f24
fsubd %f24,%f28,%f28
fsubd %f30,%f28,%f30
fdivd %f30,%f26,%f30
st2 %f30,[%l3]
set SqEr,%l3
set Y,%l2
ld2 [%l2],%f30
set Eight,%l2
ld2 [%l2],%f28
fdivd %f26,%f28,%f28
faddd %f30,%f28,%f30
st2 %f30,[%l3]
ld2 [%l3],%f30
set MaxSqEr,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbule .L376; nop
set MaxSqEr,%l3
set SqEr,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
.L376:
set SqEr,%l3
set Y,%l2
ld2 [%l2],%f30
set One,%l2
ld2 [%l2],%f28
faddd %f30,%f28,%f30
set U1,%l2
ld2 [%l2],%f28
set Eight,%l2
ld2 [%l2],%f26
fdivd %f28,%f26,%f28
faddd %f30,%f28,%f30
st2 %f30,[%l3]
ld2 [%l3],%f30
set MinSqEr,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbuge .L378; nop
set MinSqEr,%l3
set SqEr,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
.L378:
set OneUlp,%l3
set U2,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
set X,%l2
ld2 [%l3],%f30
st2 %f30,[%l2]
set Indx,%l3
set 1,%l2
st %l2,[%l3]
.L380:
set X,%l3
ld2 [%l3],%f30
set U1,%l3
ld2 [%l3],%f28
faddd %f30,%f28,%f28
faddd %f28,%f30,%f30
set F9,%l3
ld2 [%l3],%f28
faddd %f30,%f28,%f30
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call sqrt; nop
fmovs %f0,%f30; fmovs %f1,%f31
set Y,%l3
st2 %f30,[%l3]
set Y,%l3
set U2,%l2
ld2 [%l2],%f30
set X,%l2
ld2 [%l2],%f28
set OneUlp,%l2
ld2 [%l2],%f26
ld2 [%l3],%f24
fsubd %f24,%f30,%f24
set One,%l2
ld2 [%l2],%f22
fsubd %f22,%f30,%f30
faddd %f30,%f28,%f30
fsubd %f24,%f30,%f30
fdivd %f30,%f26,%f30
st2 %f30,[%l3]
set Z,%l2
set Half,%l1
ld2 [%l1],%f30
set U1,%l1
ld2 [%l1],%f24
fsubd %f24,%f28,%f24
set F9,%l1
ld2 [%l1],%f22
faddd %f24,%f22,%f24
fmuld %f24,%f30,%f24
fmuld %f24,%f28,%f24
fmuld %f24,%f28,%f28
fdivd %f28,%f26,%f28
st2 %f28,[%l2]
set SqEr,%l1
ld2 [%l3],%f28
faddd %f28,%f30,%f30
ld2 [%l2],%f28
faddd %f30,%f28,%f30
st2 %f30,[%l1]
ld2 [%l1],%f30
set MinSqEr,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbuge .L384; nop
set MinSqEr,%l3
set SqEr,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
.L384:
set SqEr,%l3
set Y,%l2
ld2 [%l2],%f30
set Half,%l2
ld2 [%l2],%f28
fsubd %f30,%f28,%f30
set Z,%l2
ld2 [%l2],%f28
faddd %f30,%f28,%f30
st2 %f30,[%l3]
ld2 [%l3],%f30
set MaxSqEr,%l3
ld2 [%l3],%f28
fcmped %f30,%f28; nop; fbule .L386; nop
set MaxSqEr,%l3
set SqEr,%l2
ld2 [%l2],%f30
st2 %f30,[%l3]
.L386:
set Indx,%l3
ld [%l3],%l3
cmp %l3,1; be .L390; nop
cmp %l3,3; bne .L388; nop
.L390:
set X,%l3
ld2 [%l3],%f30
st %f30,[%sp+4*0+68]
st %f31,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call Sign; nop
fmovs %f0,%f30; fmovs %f1,%f31
std %f30,[%fp+-88]
set OneUlp,%l2
ld2 [%l2],%f28
st %f28,[%sp+4*0+68]
st %f29,[%sp+4*1+68]
ld [%sp+4*0+68],%o0
ld [%sp+4*1+68],%o1
call sqrt; nop
fmovs %f0,%f30; fmovs %f1,%f31
set Eight,%l2
ld2 [%l2],%f28
set Nine,%l2
ld2 [%l2],%f26
fmuld %f26,%f30,%f30
fdivd %f28,%f30,%f30
st %f30,[%sp+4*0+68]
st %f31,[%sp+4

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -