.file "surf3d.c" .version "01.01" gcc2_compiled.: .text .align 4 .globl grid3d_new .type grid3d_new,@function grid3d_new: pushl %ebp movl %esp,%ebp subl $44,%esp pushl %edi pushl %esi pushl %ebx movl 20(%ebp),%eax movl 12(%ebp),%esi movl %eax,-8(%ebp) addl $-12,%esp pushl $44 call malloc movl %esi,%edx imull -8(%ebp),%edx movl %eax,%edi movl %edx,-12(%ebp) leal (%edx,%edx,2),%ebx movl %edx,8(%edi) addl $-12,%esp sall $2,%ebx pushl %ebx call malloc addl $32,%esp movl %eax,(%edi) addl $-12,%esp pushl %ebx call malloc movl %eax,4(%edi) movl 24(%ebp),%eax movl %eax,12(%edi) movl 28(%ebp),%eax movl %eax,16(%edi) movl 32(%ebp),%eax movl %eax,20(%edi) movl 8(%ebp),%eax movl %eax,28(%edi) movl %esi,24(%edi) movl -8(%ebp),%edx movl 16(%ebp),%eax movl %edx,32(%edi) movl %eax,36(%edi) movl $0,40(%edi) testl %edx,%edx je .L480 movl %esi,%eax movl %esi,-28(%ebp) shrl $31,%eax addl %eax,%esi movl -8(%ebp),%eax shrl $31,%eax addl -8(%ebp),%eax movl -12(%ebp),%edx sarl $1,%eax movl %edx,-24(%ebp) negl -28(%ebp) movl %esi,-16(%ebp) movl %eax,-20(%ebp) .p2align 4,,7 .L481: movl -28(%ebp),%eax addl %eax,-24(%ebp) decl -8(%ebp) movl 12(%ebp),%esi testl %esi,%esi je .L479 movl -8(%ebp),%eax subl -20(%ebp),%eax movl %eax,-4(%ebp) fildl -4(%ebp) movl %esi,-4(%ebp) movl -24(%ebp),%edx leal (%edx,%esi),%eax movl -16(%ebp),%ebx fildl 16(%ebp) leal (%eax,%eax,2),%eax sarl $1,%ebx leal 0(,%eax,4),%ecx fmulp %st,%st(1) fildl 20(%ebp) fdivrp %st,%st(1) fildl 8(%ebp) fildl -4(%ebp) jmp .L484 .L487: fxch %st(2) .p2align 4,,7 .L484: decl %esi movl %esi,%eax movl (%edi),%edx subl %ebx,%eax movl %eax,-4(%ebp) fildl -4(%ebp) addl $-12,%ecx fmul %st(2),%st fdiv %st(1),%st fstps (%edx,%ecx) fxch %st(2) movl (%edi),%eax movl $0,4(%eax,%ecx) movl (%edi),%eax fsts 8(%eax,%ecx) testl %esi,%esi jne .L487 fstp %st(0) fstp %st(0) fstp %st(0) .L479: cmpl $0,-8(%ebp) jne .L481 .L480: leal -56(%ebp),%esp popl %ebx movl %edi,%eax popl %esi popl %edi leave ret .Lfe1: .size grid3d_new,.Lfe1-grid3d_new .section .rodata .align 8 .LC48: .long 0x0,0x3fe00000 .align 4 .LC49: .long 0x3f19999a .align 4 .LC50: .long 0x3ee3d70a .text .align 4 .globl grid3d_update .type grid3d_update,@function grid3d_update: pushl %ebp movl %esp,%ebp subl $32,%esp pushl %esi pushl %ebx flds 12(%ebp) movl 8(%ebp),%ebx movl 16(%ebp),%ecx fld %st(0) #APP fsin #NO_APP fstps -4(%ebp) flds -4(%ebp) fxch %st(1) #APP fcos #NO_APP fstps -4(%ebp) flds -4(%ebp) cmpl $0,40(%ebx) jne .L519 testl %ecx,%ecx je .L520 xorl %esi,%esi cmpl 24(%ebx),%esi jge .L520 fldl .LC48 xorl %edx,%edx .p2align 4,,7 .L524: movl (%ebx),%eax fld %st(0) fld %st(1) fxch %st(1) fmuls 4(%eax,%edx) fxch %st(1) fmuls (%ecx,%esi,4) faddp %st,%st(1) incl %esi fstps 4(%eax,%edx) addl $12,%edx cmpl 24(%ebx),%esi jl .L524 fstp %st(0) .L520: movl 24(%ebx),%esi cmpl 8(%ebx),%esi jge .L519 leal (%esi,%esi,2),%eax flds .LC49 flds .LC50 leal 0(,%eax,4),%ecx .p2align 4,,7 .L529: movl (%ebx),%eax flds 4(%eax,%ecx) fmul %st(2),%st fstps 4(%eax,%ecx) movl %esi,%eax subl 24(%ebx),%eax movl (%ebx),%edx leal (%eax,%eax,2),%eax flds 4(%edx,%eax,4) fmul %st(1),%st fadds 4(%edx,%ecx) incl %esi fstps 4(%edx,%ecx) addl $12,%ecx cmpl 8(%ebx),%esi jl .L529 fstp %st(0) fstp %st(0) .L519: xorl %esi,%esi cmpl 8(%ebx),%esi jge .L536 xorl %ecx,%ecx .p2align 4,,7 .L534: movl (%ebx),%eax flds (%eax,%ecx) flds 8(%eax,%ecx) fmul %st(2),%st fxch %st(1) fmul %st(3),%st fsubp %st,%st(1) movl 4(%ebx),%edx incl %esi fstps (%edx,%ecx) movl (%ebx),%eax flds (%eax,%ecx) flds 8(%eax,%ecx) fxch %st(1) fmul %st(2),%st fxch %st(1) fmul %st(3),%st faddp %st,%st(1) movl 4(%ebx),%edx fstps 8(%edx,%ecx) movl (%ebx),%eax flds 4(%eax,%ecx) movl 4(%ebx),%edx fstps 4(%edx,%ecx) movl 4(%ebx),%eax flds (%eax,%ecx) fadds 12(%ebx) fstps (%eax,%ecx) movl 4(%ebx),%eax flds 4(%eax,%ecx) fadds 16(%ebx) fstps 4(%eax,%ecx) movl 4(%ebx),%eax flds 8(%eax,%ecx) fadds 20(%ebx) fstps 8(%eax,%ecx) addl $12,%ecx cmpl 8(%ebx),%esi jl .L534 .L536: fstp %st(0) fstp %st(0) popl %ebx popl %esi leave ret .Lfe2: .size grid3d_update,.Lfe2-grid3d_update .section .rodata .align 4 .LC51: .long 0x40000000 .align 8 .LC52: .long 0x0,0x42380000 .text .align 4 .globl surf3d_draw .type surf3d_draw,@function surf3d_draw: pushl %ebp movl %esp,%ebp subl $60,%esp pushl %edi pushl %esi pushl %ebx movl $0,-20(%ebp) movl -20(%ebp),%edx movl 8(%ebp),%eax cmpl 8(%eax),%edx jge .L493 fldl .LC52 flds .LC51 xorl %edi,%edi .p2align 4,,7 .L495: movl 8(%ebp),%eax movl 4(%eax),%eax movl %eax,-36(%ebp) fcoms 8(%eax,%edi) fnstsw %ax andb $69,%ah cmpb $1,%ah jne .L496 fildl 16(%ebp) movl -36(%ebp),%edx fld %st(0) fmuls (%edx,%edi) fdivs 8(%edx,%edi) fld %st(3) faddp %st,%st(1) fstpl -32(%ebp) movl -32(%ebp),%eax movl -28(%ebp),%edx movl %eax,-40(%ebp) sarl $16,-40(%ebp) movl -36(%ebp),%edx fmuls 4(%edx,%edi) fdivs 8(%edx,%edi) movl -40(%ebp),%ecx fld %st(2) faddp %st,%st(1) fstpl -32(%ebp) movl -32(%ebp),%eax movl -28(%ebp),%edx movl %eax,-44(%ebp) movl 28(%ebp),%eax sarl $1,%eax addl %eax,%ecx movl 32(%ebp),%eax sarl $16,-44(%ebp) sarl $1,%eax movl %ecx,%ebx subl -44(%ebp),%eax movl %eax,%esi cmpl 28(%ebp),%ebx jge .L496 testl %ecx,%ecx jl .L496 cmpl 32(%ebp),%esi jge .L496 testl %eax,%eax jge .L499 .L496: xorl %esi,%esi xorl %ebx,%ebx .L499: movl 20(%ebp),%eax movl %ebx,%edx leal (%eax,%edx,4),%edx movl 28(%ebp),%eax imull %esi,%eax leal (%edx,%eax,4),%eax testl %ebx,%ebx je .L494 testl %esi,%esi je .L494 #APP movd (%eax), %mm0 paddusb 12(%ebp), %mm0 movd %mm0, (%eax) #NO_APP .L494: incl -20(%ebp) addl $12,%edi movl -20(%ebp),%eax movl 8(%ebp),%edx cmpl 8(%edx),%eax jl .L495 fstp %st(0) fstp %st(0) .L493: popl %ebx popl %esi popl %edi leave ret .Lfe3: .size surf3d_draw,.Lfe3-surf3d_draw .align 4 .globl surf3d_rotate .type surf3d_rotate,@function surf3d_rotate: pushl %ebp movl %esp,%ebp subl $32,%esp pushl %esi pushl %ebx flds 12(%ebp) movl 8(%ebp),%ebx fld %st(0) #APP fsin #NO_APP fstps -4(%ebp) flds -4(%ebp) fxch %st(1) #APP fcos #NO_APP fstps -4(%ebp) xorl %esi,%esi flds -4(%ebp) cmpl 8(%ebx),%esi jge .L537 xorl %ecx,%ecx .p2align 4,,7 .L508: movl (%ebx),%eax flds (%eax,%ecx) flds 8(%eax,%ecx) fmul %st(2),%st fxch %st(1) fmul %st(3),%st fsubp %st,%st(1) movl 4(%ebx),%edx incl %esi fstps (%edx,%ecx) movl (%ebx),%eax flds (%eax,%ecx) flds 8(%eax,%ecx) fxch %st(1) fmul %st(2),%st fxch %st(1) fmul %st(3),%st faddp %st,%st(1) movl 4(%ebx),%edx fstps 8(%edx,%ecx) movl (%ebx),%eax flds 4(%eax,%ecx) movl 4(%ebx),%edx fstps 4(%edx,%ecx) addl $12,%ecx cmpl 8(%ebx),%esi jl .L508 .L537: fstp %st(0) fstp %st(0) popl %ebx popl %esi leave ret .Lfe4: .size surf3d_rotate,.Lfe4-surf3d_rotate .align 4 .globl surf3d_translate .type surf3d_translate,@function surf3d_translate: pushl %ebp movl %esp,%ebp pushl %ebx movl 8(%ebp),%ecx xorl %ebx,%ebx cmpl 8(%ecx),%ebx jge .L512 xorl %edx,%edx .p2align 4,,7 .L514: movl 4(%ecx),%eax flds (%eax,%edx) fadds 12(%ecx) incl %ebx fstps (%eax,%edx) movl 4(%ecx),%eax flds 4(%eax,%edx) fadds 16(%ecx) fstps 4(%eax,%edx) movl 4(%ecx),%eax flds 8(%eax,%edx) fadds 20(%ecx) fstps 8(%eax,%edx) addl $12,%edx cmpl 8(%ecx),%ebx jl .L514 .L512: popl %ebx leave ret .Lfe5: .size surf3d_translate,.Lfe5-surf3d_translate .ident "GCC: (GNU) 2.95.3 19991030 (prerelease)"