home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 22 / AACD 22.iso / AACD / Programming / powerd / lib / powerd.lha / powerd_ppc / RealStr.ass < prev    next >
Encoding:
Text File  |  1980-11-20  |  2.7 KB  |  189 lines

  1.     .text
  2.     .sdreg    r2
  3.     .align    2
  4. _RealStr:    
  5.     mflr    r0
  6.     stw    r0,8(r1)
  7.     stwu    r1,-88(r1)
  8.     stw    r13,24(r1)
  9.     mr    r13,r1
  10.     stw    r3,44+28(r13)
  11.     stfd    f1,48+28(r13)
  12.     stw    r4,56+28(r13)
  13.     li    r3,0
  14.     stw    r3,24+28(r13)
  15. if0:    
  16.     lfd    f1,48+28(r13)
  17.     lfd    f2,n0(r2)
  18.     fcmpo    0,f1,f2
  19.     blt    $+12
  20.     li    r3,0
  21.     b    $+8
  22.     li    r3,-1
  23.     mr.    r3,r3
  24.     beq    end0
  25.     li    r3,-1
  26.     stw    r3,24+28(r13)
  27. end0:    
  28.     lfd    f1,48+28(r13)
  29.     fabs    f1,f1
  30.     stfd    f1,36+28(r13)
  31.     lfd    f0,36+28(r13)
  32.     fctiw    f0,f0
  33.     stfd    f0,-8(r1)
  34.     lwz    r3,-4(r1)
  35.     stw    r3,32+28(r13)
  36.     lfd    f1,36+28(r13)
  37.     lwz    r3,32+28(r13)
  38.     lis    r0,17200
  39.     stw    r0,-8(r1)
  40.     xoris    r0,r3,0x8000
  41.     stw    r0,-4(r1)
  42.     lfd    f0,-8(r1)
  43.     lfd    f2,conv(r2)
  44.     fsub    f2,f0,f2
  45.     fsub    f1,f1,f2
  46.     stfd    f1,36+28(r13)
  47. if2:    
  48.     lfd    f1,36+28(r13)
  49.     lfd    f2,n1(r2)
  50.     fcmpo    0,f1,f2
  51.     blt    $+12
  52.     li    r3,0
  53.     b    $+8
  54.     li    r3,-1
  55.     mr.    r3,r3
  56.     beq    end2
  57.     lwz    r3,32+28(r13)
  58.     subi    r3,r3,1
  59.     stw    r3,32+28(r13)
  60.     lfd    f1,36+28(r13)
  61.     lfd    f2,n2(r2)
  62.     fadd    f1,f1,f2
  63.     stfd    f1,36+28(r13)
  64. end2:    
  65.     lfd    f1,36+28(r13)
  66.     lfd    f2,n3(r2)
  67.     fmul    f1,f1,f2
  68.     stfd    f1,36+28(r13)
  69.     lfd    f0,36+28(r13)
  70.     fctiw    f0,f0
  71.     stfd    f0,-8(r1)
  72.     lwz    r3,-4(r1)
  73.     stw    r3,28+28(r13)
  74. if4:    
  75.     lfd    f1,48+28(r13)
  76.     lfd    f2,n4(r2)
  77.     fcmpo    0,f1,f2
  78.     blt    $+12
  79.     li    r3,0
  80.     b    $+8
  81.     li    r3,-1
  82.     mr.    r3,r3
  83.     beq    end4
  84.     lwz    r3,32+28(r13)
  85.     neg    r3,r3
  86.     stw    r3,32+28(r13)
  87. end4:    
  88.     addi    r3,r13,0+28
  89.     lwz    r4,@_str0(r2)
  90.     subi    r1,r1,12
  91. if6:    
  92.     lwz    r0,24+28(r13)
  93.     mr.    r0,r0
  94.     beq    elseif6_1
  95.     lwz    r5,@_str1(r2)
  96.     stw    r5,0+24(r1)
  97.     b    end6
  98. elseif6_1:
  99.  
  100.     li    r5,0
  101.     stw    r5,0+24(r1)
  102. end6:    
  103.     stw    r4,20(r1)
  104.     stw    r3,16(r1)
  105.     subi    r1,r1,8
  106.     lwz    r3,32+28(r13)
  107.     bl    _Abs
  108.     mr    r0,r3
  109.     lwz    r3,24(r1)
  110.     lwz    r4,28(r1)
  111.     addi    r1,r1,8
  112.     stw    r0,4+24(r1)
  113.     lwz    r5,28+28(r13)
  114.     stw    r5,8+24(r1)
  115.     lwz    r5,@_list0(r2)
  116.     lwz    r6,0+24(r1)
  117.     stw    r6,0(r5)
  118.     lwz    r6,4+24(r1)
  119.     stw    r6,4(r5)
  120.     lwz    r6,8+24(r1)
  121.     stw    r6,8(r5)
  122.     addi    r1,r1,12
  123.     bl    _StringF
  124.     lwz    r3,44+28(r13)
  125.     addi    r4,r13,0+28
  126.     stw    r5,20(r1)
  127.     stw    r4,16(r1)
  128.     stw    r3,12(r1)
  129.     subi    r1,r1,12
  130.     addi    r3,r13,0+28
  131.     bl    _StrLen
  132.     mr    r0,r3
  133.     lwz    r3,24(r1)
  134.     lwz    r4,28(r1)
  135.     lwz    r5,32(r1)
  136.     addi    r1,r1,12
  137.     mr    r5,r0
  138.     subi    r5,r5,9
  139.     lwz    r6,56+28(r13)
  140.     add    r5,r5,r6
  141.     bl    _StrCopy
  142. RealStrend:
  143.  
  144.     lwz    r3,44+28(r13)
  145. RealStrfinish:
  146.  
  147.     lwz    r13,24(r1)
  148.     addi    r1,r1,88
  149.     lwz    r0,8(r1)
  150.     mtlr    r0
  151.     blr
  152.  
  153.     .global    _RealStr
  154.     .type    _RealStr,2
  155.     .size    _RealStr,$-_RealStr
  156.     .extern    _Abs
  157.     .extern    _FAbs
  158.     .extern    _StrCopy
  159.     .extern    _StringF
  160.     .extern    _StrLen
  161.     .tocd
  162.     .extern    _PowerPCBase
  163.     .extern    _stdin
  164.     .extern    _stdout
  165.     .extern    _arg
  166.     .extern    _GfxBase
  167.     .extern    _IntuitionBase
  168.     .extern    _DOSBase
  169.     .extern    _ExecBase
  170.     .data
  171.     .extern    @_list0
  172.     .global    list0
  173. list0:    .ualong    0
  174.     .ualong    0
  175.     .ualong    0
  176.     .align    2
  177. n0:    .long    0x0       ,0x0       
  178.     .set    n1,n0
  179. n2:    .long    0x3FF00000,0x0       
  180. n3:    .long    0x41CDCD65,0x0       
  181.     .set    n4,n1
  182. conv:    .long    0x43300000,0x80000000
  183.     .extern    @_str0
  184.     .global    str0
  185. str0:    .byte    "%s%ld.%09.9ld",0
  186.     .extern    @_str1
  187.     .global    str1
  188. str1:    .byte    "-",0
  189.