|
|
1.1 ! root 1: /* @(#)exp.s 4.1/4.2 10/31/84 CCI-CPG */ ! 2: ! 3: ! 4: /* ! 5: Double-precision exponential function recoded with ! 6: new algorithm polynomial at CCI-CPG. ! 7: ! 8: The coefficients are #1067 from Hart and etc. (18.08D) ! 9: */ ! 10: .data ! 11: .comm _errno,4 ! 12: .align 2 ! 13: _p0: .long 0x45bd3d04, 0x7f734dbd # .double 1513.9067990543389 ! 14: .align 2 ! 15: _p1: .long 0x42a19dd4, 0x989f60db # .double 20.202065651286927 ! 16: .align 2 ! 17: _p2: .long 0x3dbd2e42, 0xab70bdab # .double 0.023093347753750234 ! 18: .align 2 ! 19: _q0: .long 0x468881b1, 0x7c3a652b # .double 4368.2116627275585 ! 20: .align 2 ! 21: _q1: .long 0x44692f28, 0x7ae89543 # .double 233.18421142748162 ! 22: .align 2 ! 23: _q2: .long 0x40800000, 0x00000000 # .double 1 ! 24: .align 2 ! 25: _log2e: .long 0x40b8aa3b, 0x295c17f1 # .double 1.4426950408889634 ! 26: .align 2 ! 27: _sqrt2: .long 0x40b504f3, 0x33f9de65 # .double 1.4142135623730951 ! 28: .align 2 ! 29: _maxf: .long 0x471c4000, 0x00000000 # .double 10000 ! 30: .text ! 31: LL0: .align 1 ! 32: .globl _exp ! 33: .data ! 34: .align 2 ! 35: L56: .long 0x40800000, 0x00000000 # .double 1 ! 36: .text ! 37: .data ! 38: .align 2 ! 39: L59: .long 0x7ffffffe, 0xfffffffe # .double 1.7014117331926443e+38 ! 40: .text ! 41: .data ! 42: .align 2 ! 43: L60: .long 0x40000000, 0x00000000 # .double 0.5 ! 44: .text ! 45: .set L51,0xc ! 46: .data ! 47: .text ! 48: _exp: .word L51 ! 49: subl3 $88,fp,sp ! 50: tstl 4(fp) ! 51: jneq L55 ! 52: movl L56+4,r1 ! 53: movl L56,r0 ! 54: ret ! 55: L55: lnd _maxf ! 56: cmpd 4(fp) ! 57: jleq L57 ! 58: clrl r1 ! 59: clrl r0 ! 60: ret ! 61: L57: cmpd2 4(fp),_maxf ! 62: jleq L58 ! 63: movl $34,_errno ! 64: movl L59+4,r1 ! 65: movl L59,r0 ! 66: ret ! 67: L58: ldd 4(fp) ! 68: muld _log2e ! 69: std 4(fp) ! 70: pushl 8(fp) ! 71: pushl 4(fp) ! 72: callf $12,_floor ! 73: ldd r0 ! 74: cvdl -88(fp) ! 75: cvld -88(fp) ! 76: std r0 ! 77: ldd 4(fp) ! 78: subd r0 ! 79: subd L60 ! 80: std -60(fp) ! 81: muld -60(fp) ! 82: std -84(fp) ! 83: ldd _p2 ! 84: muld -84(fp) ! 85: addd _p1 ! 86: muld -84(fp) ! 87: addd _p0 ! 88: muld -60(fp) ! 89: std -68(fp) ! 90: ldd _q2 ! 91: muld -84(fp) ! 92: addd _q1 ! 93: muld -84(fp) ! 94: addd _q0 ! 95: std -76(fp) ! 96: pushl -88(fp) ! 97: addd -68(fp) ! 98: muld _sqrt2 ! 99: std r0 ! 100: ldd -76(fp) ! 101: subd -68(fp) ! 102: std r2 ! 103: ldd r0 ! 104: divd r2 ! 105: pushd ! 106: callf $16,_ldexp ! 107: ret ! 108:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.