Commit | Line | Data |
---|---|---|
9d1834ba | 1 | /* Kfrexpd.s 1.3 86/01/05 */ |
2b252132 | 2 | |
9d1834ba | 3 | #include "../tahoe/SYS.h" |
2b252132 | 4 | |
44dea9c1 | 5 | .text |
2b252132 | 6 | ENTRY(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 |
15 | 1: |
16 | cmpd2 4(fp),one | |
17 | jleq 1f | |
18 | 2: | |
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 |
31 | 1: cmpd2 4(fp),half | |
32 | jlss 2f | |
33 | jbr 3f | |
34 | 0: | |
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 |
42 | 2: |
43 | cmpd2 4(fp),half | |
44 | jlss 0b | |
45 | 3: 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 |
50 | 1: |
51 | movl 8(fp),r1 | |
44dea9c1 SL |
52 | movl 4(fp),r0 |
53 | ret | |
2b252132 SL |
54 | .data |
55 | .align 2 | |
56 | one: .long 0x40800000, 0x00000000 # .double 1 | |
57 | two: .long 0x41000000, 0x00000000 # .double 2 | |
58 | half: .long 0x40000000, 0x00000000 # .double 0.5 |