📄 paranoia.sbk
字号:
.section ".data"
.global Zero
.type Zero,#object
.size Zero,8
.align 8
Zero:
.word 0x0
.word 0x0
.global Half
.type Half,#object
.size Half,8
.align 8
Half:
.word 0x3fe00000
.word 0x0
.global One
.type One,#object
.size One,8
.align 8
One:
.word 0x3ff00000
.word 0x0
.global Two
.type Two,#object
.size Two,8
.align 8
Two:
.word 0x40000000
.word 0x0
.global Three
.type Three,#object
.size Three,8
.align 8
Three:
.word 0x40080000
.word 0x0
.global Four
.type Four,#object
.size Four,8
.align 8
Four:
.word 0x40100000
.word 0x0
.global Five
.type Five,#object
.size Five,8
.align 8
Five:
.word 0x40140000
.word 0x0
.global Eight
.type Eight,#object
.size Eight,8
.align 8
Eight:
.word 0x40200000
.word 0x0
.global Nine
.type Nine,#object
.size Nine,8
.align 8
Nine:
.word 0x40220000
.word 0x0
.global TwentySeven
.type TwentySeven,#object
.size TwentySeven,8
.align 8
TwentySeven:
.word 0x403b0000
.word 0x0
.global ThirtyTwo
.type ThirtyTwo,#object
.size ThirtyTwo,8
.align 8
ThirtyTwo:
.word 0x40400000
.word 0x0
.global TwoForty
.type TwoForty,#object
.size TwoForty,8
.align 8
TwoForty:
.word 0x406e0000
.word 0x0
.global MinusOne
.type MinusOne,#object
.size MinusOne,8
.align 8
MinusOne:
.word 0xbff00000
.word 0x0
.global OneAndHalf
.type OneAndHalf,#object
.size OneAndHalf,8
.align 8
OneAndHalf:
.word 0x3ff80000
.word 0x0
.global NoTrials
.type NoTrials,#object
.size NoTrials,4
.align 4
NoTrials:
.word 0x14
.global sigfpe
.section ".text"
.align 4
sigfpe:
save %sp,-96,%sp
set fpecount,%i5
ld [%i5],%i4
add %i4,1,%i4
st %i4,[%i5]
set .L3,%o0
call printf; nop
set __iob+16,%o0
call fflush; nop
set sigsave,%i5
ld [%i5],%i5
cmp %i5,%g0; be .L5; nop
set 8,%o0
set sigsave,%i5
ld [%i5],%o1
call signal; nop
set sigsave,%i5
st %g0,[%i5]
set ovfl_buf,%o0
set 1,%o1
call longjmp; nop
.L5:
call abort; nop
.L2:
ret; restore
.type sigfpe,#function
.size sigfpe,.-sigfpe
.section ".data"
.type .758,#object
.align 4
.758:
.word .L759
.word .L760
.word .L761
.word .L762
.size .758,16
.global main
.section ".text"
.align 4
main:
save %sp,-216,%sp
set Zero,%i5
set .L8,%i4
ld [%i4],%f30; ld [%i4+4],%f31
st %f30,[%i5]; st %f31,[%i5+4]
set One,%i5
set .L9,%i4
ld [%i4],%f30; ld [%i4+4],%f31
st %f30,[%i5]; st %f31,[%i5+4]
set Two,%i4
ld [%i5],%f30; ld [%i5+4],%f31
faddd %f30,%f30,%f28
st %f28,[%i4]; st %f29,[%i4+4]
set Three,%i5
ld [%i4],%f28; ld [%i4+4],%f29
faddd %f28,%f30,%f26
st %f26,[%i5]; st %f27,[%i5+4]
set Four,%i4
ld [%i5],%f26; ld [%i5+4],%f27
faddd %f26,%f30,%f24
st %f24,[%i4]; st %f25,[%i4+4]
set Five,%i5
ld [%i4],%f24; ld [%i4+4],%f25
faddd %f24,%f30,%f22
st %f22,[%i5]; st %f23,[%i5+4]
set Eight,%i4
faddd %f24,%f24,%f22
st %f22,[%i4]; st %f23,[%i4+4]
set Nine,%i3
fmuld %f26,%f26,%f22
st %f22,[%i3]; st %f23,[%i3+4]
set TwentySeven,%i2
ld [%i3],%f22; ld [%i3+4],%f23
fmuld %f22,%f26,%f22
st %f22,[%i2]; st %f23,[%i2+4]
set ThirtyTwo,%i3
ld [%i4],%f22; ld [%i4+4],%f23
fmuld %f24,%f22,%f22
st %f22,[%i3]; st %f23,[%i3+4]
set TwoForty,%i4
ld [%i5],%f22; ld [%i5+4],%f23
fmuld %f24,%f22,%f22
fmuld %f22,%f26,%f26
fmuld %f26,%f24,%f26
st %f26,[%i4]; st %f27,[%i4+4]
set MinusOne,%i5
fnegs %f30,%f26; fmovs %f31,%f27
st %f26,[%i5]; st %f27,[%i5+4]
set Half,%i5
fdivd %f30,%f28,%f28
st %f28,[%i5]; st %f29,[%i5+4]
set OneAndHalf,%i4
ld [%i5],%f28; ld [%i5+4],%f29
faddd %f30,%f28,%f30
st %f30,[%i4]; st %f31,[%i4+4]
set ErrCnt,%i4
st %g0,[%i4]
set ErrCnt+4,%i4
st %g0,[%i4]
set ErrCnt+8,%i5
st %g0,[%i5]
set ErrCnt+12,%i5
st %g0,[%i5]
set PageNo,%i5
set 1,%i4
st %i4,[%i5]
set Milestone,%i5
st %g0,[%i5]
set 8,%o0
set sigfpe,%o1
call signal; nop
call Instructions; nop
call Pause; nop
call Heading; nop
call Pause; nop
call Characteristics; nop
call Pause; nop
call History; nop
call Pause; nop
set Milestone,%i5
set 7,%i4
st %i4,[%i5]
set .L13,%o0
call printf; nop
mov %g0,%o0
set Zero,%i4
ld [%i4],%f30; ld [%i4+4],%f31
faddd %f30,%f30,%f28
fcmpd %f28,%f30; nop; fbne .L16; nop
set One,%i4
ld [%i4],%f28; ld [%i4+4],%f29
fsubd %f28,%f28,%f26
fcmpd %f26,%f30; nop; fbne .L16; nop
fcmpd %f28,%f30; nop; fbule .L16; nop
faddd %f28,%f28,%f30
set Two,%i4
ld [%i4],%f28; ld [%i4+4],%f29
fcmpd %f30,%f28; nop; fbne .L16; nop
set 1,%i5
ba .L17; nop
.L16:
mov %g0,%i5
.L17:
mov %i5,%o1
set .L15,%o2
call TstCond; nop
set Z,%i4
set Zero,%i3
ld [%i3],%f30; ld [%i3+4],%f31
fnegs %f30,%f30; fmovs %f31,%f31
st %f30,[%i4]; st %f31,[%i4+4]
ld [%i4],%f30; ld [%i4+4],%f31
set .L8,%i4
ld [%i4],%f28; ld [%i4+4],%f29
fcmpd %f30,%f28; nop; fbe .L18; nop
set ErrCnt,%i4
ld [%i4],%i3
add %i3,1,%i3
st %i3,[%i4]
set .L20,%o0
call printf; nop
set U1,%i4
set .L21,%i3
ld [%i3],%f30; ld [%i3+4],%f31
st %f30,[%i4]; st %f31,[%i4+4]
set Radix,%i4
set .L9,%i3
ld [%i3],%f30; ld [%i3+4],%f31
st %f30,[%i4]; st %f31,[%i4+4]
call TstPtUf; nop
.L18:
mov %g0,%o0
set Three,%i3
ld [%i3],%f30; ld [%i3+4],%f31
set Two,%i3
ld [%i3],%f28; ld [%i3+4],%f29
set One,%i3
ld [%i3],%f26; ld [%i3+4],%f27
faddd %f28,%f26,%f24
fcmpd %f30,%f24; nop; fbne .L24; nop
set Four,%i3
ld [%i3],%f24; ld [%i3+4],%f25
faddd %f30,%f26,%f22
fcmpd %f24,%f22; nop; fbne .L24; nop
set Zero,%i3
ld [%i3],%f22; ld [%i3+4],%f23
fnegs %f28,%f20; fmovs %f29,%f21
fmuld %f28,%f20,%f28
faddd %f24,%f28,%f28
fcmpd %f28,%f22; nop; fbne .L24; nop
fsubd %f24,%f30,%f30
fsubd %f30,%f26,%f30
fcmpd %f30,%f22; nop; fbne .L24; nop
set 1,%i4
ba .L25; nop
.L24:
mov %g0,%i4
.L25:
mov %i4,%o1
set .L23,%o2
call TstCond; nop
set MinusOne,%i2
ld [%i2],%f30; ld [%i2+4],%f31
std %f30,[%fp+-8]
set One,%i2
ld [%i2],%f28; ld [%i2+4],%f29
set .L8,%i2
ld [%i2],%f26; ld [%i2+4],%f27
fsubd %f26,%f28,%f26
fcmpd %f30,%f26; nop; fbne .L28; nop
set Zero,%i2
ld [%i2],%f26; ld [%i2+4],%f27
faddd %f30,%f28,%f24
fcmpd %f24,%f26; nop; fbne .L28; nop
faddd %f28,%f30,%f24
fcmpd %f24,%f26; nop; fbne .L28; nop
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 fabs; nop
fmovs %f0,%f30; fmovs %f1,%f31
set Zero,%i2
ld [%i2],%f28; ld [%i2+4],%f29
ldd [%fp+-8],%f26
faddd %f26,%f30,%f30
fcmpd %f30,%f28; nop; fbne .L28; nop
set MinusOne,%i2
ld [%i2],%f30; ld [%i2+4],%f31
fmuld %f30,%f30,%f26
faddd %f30,%f26,%f30
fcmpd %f30,%f28; nop; fbne .L28; nop
set 1,%i3
ba .L29; nop
.L28:
mov %g0,%i3
.L29:
mov %g0,%o0
mov %i3,%o1
set .L27,%o2
call TstCond; nop
mov %g0,%o0
set Half,%i1
ld [%i1],%f30; ld [%i1+4],%f31
set MinusOne,%i1
ld [%i1],%f28; ld [%i1+4],%f29
faddd %f30,%f28,%f28
faddd %f28,%f30,%f30
set Zero,%i1
ld [%i1],%f28; ld [%i1+4],%f29
fcmpd %f30,%f28; nop; fbne .L32; nop
set 1,%i2
ba .L33; nop
.L32:
mov %g0,%i2
.L33:
mov %i2,%o1
set .L31,%o2
call TstCond; nop
set Milestone,%i0
set 10,%l7
st %l7,[%i0]
mov %g0,%o0
set Nine,%i0
ld [%i0],%f30; ld [%i0+4],%f31
set Three,%i0
ld [%i0],%f28; ld [%i0+4],%f29
fmuld %f28,%f28,%f26
fcmpd %f30,%f26; nop; fbne .L36; nop
set TwentySeven,%i0
ld [%i0],%f26; ld [%i0+4],%f27
fmuld %f30,%f28,%f30
fcmpd %f26,%f30; nop; fbne .L36; nop
set Eight,%i0
ld [%i0],%f30; ld [%i0+4],%f31
set Four,%i0
ld [%i0],%f28; ld [%i0+4],%f29
faddd %f28,%f28,%f24
fcmpd %f30,%f24; nop; fbne .L36; nop
set ThirtyTwo,%i0
ld [%i0],%f24; ld [%i0+4],%f25
fmuld %f30,%f28,%f30
fcmpd %f24,%f30; nop; fbne .L36; nop
fsubd %f24,%f26,%f30
fsubd %f30,%f28,%f30
set One,%i0
ld [%i0],%f28; ld [%i0+4],%f29
fsubd %f30,%f28,%f30
set Zero,%i0
ld [%i0],%f28; ld [%i0+4],%f29
fcmpd %f30,%f28; nop; fbne .L36; nop
set 1,%i1
ba .L37; nop
.L36:
mov %g0,%i1
.L37:
mov %i1,%o1
set .L35,%o2
call TstCond; nop
mov %g0,%o0
set Five,%l7
ld [%l7],%f30; ld [%l7+4],%f31
set Four,%l7
ld [%l7],%f28; ld [%l7+4],%f29
set One,%l7
ld [%l7],%f26; ld [%l7+4],%f27
faddd %f28,%f26,%f26
fcmpd %f30,%f26; nop; fbne .L40; nop
set TwoForty,%l7
ld [%l7],%f26; ld [%l7+4],%f27
set Three,%l7
ld [%l7],%f24; ld [%l7+4],%f25
fmuld %f28,%f30,%f22
fmuld %f22,%f24,%f22
fmuld %f22,%f28,%f22
fcmpd %f26,%f22; nop; fbne .L40; nop
set Zero,%l7
ld [%l7],%f22; ld [%l7+4],%f23
fdivd %f26,%f24,%f20
fmuld %f28,%f28,%f18
fmuld %f18,%f30,%f18
fsubd %f20,%f18,%f20
fcmpd %f20,%f22; nop; fbne .L40; nop
fdivd %f26,%f28,%f20
fmuld %f30,%f24,%f18
fmuld %f18,%f28,%f18
fsubd %f20,%f18,%f20
fcmpd %f20,%f22; nop; fbne .L40; nop
fdivd %f26,%f30,%f30
fmuld %f28,%f24,%f26
fmuld %f26,%f28,%f28
fsubd %f30,%f28,%f30
fcmpd %f30,%f22; nop; fbne .L40; nop
set 1,%i0
ba .L41; nop
.L40:
mov %g0,%i0
.L41:
mov %i0,%o1
set .L39,%o2
call TstCond; nop
set ErrCnt,%l7
ld [%l7],%l7
cmp %l7,0; bne .L42; nop
set .L44,%o0
call printf; nop
set .L45,%o0
call printf; nop
.L42:
set .L46,%o0
call printf; nop
set W,%l7
set One,%l6
ld [%l6],%f30; ld [%l6+4],%f31
st %f30,[%l7]; st %f31,[%l7+4]
.L47:
set W,%l7
ld [%l7],%f30; ld [%l7+4],%f31
faddd %f30,%f30,%f30
st %f30,[%l7]; st %f31,[%l7+4]
set Y,%l6
ld [%l7],%f30; ld [%l7+4],%f31
set One,%l7
ld [%l7],%f28; ld [%l7+4],%f29
faddd %f30,%f28,%f26
st %f26,[%l6]; st %f27,[%l6+4]
set Z,%l7
ld [%l6],%f26; ld [%l6+4],%f27
fsubd %f26,%f30,%f30
st %f30,[%l7]; st %f31,[%l7+4]
ld [%l7],%f30; ld [%l7+4],%f31
fsubd %f30,%f28,%f30
st %f30,[%l6]; st %f31,[%l6+4]
.L48:
set Y,%l7
ld [%l7],%f30; ld [%l7+4],%f31
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 fabs; nop
fmovs %f0,%f30; fmovs %f1,%f31
set MinusOne,%l7
ld [%l7],%f28; ld [%l7+4],%f29
faddd %f28,%f30,%f30
set Zero,%l7
ld [%l7],%f28; ld [%l7+4],%f29
fcmpd %f30,%f28; nop; fbul .L47; nop
set Precision,%l7
set Zero,%l6
ld [%l6],%f30; ld [%l6+4],%f31
st %f30,[%l7]; st %f31,[%l7+4]
set Y,%l7
set One,%l6
ld [%l6],%f30; ld [%l6+4],%f31
st %f30,[%l7]; st %f31,[%l7+4]
.L50:
set Radix,%l7
set W,%l6
ld [%l6],%f30; ld [%l6+4],%f31
set Y,%l6
ld [%l6],%f28; ld [%l6+4],%f29
faddd %f30,%f28,%f26
st %f26,[%l7]; st %f27,[%l7+4]
faddd %f28,%f28,%f28
st %f28,[%l6]; st %f29,[%l6+4]
ld [%l7],%f28; ld [%l7+4],%f29
fsubd %f28,%f30,%f30
st %f30,[%l7]; st %f31,[%l7+4]
.L51:
set Radix,%l7
ld [%l7],%f30; ld [%l7+4],%f31
set Zero,%l7
ld [%l7],%f28; ld [%l7+4],%f29
fcmpd %f30,%f28; nop; fbe .L50; nop
set Radix,%l7
ld [%l7],%f30; ld [%l7+4],%f31
set Two,%l7
ld [%l7],%f28; ld [%l7+4],%f29
fcmpd %f30,%f28; nop; fbuge .L53; nop
set Radix,%l7
set One,%l6
ld [%l6],%f30; ld [%l6+4],%f31
st %f30,[%l7]; st %f31,[%l7+4]
.L53:
set .L55,%o0
set Radix,%l7
ld [%l7],%f30; ld [%l7+4],%f31
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
set Radix,%l7
ld [%l7],%f30; ld [%l7+4],%f31
set .L9,%l7
ld [%l7],%f28; ld [%l7+4],%f29
fcmpd %f30,%f28; nop; fbe .L56; nop
set W,%l7
set One,%l6
ld [%l6],%f30; ld [%l6+4],%f31
st %f30,[%l7]; st %f31,[%l7+4]
.L58:
set Precision,%l7
set One,%l6
ld [%l6],%f30; ld [%l6+4],%f31
ld [%l7],%f28; ld [%l7+4],%f29
faddd %f28,%f30,%f28
st %f28,[%l7]; st %f29,[%l7+4]
set W,%l7
ld [%l7],%f28; ld [%l7+4],%f29
set Radix,%l6
ld [%l6],%f26; ld [%l6+4],%f27
fmuld %f28,%f26,%f28
st %f28,[%l7]; st %f29,[%l7+4]
set Y,%l6
ld [%l7],%f28; ld [%l7+4],%f29
faddd %f28,%f30,%f30
st %f30,[%l6]; st %f31,[%l6+4]
.L59:
set Y,%l7
ld [%l7],%f30; ld [%l7+4],%f31
set W,%l7
ld [%l7],%f28; ld [%l7+4],%f29
fsubd %f30,%f28,%f30
set One,%l7
ld [%l7],%f28; ld [%l7+4],%f29
fcmpd %f30,%f28; nop; fbe .L58; nop
.L56:
set U1,%l7
set One,%l6
ld [%l6],%f30; ld [%l6+4],%f31
set W,%l6
ld [%l6],%f28; ld [%l6+4],%f29
fdivd %f30,%f28,%f30
st %f30,[%l7]; st %f31,[%l7+4]
ld [%l7],%f30; ld [%l7+4],%f31
set U2,%l7
set Radix,%l6
ld [%l6],%f28; ld [%l6+4],%f29
fmuld %f28,%f30,%f28
st %f28,[%l7]; st %f29,[%l7+4]
set .L61,%o0
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
set .L62,%o0
call printf; nop
set E0,%l7
set Radix,%l6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -