avoid null pointer on machine check printf's
[unix-history] / usr / src / sys / tahoe / math / Kfrexpd.s
CommitLineData
9d1834ba 1/* Kfrexpd.s 1.3 86/01/05 */
2b252132 2
9d1834ba 3#include "../tahoe/SYS.h"
2b252132 4
44dea9c1 5 .text
2b252132 6ENTRY(Kfrexpd, 0)
44dea9c1
SL
7 subl3 $60,fp,sp
8 clrl -60(fp)
9 clrl -56(fp)
10 tstl 4(fp)
2b252132 11 jgeq 1f
44dea9c1
SL
12 lnd 4(fp)
13 std 4(fp)
14 movl $1,-56(fp)
2b252132
SL
151:
16 cmpd2 4(fp),one
17 jleq 1f
182:
19 cmpd2 4(fp),one
20 jleq 3f
44dea9c1
SL
21 addl2 $1,-60(fp)
22 pushl 16(fp) # hfs
2b252132
SL
23 pushl two+4 # ldd 2.0
24 pushl two
44dea9c1
SL
25 pushl 8(fp)
26 pushl 4(fp) # acc
27 callf $24,_Kdivd
28 ldd r0
29 std 4(fp)
2b252132
SL
30 jbr 2b
311: cmpd2 4(fp),half
32 jlss 2f
33 jbr 3f
340:
44dea9c1
SL
35 subl2 $1,-60(fp)
36 pushl 16(fp) # hfs
2b252132
SL
37 ldd two; pushd # 2.0
38 ldd 4(fp); pushd # acc
44dea9c1
SL
39 callf $24,_Kmuld
40 ldd r0
41 std 4(fp)
2b252132
SL
422:
43 cmpd2 4(fp),half
44 jlss 0b
453: movl -60(fp),*12(fp)
44dea9c1 46 tstl -56(fp)
2b252132 47 jeql 1f
44dea9c1
SL
48 lnd 4(fp)
49 std 4(fp)
2b252132
SL
501:
51 movl 8(fp),r1
44dea9c1
SL
52 movl 4(fp),r0
53 ret
2b252132
SL
54 .data
55 .align 2
56one: .long 0x40800000, 0x00000000 # .double 1
57two: .long 0x41000000, 0x00000000 # .double 2
58half: .long 0x40000000, 0x00000000 # .double 0.5