.section ".text",#alloc,#execinstr .align 8 .skip 16 ! block 0 .global sgefa_ .type sgefa_,2 sgefa_: save %sp,-160,%sp sethi %hi(.L_tcovStruct),%l1 or %l1,%lo(.L_tcovStruct),%l1 ld [%l1+0],%l0 cmp %l0,0 bne .L_y0 nop ! block 20 mov %l1,%o0 call __bb_init_func nop ! block 1 .L_y0: .L50: st %i0,[%fp-4] st %i1,[%fp-8] st %i3,[%fp-16] ! block 2 .L51: ld [%fp-8],%l0 ld [%l0+0],%l0 st %l0,[%fp-28] sra %l0,31,%l3 subcc %g0,%l0,%l4 subx %g0,%l3,%l3 and %l4,%l3,%l3 sub %g0,%l3,%i3 sll %i3,2,%l1 st %l1,[%fp-36] st %i3,[%fp-24] ld [%fp-4],%l0 add %l1,4,%l1 sub %l0,%l1,%i5 ! File sgefa.f: ! 1 subroutine sgefa(a,lda,n,ipvt,info) ! 2 integer lda,n,ipvt(1),info ! 3 real a(lda,1) ! 4 c ! 5 c sgefa factors a real matrix by gaussian elimination. ! 6 c ! 7 c sgefa is usually called by sgeco, but it can be called ! 8 c directly with a saving in time if rcond is not needed. ! 9 c (time for sgeco) = (1 + 9/n)*(time for sgefa) . ! 10 c ! 11 c on entry ! 12 c ! 13 c a real(lda, n) ! 14 c the matrix to be factored. ! 15 c ! 16 c lda integer ! 17 c the leading dimension of the array a . ! 18 c ! 19 c n integer ! 20 c the order of the matrix a . ! 21 c ! 22 c on return ! 23 c ! 24 c a an upper triangular matrix and the multipliers ! 25 c which were used to obtain it. ! 26 c the factorization can be written a = l*u where ! 27 c l is a product of permutation and unit lower ! 28 c triangular matrices and u is upper triangular. ! 29 c ! 30 c ipvt integer(n) ! 31 c an integer vector of pivot indices. ! 32 c ! 33 c info integer ! 34 c = 0 normal value. ! 35 c = k if u(k,k) .eq. 0.0 . this is not an error ! 36 c condition for this subroutine, but it does ! 37 c indicate that sgesl or sgedi will divide by zero ! 38 c if called. use rcond in sgeco for a reliable ! 39 c indication of singularity. ! 40 c ! 41 c linpack. this version dated 08/14/78 . ! 42 c cleve moler, university of new mexico, argonne national lab. ! 43 c ! 44 c subroutines and functions ! 45 c ! 46 c blas saxpy,sscal,isamax ! 47 c ! 48 c internal variables ! 49 c ! 50 real t ! 51 integer isamax,j,k,kp1,l,nm1 ! 52 c ! 53 c ! 54 c gaussian elimination with partial pivoting ! 55 c ! 56 info = 0 sethi %hi(.L_tcovCounters),%l2 ldd [%l2+%lo(.L_tcovCounters)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters)] st %g0,[%i4+0] ! 57 nm1 = n - 1 ld [%i2+0],%l0 sub %l0,1,%l1 sethi %hi(.XBkNwvC56cr9ifd.sgefa.nm1),%l0 st %l1,[%l0+%lo(.XBkNwvC56cr9ifd.sgefa.nm1)] ! 58 if (nm1 .lt. 1) go to 70 cmp %l1,1 bl .L48 nop ! block 3 .L52: ! 59 do 60 k = 1, nm1 sethi %hi(.L_tcovCounters+8),%l2 ldd [%l2+%lo(.L_tcovCounters+8)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+8)] .L38: sethi %hi(.XBkNwvC56cr9ifd.sgefa.nm1),%l0 ld [%l0+%lo(.XBkNwvC56cr9ifd.sgefa.nm1)],%l0 st %l0,[%fp-52] mov 1,%l1 sethi %hi(.XBkNwvC56cr9ifd.sgefa.k),%l0 st %l1,[%l0+%lo(.XBkNwvC56cr9ifd.sgefa.k)] ld [%fp-52],%l0 cmp %l1,%l0 bg .L54 nop ! block 4 .L55: .L53: ! 60 kp1 = k + 1 sethi %hi(.L_tcovCounters+16),%l2 ldd [%l2+%lo(.L_tcovCounters+16)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+16)] sethi %hi(.XBkNwvC56cr9ifd.sgefa.k),%l6 ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l0 add %l0,1,%l1 sethi %hi(.XBkNwvC56cr9ifd.sgefa.kp1),%l0 st %l1,[%l0+%lo(.XBkNwvC56cr9ifd.sgefa.kp1)] ! 61 c ! 62 c find l = pivot index ! 63 c ! 64 l = isamax(n-k+1,a(k,k),1) + k - 1 ld [%i2+0],%l1 ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l2 sub %l1,%l2,%l0 add %l0,1,%l0 st %l0,[%fp-40] add %fp,-40,%o0 smul %l2,%i3,%l0 add %l0,%l2,%l0 sll %l0,2,%l1 add %i5,%l1,%o1 sethi %hi(.L_cseg0),%o2 or %o2,%lo(.L_cseg0),%o2 call isamax_ nop st %o0,[%fp-44] ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l0 add %o0,%l0,%l0 sub %l0,1,%l3 sethi %hi(.XBkNwvC56cr9ifd.sgefa.l),%l5 st %l3,[%l5+%lo(.XBkNwvC56cr9ifd.sgefa.l)] ! 65 ipvt(k) = l ld [%fp-16],%l2 ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l0 sll %l0,2,%l1 add %l2,%l1,%l0 st %l3,[%l0-4] ! 66 c ! 67 c zero pivot implies this column already triangularized ! 68 c ! 69 if (a(l,k) .eq. 0.0e0) go to 40 mov %i5,%l4 ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l0 mov %i3,%l7 smul %l0,%l7,%l2 ld [%l5+%lo(.XBkNwvC56cr9ifd.sgefa.l)],%l1 add %l2,%l1,%l0 sll %l0,2,%l1 ld [%l4+%l1],%f3 sethi %hi(.L_cseg1),%l0 ld [%l0+%lo(.L_cseg1)],%f2 fcmps %f3,%f2 nop fbe .L44 nop ! block 5 .L56: ! 70 c ! 71 c interchange if necessary ! 72 c ! 73 if (l .eq. k) go to 10 sethi %hi(.L_tcovCounters+24),%l2 ldd [%l2+%lo(.L_tcovCounters+24)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+24)] ld [%l5+%lo(.XBkNwvC56cr9ifd.sgefa.l)],%l1 ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l0 cmp %l1,%l0 be .L40 nop ! block 6 .L57: ! 74 t = a(l,k) sethi %hi(.L_tcovCounters+32),%l2 ldd [%l2+%lo(.L_tcovCounters+32)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+32)] ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l0 smul %l0,%l7,%l2 ld [%l5+%lo(.XBkNwvC56cr9ifd.sgefa.l)],%l1 add %l2,%l1,%l0 sll %l0,2,%l1 ld [%l4+%l1],%f2 sethi %hi(.XBkNwvC56cr9ifd.sgefa.t),%l3 st %f2,[%l3+%lo(.XBkNwvC56cr9ifd.sgefa.t)] ! 75 a(l,k) = a(k,k) ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l1 smul %l1,%l7,%l2 add %l2,%l1,%l0 sll %l0,2,%l1 ld [%l4+%l1],%f2 ld [%l5+%lo(.XBkNwvC56cr9ifd.sgefa.l)],%l1 add %l2,%l1,%l0 sll %l0,2,%l1 st %f2,[%l4+%l1] ! 76 a(k,k) = t ld [%l3+%lo(.XBkNwvC56cr9ifd.sgefa.t)],%f2 ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l1 smul %l1,%l7,%l0 add %l0,%l1,%l0 sll %l0,2,%l1 st %f2,[%l4+%l1] ! 77 10 continue ! block 7 .L40: ! 78 c ! 79 c compute multipliers ! 80 c ! 81 t = -1.0e0/a(k,k) sethi %hi(.L_tcovCounters+40),%l2 ldd [%l2+%lo(.L_tcovCounters+40)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+40)] sethi %hi(.L_cseg2),%l0 ld [%l0+%lo(.L_cseg2)],%f3 sethi %hi(.XBkNwvC56cr9ifd.sgefa.k),%l3 ld [%l3+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l1 smul %l1,%i3,%l0 add %l0,%l1,%l0 sll %l0,2,%l1 ld [%i5+%l1],%f2 fdivs %f3,%f2,%f2 fnegs %f2,%f2 sethi %hi(.XBkNwvC56cr9ifd.sgefa.t),%o1 or %o1,%lo(.XBkNwvC56cr9ifd.sgefa.t),%o1 st %f2,[%o1+0] ! 82 call sscal(n-k,t,a(k+1,k),1) ld [%i2+0],%l0 ld [%l3+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l1 sub %l0,%l1,%l0 st %l0,[%fp-40] add %fp,-40,%o0 smul %l1,%i3,%l0 add %l1,1,%l1 add %l0,%l1,%l0 sll %l0,2,%l1 add %i5,%l1,%o2 sethi %hi(.L_cseg0),%o3 or %o3,%lo(.L_cseg0),%o3 call sscal_ nop ! 83 c ! 84 c row elimination with column indexing ! 85 c ! 86 do 30 j = kp1, n ! block 8 .L39: sethi %hi(.XBkNwvC56cr9ifd.sgefa.kp1),%l0 ld [%l0+%lo(.XBkNwvC56cr9ifd.sgefa.kp1)],%l2 st %l2,[%fp-56] ld [%i2+0],%l1 st %l1,[%fp-60] sethi %hi(.XBkNwvC56cr9ifd.sgefa.j),%l0 cmp %l2,%l1 bg .L59 st %l2,[%l0+%lo(.XBkNwvC56cr9ifd.sgefa.j)] ! block 9 .L60: .L58: ! 87 t = a(l,j) sethi %hi(.L_tcovCounters+48),%l2 ldd [%l2+%lo(.L_tcovCounters+48)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+48)] mov %i5,%l4 sethi %hi(.XBkNwvC56cr9ifd.sgefa.j),%l6 ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.j)],%l0 mov %i3,%l7 smul %l0,%l7,%l2 sethi %hi(.XBkNwvC56cr9ifd.sgefa.l),%l3 ld [%l3+%lo(.XBkNwvC56cr9ifd.sgefa.l)],%l1 add %l2,%l1,%l0 sll %l0,2,%l1 ld [%l4+%l1],%f2 sethi %hi(.XBkNwvC56cr9ifd.sgefa.t),%l5 st %f2,[%l5+%lo(.XBkNwvC56cr9ifd.sgefa.t)] ! 88 if (l .eq. k) go to 20 ld [%l3+%lo(.XBkNwvC56cr9ifd.sgefa.l)],%l1 sethi %hi(.XBkNwvC56cr9ifd.sgefa.k),%i0 ld [%i0+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l0 cmp %l1,%l0 be .L41 nop ! block 10 .L61: ! 89 a(l,j) = a(k,j) sethi %hi(.L_tcovCounters+56),%l2 ldd [%l2+%lo(.L_tcovCounters+56)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+56)] ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.j)],%l0 smul %l0,%l7,%l2 ld [%i0+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l1 add %l2,%l1,%l0 sll %l0,2,%l1 ld [%l4+%l1],%f2 ld [%l3+%lo(.XBkNwvC56cr9ifd.sgefa.l)],%l1 add %l2,%l1,%l0 sll %l0,2,%l1 st %f2,[%l4+%l1] ! 90 a(k,j) = t ld [%l5+%lo(.XBkNwvC56cr9ifd.sgefa.t)],%f2 ld [%l6+%lo(.XBkNwvC56cr9ifd.sgefa.j)],%l0 smul %l0,%l7,%l0 ld [%i0+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l1 add %l0,%l1,%l0 sll %l0,2,%l1 st %f2,[%l4+%l1] ! 91 20 continue ! block 11 .L41: ! 92 call saxpy(n-k,t,a(k+1,k),1,a(k+1,j),1) sethi %hi(.L_tcovCounters+64),%l2 ldd [%l2+%lo(.L_tcovCounters+64)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+64)] ld [%i2+0],%l1 sethi %hi(.XBkNwvC56cr9ifd.sgefa.k),%l0 ld [%l0+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l3 sub %l1,%l3,%l0 st %l0,[%fp-44] add %fp,-44,%o0 sethi %hi(.XBkNwvC56cr9ifd.sgefa.t),%o1 or %o1,%lo(.XBkNwvC56cr9ifd.sgefa.t),%o1 smul %l3,%i3,%l0 add %l3,1,%l2 add %l0,%l2,%l0 sll %l0,2,%l1 add %i5,%l1,%o2 sethi %hi(.L_cseg0),%o5 or %o5,%lo(.L_cseg0),%o5 sethi %hi(.XBkNwvC56cr9ifd.sgefa.j),%l3 ld [%l3+%lo(.XBkNwvC56cr9ifd.sgefa.j)],%l0 smul %l0,%i3,%l0 add %l0,%l2,%l0 sll %l0,2,%l1 add %i5,%l1,%o4 call saxpy_ mov %o5,%o3 ! 93 30 continue ! block 12 .L42: ld [%l3+%lo(.XBkNwvC56cr9ifd.sgefa.j)],%l0 add %l0,1,%l1 st %l1,[%l3+%lo(.XBkNwvC56cr9ifd.sgefa.j)] ld [%fp-60],%l0 cmp %l1,%l0 ble .L58 nop ! block 13 .L62: .L59: ! 94 go to 50 sethi %hi(.L_tcovCounters+72),%l2 ldd [%l2+%lo(.L_tcovCounters+72)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+72)] ba .L45 nop ! block 14 ! 95 40 continue .L44: ! 96 info = k sethi %hi(.L_tcovCounters+80),%l2 ldd [%l2+%lo(.L_tcovCounters+80)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+80)] sethi %hi(.XBkNwvC56cr9ifd.sgefa.k),%l0 ld [%l0+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l1 st %l1,[%i4+0] ! 97 50 continue ! block 15 .L45: ! 98 60 continue sethi %hi(.L_tcovCounters+88),%l2 ldd [%l2+%lo(.L_tcovCounters+88)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+88)] .L46: sethi %hi(.XBkNwvC56cr9ifd.sgefa.k),%l1 ld [%l1+%lo(.XBkNwvC56cr9ifd.sgefa.k)],%l0 add %l0,1,%l2 st %l2,[%l1+%lo(.XBkNwvC56cr9ifd.sgefa.k)] ld [%fp-52],%l0 cmp %l2,%l0 ble .L53 nop ! block 16 .L63: .L54: ! 99 70 continue sethi %hi(.L_tcovCounters+96),%l2 ldd [%l2+%lo(.L_tcovCounters+96)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+96)] .L48: ! 100 ipvt(n) = n ld [%i2+0],%l3 ld [%fp-16],%l2 sll %l3,2,%l1 add %l2,%l1,%l0 st %l3,[%l0-4] ! 101 if (a(n,n) .eq. 0.0e0) info = n ld [%i2+0],%l2 smul %l2,%i3,%l0 add %l0,%l2,%l0 sll %l0,2,%l1 ld [%i5+%l1],%f3 sethi %hi(.L_cseg1),%l0 ld [%l0+%lo(.L_cseg1)],%f2 fcmps %f3,%f2 nop fbne .L64 nop ! block 17 .L65: st %l2,[%i4+0] ! block 18 .L64: ! 102 return sethi %hi(.L_tcovCounters+104),%l2 ldd [%l2+%lo(.L_tcovCounters+104)],%l0 addcc %l1,1,%l1 addx %l0,%g0,%l0 std %l0,[%l2+%lo(.L_tcovCounters+104)] jmp %i7+8 restore ! block 19 .L49: .L66: jmp %i7+8 restore .size sgefa_,(.-sgefa_) .align 8 .section ".bss",#alloc,#write .align 4 .global .XBkNwvC56cr9ifd.sgefa.nm1 .XBkNwvC56cr9ifd.sgefa.nm1: .skip 4 .type .XBkNwvC56cr9ifd.sgefa.nm1,#object .size .XBkNwvC56cr9ifd.sgefa.nm1,4 .align 4 .global .XBkNwvC56cr9ifd.sgefa.k .XBkNwvC56cr9ifd.sgefa.k: .skip 4 .type .XBkNwvC56cr9ifd.sgefa.k,#object .size .XBkNwvC56cr9ifd.sgefa.k,4 .align 4 .global .XBkNwvC56cr9ifd.sgefa.kp1 .XBkNwvC56cr9ifd.sgefa.kp1: .skip 4 .type .XBkNwvC56cr9ifd.sgefa.kp1,#object .size .XBkNwvC56cr9ifd.sgefa.kp1,4 .align 4 .global .XBkNwvC56cr9ifd.sgefa.l .XBkNwvC56cr9ifd.sgefa.l: .skip 4 .type .XBkNwvC56cr9ifd.sgefa.l,#object .size .XBkNwvC56cr9ifd.sgefa.l,4 .align 4 .global .XBkNwvC56cr9ifd.sgefa.t .XBkNwvC56cr9ifd.sgefa.t: .skip 4 .type .XBkNwvC56cr9ifd.sgefa.t,#object .size .XBkNwvC56cr9ifd.sgefa.t,4 .align 4 .global .XBkNwvC56cr9ifd.sgefa.j .XBkNwvC56cr9ifd.sgefa.j: .skip 4 .type .XBkNwvC56cr9ifd.sgefa.j,#object .size .XBkNwvC56cr9ifd.sgefa.j,4 .section ".rodata",#alloc .align 4 .L_cseg0: .word 0x1 .type .L_cseg0,#object .size .L_cseg0,4 .align 4 .L_cseg1: .skip 4 .type .L_cseg1,#object .size .L_cseg1,4 .align 4 .L_cseg2: .word 0x3f800000 .type .L_cseg2,#object .size .L_cseg2,4 .section ".data",#alloc,#write Ddata.data: .skip 0 .type Ddata.data,#object .size Ddata.data,0 .section ".bss",#alloc,#write Bbss.bss: .skip 0 .type Bbss.bss,#object .size Bbss.bss,0 .section ".rodata",#alloc Drodata.rodata: .skip 0 .type Drodata.rodata,#object .size Drodata.rodata,0 .section ".data",#alloc,#write .align 4 happiness: .word 0x6f0 .type happiness,#object .size happiness,4 .section ".rodata",#alloc .align 4 CONST_ARG_1: .word 0x1 .type CONST_ARG_1,#object .size CONST_ARG_1,4 .align 4 CONST_ARG_2: .word 0x1 .type CONST_ARG_2,#object .size CONST_ARG_2,4 .align 4 CONST_ARG_3: .word 0x1 .type CONST_ARG_3,#object .size CONST_ARG_3,4 .align 4 CONST_ARG_4: .word 0x1 .type CONST_ARG_4,#object .size CONST_ARG_4,4 .section ".data",#alloc,#write .L_tcovFileName: .ascii "/home/ma/575.01/masc0670/diffusion/sgefa.d\000" .type .L_tcovFileName,#object .size .L_tcovFileName,43 .align 8 .L_tcovCounters: .skip 112 .type .L_tcovCounters,#object .size .L_tcovCounters,112 .align 4 .L_tcovStruct: .skip 4 .word .L_tcovFileName .word .L_tcovCounters .word 0xe .skip 4 .type .L_tcovStruct,#object .size .L_tcovStruct,20 .file "sgefa.f" .xstabs ".stab.index","V=8.0 ; DBG_GEN=3.4.2 ; R=1.0;g;G=.XAkNwvC56cr9ifd.",60,0,0,1034800825 .xstabs ".stab.index","/home/ma/575.01/masc0670/diffusion/;/opt/SUNWspro/bin/../WS6U2/bin/f90 -S -a -qoption f90comp -h.XAkNwvC56cr9ifd. sgefa.f",52,0,0,0