home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-01-31 | 58.6 KB | 3,379 lines |
-
- ; Storm C Compiler
- ; TEMP:Mesa_2_5/src/matrix.c
- mc68030
- mc68881
- XREF _gl_error
- XREF _gl_problem
- XREF _gl_ResizeBuffersMESA
- XREF _memcpy
- XREF _printf
- XREF _sqrt__r
- XREF _cos__r
- XREF _sin__r
- XREF _std__in
- XREF _std__out
- XREF _std__err
- XREF _CC
-
- SECTION "_Identity:1",DATA
-
- _Identity
- dc.l $3F800000,0,0,0,0,$3F800000,0,0,0,0,$3F800000
- dc.l 0,0,0,0,$3F800000
-
- SECTION "_print_matrix:0",CODE
-
- rts
-
- ;static void print_matrix( const GLfloat m[16] )
- _print_matrix
- movem.l d2/a2,-(a7)
- move.l $C(a7),a2
- L93
- ; for (i=0;
- moveq #0,d2
- bra.b L95
- L94
- ; printf("%f %f %f %f\n", m[i], m[4+i], m[8+i], m[12+i] );
- lea $30(a2),a0
- lea 0(a0,d2.l*4),a0
- fmove.s (a0),fp0
- fmove.d fp0,-(a7)
- lea $20(a2),a0
- lea 0(a0,d2.l*4),a0
- fmove.s (a0),fp0
- fmove.d fp0,-(a7)
- lea $10(a2),a0
- lea 0(a0,d2.l*4),a0
- fmove.s (a0),fp0
- fmove.d fp0,-(a7)
- lea 0(a2,d2.l*4),a0
- fmove.s (a0),fp0
- fmove.d fp0,-(a7)
- move.l #L92,-(a7)
- jsr _printf
- add.w #$24,a7
- addq.l #1,d2
- L95
- cmp.l #4,d2
- blt.b L94
- L96
- movem.l (a7)+,d2/a2
- rts
-
- L92
- dc.b '%f %f %f %f',$A,0
-
- SECTION "_matmul:0",CODE
-
-
- ;static void matmul( GLfloat *product, const GLfloat *a, const GLfloa
- _matmul
- movem.l a2/a3,-(a7)
- fmovem.x fp2/fp3/fp4/fp5/fp6,-(a7)
- move.l $50(a7),a0
- move.l $48(a7),a2
- move.l $4C(a7),a3
- L97
- ; for (i = 0;
- moveq #0,d0
- bra L99
- L98
- ; GLfloat ai0=A(i,0)
- lea 0(a3,d0.l*4),a1
- fmove.s (a1),fp4
- ; GLfloat ai0=A(i,0), ai1=A(i,1)
- lea $10(a3),a1
- lea 0(a1,d0.l*4),a1
- fmove.s (a1),fp3
- ; GLfloat ai0=A(i,0), a
- lea $20(a3),a1
- lea 0(a1,d0.l*4),a1
- fmove.s (a1),fp2
- ; GLfloat ai0=A
- lea $30(a3),a1
- lea 0(a1,d0.l*4),a1
- fmove.s (a1),fp1
- ; P(i,0) = ai0 * B(0,0) + ai1 * B(1,0) + ai2 * B(2,0)
- fmove.s (a0),fp0
- fmul.x fp4,fp0
- lea 4(a0),a1
- fmove.s (a1),fp5
- fmul.x fp3,fp5
- fadd.x fp5,fp0
- lea $8(a0),a1
- fmove.s (a1),fp5
- fmul.x fp2,fp5
- fadd.x fp5,fp0
- lea $C(a0),a1
- fmove.s (a1),fp5
- fmul.x fp1,fp5
- fadd.x fp5,fp0
- lea 0(a2,d0.l*4),a1
- fmove.s fp0,(a1)
- ; P(i,1) = ai0 * B(0,1) + ai1 * B(1,1) + ai2 * B(2,1)
- lea $10(a0),a1
- fmove.s (a1),fp0
- fmul.x fp4,fp0
- lea $14(a0),a1
- fmove.s (a1),fp5
- fmul.x fp3,fp5
- fadd.x fp5,fp0
- lea $18(a0),a1
- fmove.s (a1),fp5
- fmul.x fp2,fp5
- fadd.x fp5,fp0
- lea $1C(a0),a1
- fmove.s (a1),fp5
- fmul.x fp1,fp5
- fadd.x fp5,fp0
- lea $10(a2),a1
- lea 0(a1,d0.l*4),a1
- fmove.s fp0,(a1)
- ; P(i,2) = ai0 * B(0,2) + ai1 * B(1,2) + ai2 * B(2,2)
- lea $20(a0),a1
- fmove.s (a1),fp0
- fmul.x fp4,fp0
- lea $24(a0),a1
- fmove.s (a1),fp5
- fmul.x fp3,fp5
- fadd.x fp5,fp0
- lea $28(a0),a1
- fmove.s (a1),fp5
- fmul.x fp2,fp5
- fadd.x fp5,fp0
- lea $2C(a0),a1
- fmove.s (a1),fp5
- fmul.x fp1,fp5
- fadd.x fp5,fp0
- lea $20(a2),a1
- lea 0(a1,d0.l*4),a1
- fmove.s fp0,(a1)
- ; P(i,3) = ai0 * B(0,3) + ai1 * B(1,3) + ai2 * B(2,3)
- lea $30(a0),a1
- fmove.s (a1),fp0
- fmul.x fp4,fp0
- lea $34(a0),a1
- fmove.s (a1),fp4
- fmul.x fp3,fp4
- fadd.x fp4,fp0
- lea $38(a0),a1
- fmove.s (a1),fp3
- fmul.x fp2,fp3
- fadd.x fp3,fp0
- lea $3C(a0),a1
- fmove.s (a1),fp2
- fmul.x fp1,fp2
- fadd.x fp2,fp0
- lea $30(a2),a1
- lea 0(a1,d0.l*4),a1
- fmove.s fp0,(a1)
- addq.l #1,d0
- L99
- cmp.l #4,d0
- blt L98
- L100
- fmovem.x (a7)+,fp2/fp3/fp4/fp5/fp6
- movem.l (a7)+,a2/a3
- rts
-
- SECTION "_invert_matrix_general:0",CODE
-
-
- ;static void invert_matrix_general( const GLfloat *m, GLfloat *out )
- _invert_matrix_general
- L102 EQU -$7C
- link a5,#L102
- move.l a2,-(a7)
- fmovem.x fp2,-(a7)
- movem.l $8(a5),a0/a1
- L101
- ; const GLfloat * A = m;
- ; GLfloat * C = out;
- ; one_over_det = 1.0f / ( ( A[M00] * A[M11] ) - ( A[M10] * A[M01
- fmove.s (a0),fp0
- lea $14(a0),a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea 4(a0),a2
- fmove.s (a2),fp1
- lea $10(a0),a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fsub.x fp1,fp0
- fmove.s #$.3F800000,fp1
- fdiv.x fp0,fp1
- fmove.x fp1,fp0
- ; r1[0][0] = one_over_det * A[M11];
- lea $14(a0),a2
- fmove.s (a2),fp1
- fmul.x fp0,fp1
- lea -$10(a5),a2
- fmove.s fp1,(a2)
- ; r1[0][1] = one_over_det * -A[M01];
- lea $10(a0),a2
- fmove.s (a2),fp1
- fneg.s fp1
- fmul.x fp0,fp1
- lea -$10(a5),a2
- addq.w #4,a2
- fmove.s fp1,(a2)
- ; r1[1][0] = one_over_det * -A[M10];
- lea 4(a0),a2
- fmove.s (a2),fp1
- fneg.s fp1
- fmul.x fp0,fp1
- lea -$10(a5),a2
- addq.w #$8,a2
- fmove.s fp1,(a2)
- ; r1[1][1] = one_over_det * A[M00];
- fmove.s (a0),fp1
- fmul.x fp0,fp1
- lea -$10(a5),a2
- addq.w #$8,a2
- addq.w #4,a2
- fmove.s fp1,(a2)
- ; r2[0][0] = A[M20] * r1[0][0] + A[M21] * r1[1][0];
- lea $8(a0),a2
- fmove.s (a2),fp0
- lea -$10(a5),a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea $18(a0),a2
- fmove.s (a2),fp1
- lea -$10(a5),a2
- addq.w #$8,a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$20(a5),a2
- fmove.s fp0,(a2)
- ; r2[0][1] = A[M20] * r1[0][1] + A[M21] * r1[1][1];
- lea $8(a0),a2
- fmove.s (a2),fp0
- lea -$10(a5),a2
- addq.w #4,a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea $18(a0),a2
- fmove.s (a2),fp1
- lea -$10(a5),a2
- addq.w #$8,a2
- addq.w #4,a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$20(a5),a2
- addq.w #4,a2
- fmove.s fp0,(a2)
- ; r2[1][0] = A[M30] * r1[0][0] + A[M31] * r1[1][0];
- lea $C(a0),a2
- fmove.s (a2),fp0
- lea -$10(a5),a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea $1C(a0),a2
- fmove.s (a2),fp1
- lea -$10(a5),a2
- addq.w #$8,a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$20(a5),a2
- addq.w #$8,a2
- fmove.s fp0,(a2)
- ; r2[1][1] = A[M30] * r1[0][1] + A[M31] * r1[1][1];
- lea $C(a0),a2
- fmove.s (a2),fp0
- lea -$10(a5),a2
- addq.w #4,a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea $1C(a0),a2
- fmove.s (a2),fp1
- lea -$10(a5),a2
- addq.w #$8,a2
- addq.w #4,a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$20(a5),a2
- addq.w #$8,a2
- addq.w #4,a2
- fmove.s fp0,(a2)
- ; r3[0][0] = r1[0][0] * A[M02] + r1[0][1] * A[M12];
- lea -$10(a5),a2
- fmove.s (a2),fp0
- lea $20(a0),a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea -$10(a5),a2
- addq.w #4,a2
- fmove.s (a2),fp1
- lea $24(a0),a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$30(a5),a2
- fmove.s fp0,(a2)
- ; r3[0][1] = r1[0][0] * A[M03] + r1[0][1] * A[M13];
- lea -$10(a5),a2
- fmove.s (a2),fp0
- lea $30(a0),a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea -$10(a5),a2
- addq.w #4,a2
- fmove.s (a2),fp1
- lea $34(a0),a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$30(a5),a2
- addq.w #4,a2
- fmove.s fp0,(a2)
- ; r3[1][0] = r1[1][0] * A[M02] + r1[1][1] * A[M12];
- lea -$10(a5),a2
- addq.w #$8,a2
- fmove.s (a2),fp0
- lea $20(a0),a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea -$10(a5),a2
- addq.w #$8,a2
- addq.w #4,a2
- fmove.s (a2),fp1
- lea $24(a0),a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$30(a5),a2
- addq.w #$8,a2
- fmove.s fp0,(a2)
- ; r3[1][1] = r1[1][0] * A[M03] + r1[1][1] * A[M13];
- lea -$10(a5),a2
- addq.w #$8,a2
- fmove.s (a2),fp0
- lea $30(a0),a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea -$10(a5),a2
- addq.w #$8,a2
- addq.w #4,a2
- fmove.s (a2),fp1
- lea $34(a0),a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$30(a5),a2
- addq.w #$8,a2
- addq.w #4,a2
- fmove.s fp0,(a2)
- ; r4[0][0] = A[M20] * r3[0][0] + A[M21] * r3[1][0];
- lea $8(a0),a2
- fmove.s (a2),fp0
- lea -$30(a5),a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea $18(a0),a2
- fmove.s (a2),fp1
- lea -$30(a5),a2
- addq.w #$8,a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$40(a5),a2
- fmove.s fp0,(a2)
- ; r4[0][1] = A[M20] * r3[0][1] + A[M21] * r3[1][1];
- lea $8(a0),a2
- fmove.s (a2),fp0
- lea -$30(a5),a2
- addq.w #4,a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea $18(a0),a2
- fmove.s (a2),fp1
- lea -$30(a5),a2
- addq.w #$8,a2
- addq.w #4,a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$40(a5),a2
- addq.w #4,a2
- fmove.s fp0,(a2)
- ; r4[1][0] = A[M30] * r3[0][0] + A[M31] * r3[1][0];
- lea $C(a0),a2
- fmove.s (a2),fp0
- lea -$30(a5),a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea $1C(a0),a2
- fmove.s (a2),fp1
- lea -$30(a5),a2
- addq.w #$8,a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$40(a5),a2
- addq.w #$8,a2
- fmove.s fp0,(a2)
- ; r4[1][1] = A[M30] * r3[0][1] + A[M31] * r3[1][1];
- lea $C(a0),a2
- fmove.s (a2),fp0
- lea -$30(a5),a2
- addq.w #4,a2
- fmove.s (a2),fp1
- fmul.x fp1,fp0
- lea $1C(a0),a2
- fmove.s (a2),fp1
- lea -$30(a5),a2
- addq.w #$8,a2
- addq.w #4,a2
- fmove.s (a2),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$40(a5),a2
- addq.w #$8,a2
- addq.w #4,a2
- fmove.s fp0,(a2)
- ; r5[0][0] = r4[0][0] - A[M22];
- lea -$40(a5),a2
- fmove.s (a2),fp0
- lea $28(a0),a2
- fmove.s (a2),fp1
- fsub.x fp1,fp0
- lea -$50(a5),a2
- fmove.s fp0,(a2)
- ; r5[0][1] = r4[0][1] - A[M23];
- lea -$40(a5),a2
- addq.w #4,a2
- fmove.s (a2),fp0
- lea $38(a0),a2
- fmove.s (a2),fp1
- fsub.x fp1,fp0
- lea -$50(a5),a2
- addq.w #4,a2
- fmove.s fp0,(a2)
- ; r5[1][0] = r4[1][0] - A[M32];
- lea -$40(a5),a2
- addq.w #$8,a2
- fmove.s (a2),fp0
- lea $2C(a0),a2
- fmove.s (a2),fp1
- fsub.x fp1,fp0
- lea -$50(a5),a2
- addq.w #$8,a2
- fmove.s fp0,(a2)
- ; r5[1][1] = r4[1][1] - A[M33];
- lea -$40(a5),a2
- addq.w #$8,a2
- addq.w #4,a2
- fmove.s (a2),fp0
- add.w #$3C,a0
- fmove.s (a0),fp1
- fsub.x fp1,fp0
- lea -$50(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s fp0,(a0)
- ; one_over_det = 1.0f / ( ( r5[0][0] * r5[1][1] ) - ( r5[1][0] *
- lea -$50(a5),a0
- fmove.s (a0),fp0
- lea -$50(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$50(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp1
- lea -$50(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fsub.x fp1,fp0
- fmove.s #$.3F800000,fp1
- fdiv.x fp0,fp1
- fmove.x fp1,fp0
- ; r6[0][0] = one_over_det * r5[1][1];
- lea -$50(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp1
- fmul.x fp0,fp1
- lea -$60(a5),a0
- fmove.s fp1,(a0)
- ; r6[0][1] = one_over_det * -r5[0][1];
- lea -$50(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- fneg.s fp1
- fmul.x fp0,fp1
- lea -$60(a5),a0
- addq.w #4,a0
- fmove.s fp1,(a0)
- ; r6[1][0] = one_over_det * -r5[1][0];
- lea -$50(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp1
- fneg.s fp1
- fmul.x fp0,fp1
- lea -$60(a5),a0
- addq.w #$8,a0
- fmove.s fp1,(a0)
- ; r6[1][1] = one_over_det * r5[0][0];
- lea -$50(a5),a0
- fmove.s (a0),fp1
- fmul.x fp0,fp1
- lea -$60(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s fp1,(a0)
- ; C[M02] = r3[0][0] * r6[0][0] + r3[0][1] * r6[1][0];
- lea -$30(a5),a0
- fmove.s (a0),fp0
- lea -$60(a5),a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$30(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea -$60(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $20(a1),a0
- fmove.s fp0,(a0)
- ; C[M03] = r3[0][0] * r6[0][1] + r3[0][1] * r6[1][1];
- lea -$30(a5),a0
- fmove.s (a0),fp0
- lea -$60(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$30(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea -$60(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $30(a1),a0
- fmove.s fp0,(a0)
- ; C[M12] = r3[1][0] * r6[0][0] + r3[1][1] * r6[1][0];
- lea -$30(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp0
- lea -$60(a5),a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$30(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea -$60(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $24(a1),a0
- fmove.s fp0,(a0)
- ; C[M13] = r3[1][0] * r6[0][1] + r3[1][1] * r6[1][1];
- lea -$30(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp0
- lea -$60(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$30(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea -$60(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $34(a1),a0
- fmove.s fp0,(a0)
- ; C[M20] = r6[0][0] * r2[0][0] + r6[0][1] * r2[1][0];
- lea -$60(a5),a0
- fmove.s (a0),fp0
- lea -$20(a5),a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$60(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea -$20(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $8(a1),a0
- fmove.s fp0,(a0)
- ; C[M21] = r6[0][0] * r2[0][1] + r6[0][1] * r2[1][1];
- lea -$60(a5),a0
- fmove.s (a0),fp0
- lea -$20(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$60(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea -$20(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $18(a1),a0
- fmove.s fp0,(a0)
- ; C[M30] = r6[1][0] * r2[0][0] + r6[1][1] * r2[1][0];
- lea -$60(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp0
- lea -$20(a5),a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$60(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea -$20(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $C(a1),a0
- fmove.s fp0,(a0)
- ; C[M31] = r6[1][0] * r2[0][1] + r6[1][1] * r2[1][1];
- lea -$60(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp0
- lea -$20(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$60(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea -$20(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $1C(a1),a0
- fmove.s fp0,(a0)
- ; r7[0][0] = r3[0][0] * C[M20] + r3[0][1] * C[M30];
- lea -$30(a5),a0
- fmove.s (a0),fp0
- lea $8(a1),a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$30(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea $C(a1),a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$70(a5),a0
- fmove.s fp0,(a0)
- ; r7[0][1] = r3[0][0] * C[M21] + r3[0][1] * C[M31];
- lea -$30(a5),a0
- fmove.s (a0),fp0
- lea $18(a1),a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$30(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea $1C(a1),a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$70(a5),a0
- addq.w #4,a0
- fmove.s fp0,(a0)
- ; r7[1][0] = r3[1][0] * C[M20] + r3[1][1] * C[M30];
- lea -$30(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp0
- lea $8(a1),a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$30(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea $C(a1),a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$70(a5),a0
- addq.w #$8,a0
- fmove.s fp0,(a0)
- ; r7[1][1] = r3[1][0] * C[M21] + r3[1][1] * C[M31];
- lea -$30(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp0
- lea $18(a1),a0
- fmove.s (a0),fp1
- fmul.x fp1,fp0
- lea -$30(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp1
- lea $1C(a1),a0
- fmove.s (a0),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea -$70(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s fp0,(a0)
- ; C[M00] = r1[0][0] - r7[0][0];
- lea -$10(a5),a0
- fmove.s (a0),fp0
- lea -$70(a5),a0
- fmove.s (a0),fp1
- fsub.x fp1,fp0
- fmove.s fp0,(a1)
- ; C[M01] = r1[0][1] - r7[0][1];
- lea -$10(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp0
- lea -$70(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp1
- fsub.x fp1,fp0
- lea $10(a1),a0
- fmove.s fp0,(a0)
- ; C[M10] = r1[1][0] - r7[1][0];
- lea -$10(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp0
- lea -$70(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp1
- fsub.x fp1,fp0
- lea 4(a1),a0
- fmove.s fp0,(a0)
- ; C[M11] = r1[1][1] - r7[1][1];
- lea -$10(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp0
- lea -$70(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp1
- fsub.x fp1,fp0
- lea $14(a1),a0
- fmove.s fp0,(a0)
- ; C[M22] = -r6[0][0];
- lea -$60(a5),a0
- fmove.s (a0),fp0
- fneg.s fp0
- lea $28(a1),a0
- fmove.s fp0,(a0)
- ; C[M23] = -r6[0][1];
- lea -$60(a5),a0
- addq.w #4,a0
- fmove.s (a0),fp0
- fneg.s fp0
- lea $38(a1),a0
- fmove.s fp0,(a0)
- ; C[M32] = -r6[1][0];
- lea -$60(a5),a0
- addq.w #$8,a0
- fmove.s (a0),fp0
- fneg.s fp0
- lea $2C(a1),a0
- fmove.s fp0,(a0)
- ; C[M33] = -r6[1][1];
- lea -$60(a5),a0
- addq.w #$8,a0
- addq.w #4,a0
- fmove.s (a0),fp0
- fneg.s fp0
- lea $3C(a1),a0
- fmove.s fp0,(a0)
- fmovem.x (a7)+,fp2
- move.l (a7)+,a2
- unlk a5
- rts
-
- SECTION "_invert_matrix:0",CODE
-
-
- ;static void invert_matrix( const GLfloat *m, GLfloat *out )
- _invert_matrix
- L112 EQU -$68
- link a5,#L112
- move.l a2,-(a7)
- fmovem.x fp2/fp3/fp4/fp5/fp6,-(a7)
- movem.l $8(a5),a0/a2
- L103
- ; if( m41 != 0. || m42 != 0. || m43 != 0. || m44 != 1. )
- lea $C(a0),a1
- fmove.s (a1),fp0
- ftst.d fp0
- fbne.b L107
- L104
- lea $1C(a0),a1
- fmove.s (a1),fp0
- ftst.d fp0
- fbne.b L107
- L105
- lea $2C(a0),a1
- fmove.s (a1),fp0
- ftst.d fp0
- fbne.b L107
- L106
- lea $3C(a0),a1
- fmove.s (a1),fp0
- fcmp.d #$.3FF00000.00000000,fp0
- fbeq.b L108
- L107
- ; invert_matrix_general(m, out);
- move.l a2,-(a7)
- move.l a0,-(a7)
- jsr _invert_matrix_general
- addq.w #$8,a7
- fmovem.x (a7)+,fp2/fp3/fp4/fp5/fp6
- move.l (a7)+,a2
- unlk a5
- rts
- L108
- ; tmp[0]= m22 * m33 - m23 * m32;
- lea $14(a0),a1
- fmove.s (a1),fp0
- lea $28(a0),a1
- fmove.s (a1),fp1
- fmul.x fp1,fp0
- lea $24(a0),a1
- fmove.s (a1),fp1
- lea $18(a0),a1
- fmove.s (a1),fp2
- fmul.x fp2,fp1
- fsub.x fp1,fp0
- lea -$40(a5),a1
- fmove.s fp0,(a1)
- ; tmp[1]= m23 * m31 - m21 * m33;
- lea $24(a0),a1
- fmove.s (a1),fp0
- lea $8(a0),a1
- fmove.s (a1),fp1
- fmul.x fp1,fp0
- lea 4(a0),a1
- fmove.s (a1),fp1
- lea $28(a0),a1
- fmove.s (a1),fp2
- fmul.x fp2,fp1
- fsub.x fp1,fp0
- lea -$40(a5),a1
- addq.w #4,a1
- fmove.s fp0,(a1)
- ; tmp[2]= m21 * m32 - m22 * m31;
- lea 4(a0),a1
- fmove.s (a1),fp0
- lea $18(a0),a1
- fmove.s (a1),fp1
- fmul.x fp1,fp0
- lea $14(a0),a1
- fmove.s (a1),fp1
- lea $8(a0),a1
- fmove.s (a1),fp2
- fmul.x fp2,fp1
- fsub.x fp1,fp0
- lea -$40(a5),a1
- addq.w #$8,a1
- fmove.s fp0,(a1)
- ; det= m11 * tmp[0] + m12 * tmp[1] + m13 * tmp[2];
- fmove.s (a0),fp0
- lea -$40(a5),a1
- fmove.s (a1),fp1
- fmul.x fp1,fp0
- lea $10(a0),a1
- fmove.s (a1),fp1
- lea -$40(a5),a1
- addq.w #4,a1
- fmove.s (a1),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $20(a0),a1
- fmove.s (a1),fp1
- lea -$40(a5),a1
- addq.w #$8,a1
- fmove.s (a1),fp2
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- ; if (det == 0.0F)
- fcmp.s #$.00000000,fp0
- fbne.b L110
- L109
- ; MEMCPY( out, I
- pea $40.w
- move.l #_Identity,-(a7)
- move.l a2,-(a7)
- jsr _memcpy
- add.w #$C,a7
- bra L111
- L110
- ; det= 1. / det;
- fmove.d #$.3FF00000.00000000,fp1
- fdiv.x fp0,fp1
- fmove.x fp1,fp0
- ; tmp[0] *= det;
- lea -$40(a5),a1
- fmove.s (a1),fp1
- fmul.x fp0,fp1
- fmove.s fp1,(a1)
- ; tmp[1] *= det;
- lea -$40(a5),a1
- addq.w #4,a1
- fmove.s (a1),fp1
- fmul.x fp0,fp1
- fmove.s fp1,(a1)
- ; tmp[2] *= det;
- lea -$40(a5),a1
- addq.w #$8,a1
- fmove.s (a1),fp1
- fmul.x fp0,fp1
- fmove.s fp1,(a1)
- ; tmp[3] = 0.;
- lea -$40(a5),a1
- add.w #$C,a1
- clr.l (a1)
- ; im11= m11 * det;
- fmove.s (a0),fp3
- fmul.x fp0,fp3
- ; im12= m12 * det;
- lea $10(a0),a1
- fmove.s (a1),fp2
- fmul.x fp0,fp2
- ; im13= m13 * det;
- lea $20(a0),a1
- fmove.s (a1),fp1
- fmul.x fp0,fp1
- ; im14= m14 * det;
- lea $30(a0),a1
- move.l (a1),-$64(a5)
- fmove.s -$64(a5),fp4
- fmul.x fp0,fp4
- fmove.s fp4,-$64(a5)
- ; tmp[4] = im13 * m32 - im12 * m33;
- lea $18(a0),a1
- fmove.s (a1),fp0
- fmul.x fp1,fp0
- lea $28(a0),a1
- fmove.s (a1),fp4
- fmul.x fp2,fp4
- fsub.x fp4,fp0
- lea -$40(a5),a1
- add.w #$10,a1
- fmove.s fp0,(a1)
- ; tmp[5] = im11 * m33 - im13 * m31;
- lea $28(a0),a1
- fmove.s (a1),fp0
- fmul.x fp3,fp0
- lea $8(a0),a1
- fmove.s (a1),fp4
- fmul.x fp1,fp4
- fsub.x fp4,fp0
- lea -$40(a5),a1
- add.w #$14,a1
- fmove.s fp0,(a1)
- ; tmp[6] = im12 * m31 - im11 * m32;
- lea $8(a0),a1
- fmove.s (a1),fp0
- fmul.x fp2,fp0
- lea $18(a0),a1
- fmove.s (a1),fp4
- fmul.x fp3,fp4
- fsub.x fp4,fp0
- lea -$40(a5),a1
- add.w #$18,a1
- fmove.s fp0,(a1)
- ; tmp[7] = 0.;
- lea -$40(a5),a1
- add.w #$1C,a1
- clr.l (a1)
- ; d12 = im11*m22 - m21*im12;
- lea $14(a0),a1
- move.l (a1),-$44(a5)
- fmove.s -$44(a5),fp0
- fmul.x fp3,fp0
- fmove.s fp0,-$44(a5)
- lea 4(a0),a1
- fmove.s (a1),fp0
- fmul.x fp2,fp0
- fmove.s -$44(a5),fp4
- fsub.x fp0,fp4
- fmove.s fp4,-$44(a5)
- ; d13 = im11*m23 - m21*im13;
- lea $24(a0),a1
- move.l (a1),-$48(a5)
- fmove.s -$48(a5),fp0
- fmul.x fp3,fp0
- fmove.s fp0,-$48(a5)
- lea 4(a0),a1
- fmove.s (a1),fp0
- fmul.x fp1,fp0
- fmove.s -$48(a5),fp4
- fsub.x fp0,fp4
- fmove.s fp4,-$48(a5)
- ; d23 = im12*m23 - m22*im13;
- lea $24(a0),a1
- fmove.s (a1),fp5
- fmul.x fp2,fp5
- lea $14(a0),a1
- fmove.s (a1),fp0
- fmul.x fp1,fp0
- fsub.x fp0,fp5
- ; d24 = im12*m24 - m22*im14;
- lea $34(a0),a1
- fmove.s (a1),fp4
- fmul.x fp2,fp4
- lea $14(a0),a1
- fmove.s (a1),fp0
- fmul.s -$64(a5),fp0
- fsub.x fp0,fp4
- ; d34 = im13*m24 - m23*im14;
- lea $34(a0),a1
- fmove.s (a1),fp2
- fmul.x fp1,fp2
- lea $24(a0),a1
- fmove.s (a1),fp0
- fmul.s -$64(a5),fp0
- fsub.x fp0,fp2
- ; d41 = im14*m21 - m24*im11;
- lea 4(a0),a1
- fmove.s (a1),fp1
- fmul.s -$64(a5),fp1
- lea $34(a0),a1
- fmove.s (a1),fp0
- fmul.x fp3,fp0
- fsub.x fp0,fp1
- ; tmp[8] = d23;
- lea -$40(a5),a1
- add.w #$20,a1
- fmove.s fp5,(a1)
- ; tmp[9] = -d13;
- fmove.s -$48(a5),fp0
- fneg.s fp0
- lea -$40(a5),a1
- add.w #$24,a1
- fmove.s fp0,(a1)
- ; tmp[10] = d12;
- lea -$40(a5),a1
- add.w #$28,a1
- move.l -$44(a5),(a1)
- ; tmp[11] = 0.;
- lea -$40(a5),a1
- add.w #$2C,a1
- clr.l (a1)
- ; tmp[12] = -(m32 * d34 - m33 * d24 + m34 * d23);
- lea $18(a0),a1
- fmove.s (a1),fp0
- fmul.x fp2,fp0
- lea $28(a0),a1
- fmove.s (a1),fp3
- fmul.x fp4,fp3
- fsub.x fp3,fp0
- lea $38(a0),a1
- fmove.s (a1),fp3
- fmul.x fp5,fp3
- fadd.x fp3,fp0
- fneg.s fp0
- lea -$40(a5),a1
- add.w #$30,a1
- fmove.s fp0,(a1)
- ; tmp[13] = (m31 * d34 + m33 * d41 + m34 * d13);
- lea $8(a0),a1
- fmove.s (a1),fp0
- fmul.x fp2,fp0
- lea $28(a0),a1
- fmove.s (a1),fp2
- fmul.x fp1,fp2
- fadd.x fp2,fp0
- lea $38(a0),a1
- fmove.s (a1),fp2
- fmul.s -$48(a5),fp2
- fadd.x fp2,fp0
- lea -$40(a5),a1
- add.w #$34,a1
- fmove.s fp0,(a1)
- ; tmp[14] = -(m31 * d24 + m32 * d41 + m34 * d12);
- lea $8(a0),a1
- fmove.s (a1),fp0
- fmul.x fp4,fp0
- lea $18(a0),a1
- fmove.s (a1),fp2
- fmul.x fp1,fp2
- fadd.x fp2,fp0
- add.w #$38,a0
- fmove.s (a0),fp1
- fmul.s -$44(a5),fp1
- fadd.x fp1,fp0
- fneg.s fp0
- lea -$40(a5),a0
- add.w #$38,a0
- fmove.s fp0,(a0)
- ; tmp[15] = 1.;
- lea -$40(a5),a0
- add.w #$3C,a0
- move.l #$3F800000,(a0)
- ; MEMCPY(out, tmp, 16*s
- pea $40.w
- lea -$40(a5),a0
- move.l a0,-(a7)
- move.l a2,-(a7)
- jsr _memcpy
- add.w #$C,a7
- L111
- fmovem.x (a7)+,fp2/fp3/fp4/fp5/fp6
- move.l (a7)+,a2
- unlk a5
- rts
-
- SECTION "_is_identity:0",CODE
-
-
- ;static GLboolean is_identity( const GLfloat m[16] )
- _is_identity
- move.l 4(a7),a0
- L113
- ; if ( m[0]==1.0F && m[4]==0.0F && m[ 8]==0.0F && m[12]==0.0F
- fmove.s (a0),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L130
- L114
- lea $10(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L115
- lea $20(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L116
- lea $30(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L117
- lea 4(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L118
- lea $14(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L130
- L119
- lea $24(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L120
- lea $34(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L121
- lea $8(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L122
- lea $18(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L123
- lea $28(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L130
- L124
- lea $38(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L125
- lea $C(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L126
- lea $1C(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L127
- lea $2C(a0),a1
- fmove.s (a1),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L130
- L128
- add.w #$3C,a0
- fmove.s (a0),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L130
- L129
- moveq #1,d0
- rts
- L130
- moveq #0,d0
- rts
-
- SECTION "_gl_analyze_modelview_matrix:0",CODE
-
-
- ;void gl_analyze_modelview_matrix( GLcontext *ctx )
- XDEF _gl_analyze_modelview_matrix
- _gl_analyze_modelview_matrix
- L164 EQU -4
- link a5,#L164
- move.l a2,-(a7)
- L131
- ; const GLfloat *m = ctx->ModelViewMatrix;
- move.l $8(a5),a0
- lea $982(a0),a2
- ; if (is_identity(m))
- move.l a2,-(a7)
- jsr _is_identity
- addq.w #4,a7
- tst.b d0
- beq.b L133
- L132
- ; ctx->ModelViewMatrixType = MATRIX_IDENTITY;
- move.l $8(a5),a0
- move.l #1,$97E(a0)
- bra L163
- L133
- ; else if ( m[4]==0.0F && m[ 8]==0.0F
- lea $10(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L146
- L134
- lea $20(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L146
- L135
- lea 4(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L146
- L136
- lea $24(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L146
- L137
- lea $8(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L146
- L138
- lea $18(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L146
- L139
- lea $28(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L146
- L140
- lea $38(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L146
- L141
- lea $C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L146
- L142
- lea $1C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L146
- L143
- lea $2C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L146
- L144
- lea $3C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L146
- L145
- ; ctx->ModelViewMatrixType = MATRIX_2D_NO_ROT;
- move.l $8(a5),a0
- move.l #5,$97E(a0)
- bra L163
- L146
- ; else if ( m[ 8]==0.0F
- lea $20(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L157
- L147
- lea $24(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L157
- L148
- lea $8(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L157
- L149
- lea $18(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L157
- L150
- lea $28(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L157
- L151
- lea $38(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L157
- L152
- lea $C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L157
- L153
- lea $1C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L157
- L154
- lea $2C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L157
- L155
- lea $3C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L157
- L156
- ; ctx->ModelViewMatrixType = MATRIX_2D;
- move.l $8(a5),a0
- move.l #4,$97E(a0)
- bra.b L163
- L157
- ; else if (m[3]==0.0F && m[7]==0.0F && m[11]==0.0F && m[15]
- lea $C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L162
- L158
- lea $1C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L162
- L159
- lea $2C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L162
- L160
- lea $3C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L162
- L161
- ; ctx->ModelViewMatrixType = MATRIX_3D;
- move.l $8(a5),a0
- move.l #6,$97E(a0)
- bra.b L163
- L162
- ; ctx->ModelViewMatrixType = MATRIX_GENERAL;
- move.l $8(a5),a0
- clr.l $97E(a0)
- L163
- ; invert_matrix( ctx->ModelViewMatrix, ctx->ModelViewInv );
- move.l $8(a5),a1
- lea $9C2(a1),a0
- move.l a0,-(a7)
- move.l $8(a5),a1
- lea $982(a1),a0
- move.l a0,-(a7)
- jsr _invert_matrix
- addq.w #$8,a7
- ; ctx->NewModelViewMatrix = GL_FALSE;
- move.l $8(a5),a0
- clr.b $97C(a0)
- move.l (a7)+,a2
- unlk a5
- rts
-
- SECTION "_gl_analyze_projection_matrix:0",CODE
-
-
- ;void gl_analyze_projection_matrix( GLcontext *ctx )
- XDEF _gl_analyze_projection_matrix
- _gl_analyze_projection_matrix
- L191 EQU -4
- link a5,#L191
- move.l a2,-(a7)
- L165
- ; const GLfloat *m = ctx->ProjectionMatrix;
- move.l $8(a5),a0
- lea $120C(a0),a2
- ; if (is_identity(m))
- move.l a2,-(a7)
- jsr _is_identity
- addq.w #4,a7
- tst.b d0
- beq.b L167
- L166
- ; ctx->ProjectionMatrixType = MATRIX_IDENTITY;
- move.l $8(a5),a0
- move.l #1,$1208(a0)
- bra L190
- L167
- ; else if ( m[4]==0.0F && m[8] ==0.0F
- lea $10(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L178
- L168
- lea $20(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L178
- L169
- lea 4(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L178
- L170
- lea $24(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L178
- L171
- lea $8(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L178
- L172
- lea $18(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L178
- L173
- lea $C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L178
- L174
- lea $1C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L178
- L175
- lea $2C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L178
- L176
- lea $3C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L178
- L177
- ; ctx->ProjectionMatrixType = MATRIX_ORTHO;
- move.l $8(a5),a0
- move.l #2,$1208(a0)
- bra L190
- L178
- ; else if ( m[4]==0.0F && m
- lea $10(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L189
- L179
- lea $30(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L189
- L180
- lea 4(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L189
- L181
- lea $34(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L189
- L182
- lea $8(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L189
- L183
- lea $18(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L189
- L184
- lea $C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L189
- L185
- lea $1C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L189
- L186
- lea $2C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.BF800000,fp0
- fbne.b L189
- L187
- lea $3C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L189
- L188
- ; ctx->ProjectionMatrixType = MATRIX_PERSPECTIVE;
- move.l $8(a5),a0
- move.l #3,$1208(a0)
- bra.b L190
- L189
- ; ctx->ProjectionMatrixType = MATRIX_GENERAL;
- move.l $8(a5),a0
- clr.l $1208(a0)
- L190
- ; ctx->NewProjectionMatrix = GL_FALSE;
- move.l $8(a5),a0
- clr.b $1206(a0)
- move.l (a7)+,a2
- unlk a5
- rts
-
- SECTION "_gl_analyze_texture_matrix:0",CODE
-
-
- ;void gl_analyze_texture_matrix( GLcontext *ctx )
- XDEF _gl_analyze_texture_matrix
- _gl_analyze_texture_matrix
- L212 EQU -4
- link a5,#L212
- move.l a2,-(a7)
- L192
- ; const GLfloat *m = ctx->TextureMatrix;
- move.l $8(a5),a0
- lea $1B56(a0),a2
- ; if (is_identity(m))
- move.l a2,-(a7)
- jsr _is_identity
- addq.w #4,a7
- tst.b d0
- beq.b L194
- L193
- ; ctx->TextureMatrixType = MATRIX_IDENTITY;
- move.l $8(a5),a0
- move.l #1,$1B52(a0)
- bra L211
- L194
- ; else if ( m[ 8]==0.0F
- lea $20(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L205
- L195
- lea $24(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L205
- L196
- lea $8(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L205
- L197
- lea $18(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L205
- L198
- lea $28(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L205
- L199
- lea $38(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L205
- L200
- lea $C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L205
- L201
- lea $1C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L205
- L202
- lea $2C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L205
- L203
- lea $3C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L205
- L204
- ; ctx->TextureMatrixType = MATRIX_2D;
- move.l $8(a5),a0
- move.l #4,$1B52(a0)
- bra.b L211
- L205
- ; else if (m[3]==0.0F && m[7]==0.0F && m[11]==0.0F && m[15]
- lea $C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L210
- L206
- lea $1C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L210
- L207
- lea $2C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.00000000,fp0
- fbne.b L210
- L208
- lea $3C(a2),a0
- fmove.s (a0),fp0
- fcmp.s #$.3F800000,fp0
- fbne.b L210
- L209
- ; ctx->TextureMatrixType = MATRIX_3D;
- move.l $8(a5),a0
- move.l #6,$1B52(a0)
- bra.b L211
- L210
- ; ctx->TextureMatrixType = MATRIX_GENERAL;
- move.l $8(a5),a0
- clr.l $1B52(a0)
- L211
- ; ctx->NewTextureMatrix = GL_FALSE;
- move.l $8(a5),a0
- clr.b $1B50(a0)
- move.l (a7)+,a2
- unlk a5
- rts
-
- SECTION "_gl_Frustum:0",CODE
-
-
- ;void gl_Frustum( GLcontext *ctx,
- XDEF _gl_Frustum
- _gl_Frustum
- L220 EQU -$64
- link a5,#L220
- move.l a2,-(a7)
- fmovem.x fp2/fp3/fp4/fp5/fp6,-(a7)
- move.l $8(a5),a2
- fmove.d $2C(a5),fp2
- fmove.d $34(a5),fp3
- fmove.d $24(a5),fp4
- fmove.d $14(a5),fp5
- L214
- ; if (nearval<=0.0 || farval<=0.0)
- fcmp.d #$.00000000.00000000,fp2
- fbole.b L216
- L215
- fcmp.d #$.00000000.00000000,fp3
- fbogt.b L217
- L216
- ; gl_error( ctx, GL_INVALID_VALUE, "glFrustum(near or far)
- move.l #L213,-(a7)
- pea $501.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- L217
- ; x = (2.0*nearval) / (right-left);
- fmove.x fp2,fp0
- fmul.d #$.40000000.00000000,fp0
- fmove.x fp5,fp1
- fsub.d $C(a5),fp1
- fdiv.x fp1,fp0
- fmove.s fp0,-4(a5)
- ; y = (2.0*nearval) / (top-bottom);
- fmove.x fp2,fp0
- fmul.d #$.40000000.00000000,fp0
- fmove.x fp4,fp1
- fsub.d $1C(a5),fp1
- fdiv.x fp1,fp0
- fmove.s fp0,-$8(a5)
- ; a = (right+left) / (right-left);
- fmove.x fp5,fp0
- fadd.d $C(a5),fp0
- fsub.d $C(a5),fp5
- fdiv.x fp5,fp0
- fmove.s fp0,-$C(a5)
- ; b = (top+bottom) / (top-bottom);
- fmove.x fp4,fp0
- fadd.d $1C(a5),fp0
- fsub.d $1C(a5),fp4
- fdiv.x fp4,fp0
- fmove.x fp0,fp5
- ; c = -(farval+nearval) / ( farval-nearval);
- fmove.x fp3,fp0
- fadd.x fp2,fp0
- fneg.d fp0
- fmove.x fp3,fp1
- fsub.x fp2,fp1
- fdiv.x fp1,fp0
- fmove.x fp0,fp4
- ; d = -(2.0*farval*nearval) / (farval-nearval);
- fmove.x fp3,fp0
- fmul.d #$.40000000.00000000,fp0
- fmul.x fp2,fp0
- fneg.d fp0
- fmove.x fp3,fp1
- fsub.x fp2,fp1
- fdiv.x fp1,fp0
- ; M(0,0) = x;
- lea -$58(a5),a0
- move.l -4(a5),(a0)
- ; M(0,1) = 0.0F;
- lea -$58(a5),a0
- add.w #$10,a0
- clr.l (a0)
- ; M(0,2) = a;
- lea -$58(a5),a0
- add.w #$20,a0
- move.l -$C(a5),(a0)
- ; M(0,3) = 0.0F;
- lea -$58(a5),a0
- add.w #$30,a0
- clr.l (a0)
- ; M(1,0) = 0.0F;
- lea -$58(a5),a0
- addq.w #4,a0
- clr.l (a0)
- ; M(1,1) = y;
- lea -$58(a5),a0
- add.w #$14,a0
- move.l -$8(a5),(a0)
- ; M(1,2) = b;
- lea -$58(a5),a0
- add.w #$24,a0
- fmove.s fp5,(a0)
- ; M(1,3) = 0.0F;
- lea -$58(a5),a0
- add.w #$34,a0
- clr.l (a0)
- ; M(2,0) = 0.0F;
- lea -$58(a5),a0
- addq.w #$8,a0
- clr.l (a0)
- ; M(2,1) = 0.0F;
- lea -$58(a5),a0
- add.w #$18,a0
- clr.l (a0)
- ; M(2,2) = c;
- lea -$58(a5),a0
- add.w #$28,a0
- fmove.s fp4,(a0)
- ; M(2,3) = d;
- lea -$58(a5),a0
- add.w #$38,a0
- fmove.s fp0,(a0)
- ; M(3,0) = 0.0F;
- lea -$58(a5),a0
- add.w #$C,a0
- clr.l (a0)
- ; M(3,1) = 0.0F;
- lea -$58(a5),a0
- add.w #$1C,a0
- clr.l (a0)
- ; M(3,2) = -1.0F;
- lea -$58(a5),a0
- add.w #$2C,a0
- move.l #$BF800000,(a0)
- ; M(3,3) = 0.0F;
- lea -$58(a5),a0
- add.w #$3C,a0
- clr.l (a0)
- ; gl_MultMatrixf( ctx, m );
- lea -$58(a5),a0
- move.l a0,-(a7)
- move.l a2,-(a7)
- jsr _gl_MultMatrixf
- addq.w #$8,a7
- ; ctx->NearFarStack[ctx->ProjectionStackDepth][0] = nearval;
- fmove.x fp2,fp0
- lea $1A50(a2),a0
- move.l $124C(a2),d0
- lea 0(a0,d0.l*8),a0
- fmove.s fp0,(a0)
- ; ctx->NearFarStack[ctx->ProjectionStackDepth][1] = farval;
- fmove.x fp3,fp0
- lea $1A50(a2),a0
- move.l $124C(a2),d0
- lea 0(a0,d0.l*8),a0
- addq.w #4,a0
- fmove.s fp0,(a0)
- ; if (ctx->Driver.NearFar)
- lea $8A0(a2),a0
- move.l $70(a0),a0
- cmp.w #0,a0
- beq.b L219
- L218
- ; (*ctx->Driver.NearFar)( ctx, nearval, farval );
- fmove.x fp3,fp0
- fmove.s fp0,-(a7)
- fmove.x fp2,fp0
- fmove.s fp0,-(a7)
- move.l a2,-(a7)
- lea $8A0(a2),a0
- move.l $70(a0),a0
- jsr (a0)
- add.w #$C,a7
- L219
- fmovem.x (a7)+,fp2/fp3/fp4/fp5/fp6
- move.l (a7)+,a2
- unlk a5
- rts
-
- L213
- dc.b 'glFrustum(near or far)',0
-
- SECTION "_gl_Ortho:0",CODE
-
-
- ;void gl_Ortho( GLcontext *ctx,
- XDEF _gl_Ortho
- _gl_Ortho
- L224 EQU -$68
- link a5,#L224
- move.l a2,-(a7)
- fmovem.x fp2/fp3/fp4/fp5/fp6,-(a7)
- move.l $8(a5),a2
- fmove.d $24(a5),fp1
- fmove.d $14(a5),fp2
- fmove.d $2C(a5),fp3
- fmove.d $34(a5),fp4
- fmove.d $1C(a5),fp5
- L221
- ; x = 2.0 / (right-left);
- fmove.x fp2,fp0
- fsub.d $C(a5),fp0
- fmove.d #$.40000000.00000000,fp6
- fdiv.x fp0,fp6
- fmove.x fp6,fp0
- fmove.s fp0,-4(a5)
- ; y = 2.0 / (top-bottom);
- fmove.x fp1,fp0
- fsub.x fp5,fp0
- fmove.d #$.40000000.00000000,fp6
- fdiv.x fp0,fp6
- fmove.x fp6,fp0
- fmove.s fp0,-$8(a5)
- ; z = -2.0 / (farval-nearval);
- fmove.x fp4,fp0
- fsub.x fp3,fp0
- fmove.d #$.C0000000.00000000,fp6
- fdiv.x fp0,fp6
- fmove.x fp6,fp0
- fmove.s fp0,-$C(a5)
- ; tx = -(right+left) / (right-left);
- fmove.x fp2,fp0
- fadd.d $C(a5),fp0
- fneg.d fp0
- fsub.d $C(a5),fp2
- fdiv.x fp2,fp0
- fmove.s fp0,-$10(a5)
- ; ty = -(top+bottom) / (top-bottom);
- fmove.x fp1,fp0
- fadd.x fp5,fp0
- fneg.d fp0
- fsub.x fp5,fp1
- fdiv.x fp1,fp0
- fmove.x fp0,fp2
- ; tz = -(farval+nearval) / (farval-nearval);
- fmove.x fp4,fp0
- fadd.x fp3,fp0
- fneg.d fp0
- fmove.x fp4,fp1
- fsub.x fp3,fp1
- fdiv.x fp1,fp0
- ; M(0,0) = x;
- lea -$58(a5),a0
- move.l -4(a5),(a0)
- ; M(0,1) = 0.0F;
- lea -$58(a5),a0
- add.w #$10,a0
- clr.l (a0)
- ; M(0,2) = 0.0F;
- lea -$58(a5),a0
- add.w #$20,a0
- clr.l (a0)
- ; M(0,3) = tx;
- lea -$58(a5),a0
- add.w #$30,a0
- move.l -$10(a5),(a0)
- ; M(1,0) = 0.0F;
- lea -$58(a5),a0
- addq.w #4,a0
- clr.l (a0)
- ; M(1,1) = y;
- lea -$58(a5),a0
- add.w #$14,a0
- move.l -$8(a5),(a0)
- ; M(1,2) = 0.0F;
- lea -$58(a5),a0
- add.w #$24,a0
- clr.l (a0)
- ; M(1,3) = ty;
- lea -$58(a5),a0
- add.w #$34,a0
- fmove.s fp2,(a0)
- ; M(2,0) = 0.0F;
- lea -$58(a5),a0
- addq.w #$8,a0
- clr.l (a0)
- ; M(2,1) = 0.0F;
- lea -$58(a5),a0
- add.w #$18,a0
- clr.l (a0)
- ; M(2,2) = z;
- lea -$58(a5),a0
- add.w #$28,a0
- move.l -$C(a5),(a0)
- ; M(2,3) = tz;
- lea -$58(a5),a0
- add.w #$38,a0
- fmove.s fp0,(a0)
- ; M(3,0) = 0.0F;
- lea -$58(a5),a0
- add.w #$C,a0
- clr.l (a0)
- ; M(3,1) = 0.0F;
- lea -$58(a5),a0
- add.w #$1C,a0
- clr.l (a0)
- ; M(3,2) = 0.0F;
- lea -$58(a5),a0
- add.w #$2C,a0
- clr.l (a0)
- ; M(3,3) = 1.0F;
- lea -$58(a5),a0
- add.w #$3C,a0
- move.l #$3F800000,(a0)
- ; gl_MultMatrixf( ctx, m );
- lea -$58(a5),a0
- move.l a0,-(a7)
- move.l a2,-(a7)
- jsr _gl_MultMatrixf
- addq.w #$8,a7
- ; if (ctx->Driver.NearFar)
- lea $8A0(a2),a0
- move.l $70(a0),a0
- cmp.w #0,a0
- beq.b L223
- L222
- ; (*ctx->Driver.NearFar)( ctx, nearval, farval );
- fmove.x fp4,fp0
- fmove.s fp0,-(a7)
- fmove.x fp3,fp0
- fmove.s fp0,-(a7)
- move.l a2,-(a7)
- lea $8A0(a2),a0
- move.l $70(a0),a0
- jsr (a0)
- add.w #$C,a7
- L223
- fmovem.x (a7)+,fp2/fp3/fp4/fp5/fp6
- move.l (a7)+,a2
- unlk a5
- rts
-
- SECTION "_gl_MatrixMode:0",CODE
-
-
- ;void gl_MatrixMode( GLcontext *ctx, GLenum mode )
- XDEF _gl_MatrixMode
- _gl_MatrixMode
- move.l $8(a7),d0
- move.l 4(a7),a0
- L226
- ; if (INSIDE_BEGIN_END(ctx))
- move.l a0,a1
- add.l #$E08A,a1
- move.l (a1),d1
- cmp.l #$1A00,d1
- beq.b L228
- L227
- ; gl_error( ctx, GL_INVALID_OPERATION, "glMatrixMode" );
- move.l #L225,-(a7)
- pea $502.w
- move.l a0,-(a7)
- jsr _gl_error
- add.w #$C,a7
- rts
- L228
- ; switch (mode)
- move.l d0,d1
- cmp.l #$1701,d1
- beq.b L229
- bgt.b L232
- cmp.l #$1700,d1
- beq.b L229
- bra.b L230
- L232
- cmp.l #$1702,d1
- beq.b L229
- bra.b L230
- ;
- L229
- ; ctx->Transform.MatrixMode = mode;
- add.l #$DC12,a0
- move.l d0,(a0)
- ;
- bra.b L231
- L230
- ; gl_error( ctx, GL_INVALID_ENUM, "glMatrixMode" );
- move.l #L225,-(a7)
- pea $500.w
- move.l a0,-(a7)
- jsr _gl_error
- add.w #$C,a7
- L231
- rts
-
- L225
- dc.b 'glMatrixMode',0
-
- SECTION "_gl_PushMatrix:0",CODE
-
-
- ;void gl_PushMatrix( GLcontext *ctx )
- XDEF _gl_PushMatrix
- _gl_PushMatrix
- move.l a2,-(a7)
- move.l $8(a7),a2
- L235
- ; if (INSIDE_BEGIN_END(ctx))
- move.l a2,a0
- add.l #$E08A,a0
- move.l (a0),d0
- cmp.l #$1A00,d0
- beq.b L237
- L236
- ; gl_error( ctx, GL_INVALID_OPERATION, "glPushMatrix" );
- move.l #L233,-(a7)
- pea $502.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- move.l (a7)+,a2
- rts
- L237
- ; switch (ctx->Transform.MatrixMode)
- move.l a2,a0
- add.l #$DC12,a0
- lea (a0),a0
- move.l (a0),d0
- cmp.l #$1701,d0
- beq.b L241
- bgt.b L249
- cmp.l #$1700,d0
- beq.b L238
- bra L247
- L249
- cmp.l #$1702,d0
- beq L244
- bra L247
- ;
- L238
- ; if (ctx->ModelViewStackDepth>=MAX_MODELVIEW_STACK_DEPTH-1)
- move.l $A02(a2),d0
- cmp.l #$1F,d0
- blo.b L240
- L239
- ; gl_error( ctx, GL_STACK_OVERFLOW, "glPushMatrix");
- move.l #L233,-(a7)
- pea $503.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- move.l (a7)+,a2
- rts
- L240
- ; 16*sizeof(GLfloat) );
- pea $40.w
- lea $982(a2),a0
- move.l a0,-(a7)
- lea $A06(a2),a0
- move.l $A02(a2),d0
- asl.l #6,d0
- add.l d0,a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->ModelViewStackDepth++;
- move.l $A02(a2),d0
- addq.l #1,d0
- move.l d0,$A02(a2)
- ;
- bra L248
- L241
- ; if (ctx->ProjectionStackDepth>=MAX_PROJECTION_STACK_DEPTH)
- move.l $124C(a2),d0
- cmp.l #$20,d0
- blo.b L243
- L242
- ; gl_error( ctx, GL_STACK_OVERFLOW, "glPushMatrix");
- move.l #L233,-(a7)
- pea $503.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- move.l (a7)+,a2
- rts
- L243
- ; 16*sizeof(GLfloat) );
- pea $40.w
- lea $120C(a2),a0
- move.l a0,-(a7)
- lea $1250(a2),a0
- move.l $124C(a2),d0
- asl.l #6,d0
- add.l d0,a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->ProjectionStackDepth++;
- move.l $124C(a2),d0
- addq.l #1,d0
- move.l d0,$124C(a2)
- ; ctx->NearFarStack[ctx->ProjectionStackDepth][0]
- lea $1A50(a2),a0
- move.l $124C(a2),d0
- subq.l #1,d0
- lea 0(a0,d0.l*8),a0
- fmove.s (a0),fp0
- lea $1A50(a2),a0
- move.l $124C(a2),d0
- lea 0(a0,d0.l*8),a0
- fmove.s fp0,(a0)
- ; ctx->NearFarStack[ctx->ProjectionStackDepth][1]
- lea $1A50(a2),a0
- move.l $124C(a2),d0
- subq.l #1,d0
- lea 0(a0,d0.l*8),a0
- addq.w #4,a0
- fmove.s (a0),fp0
- lea $1A50(a2),a0
- move.l $124C(a2),d0
- lea 0(a0,d0.l*8),a0
- addq.w #4,a0
- fmove.s fp0,(a0)
- ;
- bra.b L248
- L244
- ; if (ctx->TextureStackDepth>=MAX_TEXTURE_STACK_DEPTH)
- move.l $1B96(a2),d0
- cmp.l #$A,d0
- blo.b L246
- L245
- ; gl_error( ctx, GL_STACK_OVERFLOW, "glPushMatrix");
- move.l #L233,-(a7)
- pea $503.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- move.l (a7)+,a2
- rts
- L246
- ; 16*sizeof(GLfloat) );
- pea $40.w
- lea $1B56(a2),a0
- move.l a0,-(a7)
- lea $1B9A(a2),a0
- move.l $1B96(a2),d0
- asl.l #6,d0
- add.l d0,a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->TextureStackDepth++;
- move.l $1B96(a2),d0
- addq.l #1,d0
- move.l d0,$1B96(a2)
- ;
- bra.b L248
- L247
- ; gl_problem(ctx, "Bad matrix mode in gl_PushMatrix");
- move.l #L234,-(a7)
- move.l a2,-(a7)
- jsr _gl_problem
- addq.w #$8,a7
- L248
- move.l (a7)+,a2
- rts
-
- L234
- dc.b 'Bad matrix mode in gl_PushMatrix',0
- L233
- dc.b 'glPushMatrix',0
-
- SECTION "_gl_PopMatrix:0",CODE
-
-
- ;void gl_PopMatrix( GLcontext *ctx )
- XDEF _gl_PopMatrix
- _gl_PopMatrix
- move.l a2,-(a7)
- move.l $8(a7),a2
- L252
- ; if (INSIDE_BEGIN_END(ctx))
- move.l a2,a0
- add.l #$E08A,a0
- move.l (a0),d0
- cmp.l #$1A00,d0
- beq.b L254
- L253
- ; gl_error( ctx, GL_INVALID_OPERATION, "glPopMatrix" );
- move.l #L250,-(a7)
- pea $502.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- move.l (a7)+,a2
- rts
- L254
- ; switch (ctx->Transform.MatrixMode)
- move.l a2,a0
- add.l #$DC12,a0
- lea (a0),a0
- move.l (a0),d0
- cmp.l #$1701,d0
- beq.b L258
- bgt.b L268
- cmp.l #$1700,d0
- beq.b L255
- bra L266
- L268
- cmp.l #$1702,d0
- beq L263
- bra L266
- ;
- L255
- ; if (ctx->ModelViewStackDepth==0)
- move.l $A02(a2),d0
- bne.b L257
- L256
- ; gl_error( ctx, GL_STACK_UNDERFLOW, "glPopMatrix");
- move.l #L250,-(a7)
- pea $504.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- move.l (a7)+,a2
- rts
- L257
- ; ctx->ModelViewStackDepth--;
- move.l $A02(a2),d0
- subq.l #1,d0
- move.l d0,$A02(a2)
- ; 16*sizeof(GLfloat) );
- pea $40.w
- lea $A06(a2),a0
- move.l $A02(a2),d0
- asl.l #6,d0
- add.l d0,a0
- move.l a0,-(a7)
- lea $982(a2),a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->NewModelViewMatrix = GL_TRUE;
- move.b #1,$97C(a2)
- ;
- bra L267
- L258
- ; if (ctx->ProjectionStackDepth==0)
- move.l $124C(a2),d0
- bne.b L260
- L259
- ; gl_error( ctx, GL_STACK_UNDERFLOW, "glPopMatrix");
- move.l #L250,-(a7)
- pea $504.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- move.l (a7)+,a2
- rts
- L260
- ; ctx->ProjectionStackDepth--;
- move.l $124C(a2),d0
- subq.l #1,d0
- move.l d0,$124C(a2)
- ; 16*sizeof(GLfloat) );
- pea $40.w
- lea $1250(a2),a0
- move.l $124C(a2),d0
- asl.l #6,d0
- add.l d0,a0
- move.l a0,-(a7)
- lea $120C(a2),a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->NewProjectionMatrix = GL_TRUE;
- move.b #1,$1206(a2)
- ; GLfloat nearVal = ctx->NearFarStack[ctx->ProjectionStackDe
- lea $1A50(a2),a0
- move.l $124C(a2),d0
- lea 0(a0,d0.l*8),a0
- fmove.s (a0),fp1
- ; GLfloat farVal = ctx->NearFarStack[ctx->ProjectionStackDe
- lea $1A50(a2),a0
- move.l $124C(a2),d0
- lea 0(a0,d0.l*8),a0
- addq.w #4,a0
- fmove.s (a0),fp0
- ; if (ctx->Driver.NearFar)
- lea $8A0(a2),a0
- move.l $70(a0),a0
- cmp.w #0,a0
- beq.b L262
- L261
- ; (*ctx->Driver.NearFar)( ctx, nearVal, farVal );
- fmove.s fp0,-(a7)
- fmove.s fp1,-(a7)
- move.l a2,-(a7)
- lea $8A0(a2),a0
- move.l $70(a0),a0
- jsr (a0)
- add.w #$C,a7
- L262
- ;
- bra.b L267
- L263
- ; if (ctx->TextureStackDepth==0)
- move.l $1B96(a2),d0
- bne.b L265
- L264
- ; gl_error( ctx, GL_STACK_UNDERFLOW, "glPopMatrix");
- move.l #L250,-(a7)
- pea $504.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- move.l (a7)+,a2
- rts
- L265
- ; ctx->TextureStackDepth--;
- move.l $1B96(a2),d0
- subq.l #1,d0
- move.l d0,$1B96(a2)
- ; 16*sizeof(GLfloat) );
- pea $40.w
- lea $1B9A(a2),a0
- move.l $1B96(a2),d0
- asl.l #6,d0
- add.l d0,a0
- move.l a0,-(a7)
- lea $1B56(a2),a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->NewTextureMatrix = GL_TRUE;
- move.b #1,$1B50(a2)
- ;
- bra.b L267
- L266
- ; gl_problem(ctx, "Bad matrix mode in gl_PopMatrix");
- move.l #L251,-(a7)
- move.l a2,-(a7)
- jsr _gl_problem
- addq.w #$8,a7
- L267
- move.l (a7)+,a2
- rts
-
- L251
- dc.b 'Bad matrix mode in gl_PopMatrix',0
- L250
- dc.b 'glPopMatrix',0
-
- SECTION "_gl_LoadIdentity:0",CODE
-
-
- ;void gl_LoadIdentity( GLcontext *ctx )
- XDEF _gl_LoadIdentity
- _gl_LoadIdentity
- move.l a2,-(a7)
- move.l $8(a7),a2
- L271
- ; if (INSIDE_BEGIN_END(ctx))
- move.l a2,a0
- add.l #$E08A,a0
- move.l (a0),d0
- cmp.l #$1A00,d0
- beq.b L273
- L272
- ; gl_error( ctx, GL_INVALID_OPERATION, "glLoadIdentity" );
- move.l #L269,-(a7)
- pea $502.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- move.l (a7)+,a2
- rts
- L273
- ; switch (ctx->Transform.MatrixMode)
- move.l a2,a0
- add.l #$DC12,a0
- lea (a0),a0
- move.l (a0),d0
- cmp.l #$1701,d0
- beq.b L275
- bgt.b L279
- cmp.l #$1700,d0
- beq.b L274
- bra L277
- L279
- cmp.l #$1702,d0
- beq.b L276
- bra L277
- ;
- L274
- ;ctx->ModelViewMat
- pea $40.w
- move.l #_Identity,-(a7)
- lea $982(a2),a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ;Y( ctx->ModelView
- pea $40.w
- move.l #_Identity,-(a7)
- lea $9C2(a2),a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->ModelViewMatrixType = MATRIX_IDENTITY;
- move.l #1,$97E(a2)
- ; ctx->NewModelViewMatrix = GL_FALSE;
- clr.b $97C(a2)
- ;
- bra.b L278
- L275
- ;tx->ProjectionMat
- pea $40.w
- move.l #_Identity,-(a7)
- lea $120C(a2),a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->ProjectionMatrixType = MATRIX_IDENTITY;
- move.l #1,$1208(a2)
- ; ctx->NewProjectionMatrix = GL_FALSE;
- clr.b $1206(a2)
- ;
- bra.b L278
- L276
- ;( ctx->TextureMat
- pea $40.w
- move.l #_Identity,-(a7)
- lea $1B56(a2),a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->TextureMatrixType = MATRIX_IDENTITY;
- move.l #1,$1B52(a2)
- ; ctx->NewTextureMatrix = GL_FALSE;
- clr.b $1B50(a2)
- ;
- bra.b L278
- L277
- ; gl_problem(ctx, "Bad matrix mode in gl_LoadIdentity");
- move.l #L270,-(a7)
- move.l a2,-(a7)
- jsr _gl_problem
- addq.w #$8,a7
- L278
- move.l (a7)+,a2
- rts
-
- L270
- dc.b 'Bad matrix mode in gl_LoadIdentity',0
- L269
- dc.b 'glLoadIdentity',0
-
- SECTION "_gl_LoadMatrixf:0",CODE
-
-
- ;void gl_LoadMatrixf( GLcontext *ctx, const GLfloat *m )
- XDEF _gl_LoadMatrixf
- _gl_LoadMatrixf
- move.l a2,-(a7)
- move.l $C(a7),a0
- move.l $8(a7),a2
- L282
- ; if (INSIDE_BEGIN_END(ctx))
- move.l a2,a1
- add.l #$E08A,a1
- move.l (a1),d0
- cmp.l #$1A00,d0
- beq.b L284
- L283
- ; gl_error( ctx, GL_INVALID_OPERATION, "glLoadMatrix" );
- move.l #L280,-(a7)
- pea $502.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- move.l (a7)+,a2
- rts
- L284
- ; switch (ctx->Transform.MatrixMode)
- move.l a2,a1
- add.l #$DC12,a1
- lea (a1),a1
- move.l (a1),d0
- cmp.l #$1701,d0
- beq.b L286
- bgt.b L290
- cmp.l #$1700,d0
- beq.b L285
- bra.b L288
- L290
- cmp.l #$1702,d0
- beq.b L287
- bra.b L288
- ;
- L285
- ;EMCPY( ctx->Model
- pea $40.w
- move.l a0,-(a7)
- lea $982(a2),a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->NewModelViewMatrix = GL_TRUE;
- move.b #1,$97C(a2)
- ;
- bra.b L289
- L286
- ;MCPY( ctx->Projec
- pea $40.w
- move.l a0,-(a7)
- lea $120C(a2),a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->NewProjectionMatrix = GL_TRUE;
- move.b #1,$1206(a2)
- ;
- bra.b L289
- L287
- ; MEMCPY( ctx->Tex
- pea $40.w
- move.l a0,-(a7)
- lea $1B56(a2),a0
- move.l a0,-(a7)
- jsr _memcpy
- add.w #$C,a7
- ; ctx->NewTextureMatrix = GL_TRUE;
- move.b #1,$1B50(a2)
- ;
- bra.b L289
- L288
- ; gl_problem(ctx, "Bad matrix mode in gl_LoadMatrixf");
- move.l #L281,-(a7)
- move.l a2,-(a7)
- jsr _gl_problem
- addq.w #$8,a7
- L289
- move.l (a7)+,a2
- rts
-
- L281
- dc.b 'Bad matrix mode in gl_LoadMatrixf',0
- L280
- dc.b 'glLoadMatrix',0
-
- SECTION "_gl_MultMatrixf:0",CODE
-
-
- ;void gl_MultMatrixf( GLcontext *ctx, const GLfloat *m )
- XDEF _gl_MultMatrixf
- _gl_MultMatrixf
- move.l a2,-(a7)
- move.l $C(a7),a0
- move.l $8(a7),a2
- L293
- ; if (INSIDE_BEGIN_END(ctx))
- move.l a2,a1
- add.l #$E08A,a1
- move.l (a1),d0
- cmp.l #$1A00,d0
- beq.b L295
- L294
- ; gl_error( ctx, GL_INVALID_OPERATION, "glMultMatrix" );
- move.l #L291,-(a7)
- pea $502.w
- move.l a2,-(a7)
- jsr _gl_error
- add.w #$C,a7
- move.l (a7)+,a2
- rts
- L295
- ; switch (ctx->Transform.MatrixMode)
- move.l a2,a1
- add.l #$DC12,a1
- lea (a1),a1
- move.l (a1),d0
- cmp.l #$1701,d0
- beq.b L297
- bgt.b L301
- cmp.l #$1700,d0
- beq.b L296
- bra.b L299
- L301
- cmp.l #$1702,d0
- beq.b L298
- bra.b L299
- ;
- L296
- ; matmul( ctx->ModelViewMatrix, ctx->ModelViewMatrix, m );
- move.l a0,-(a7)
- lea $982(a2),a0
- move.l a0,-(a7)
- lea $982(a2),a0
- move.l a0,-(a7)
- jsr _matmul
- add.w #$C,a7
- ; ctx->NewModelViewMatrix = GL_TRUE;
- move.b #1,$97C(a2)
- ;
- bra.b L300
- L297
- ; matmul( ctx->ProjectionMatrix, ctx->ProjectionMatrix, m );
- move.l a0,-(a7)
- lea $120C(a2),a0
- move.l a0,-(a7)
- lea $120C(a2),a0
- move.l a0,-(a7)
- jsr _matmul
- add.w #$C,a7
- ; ctx->NewProjectionMatrix = GL_TRUE;
- move.b #1,$1206(a2)
- ;
- bra.b L300
- L298
- ; matmul( ctx->TextureMatrix, ctx->TextureMatrix, m );
- move.l a0,-(a7)
- lea $1B56(a2),a0
- move.l a0,-(a7)
- lea $1B56(a2),a0
- move.l a0,-(a7)
- jsr _matmul
- add.w #$C,a7
- ; ctx->NewTextureMatrix = GL_TRUE;
- move.b #1,$1B50(a2)
- ;
- bra.b L300
- L299
- ; gl_problem(ctx, "Bad matrix mode in gl_MultMatrixf");
- move.l #L292,-(a7)
- move.l a2,-(a7)
- jsr _gl_problem
- addq.w #$8,a7
- L300
- move.l (a7)+,a2
- rts
-
- L292
- dc.b 'Bad matrix mode in gl_MultMatrixf',0
- L291
- dc.b 'glMultMatrix',0
-
- SECTION "_gl_rotation_matrix:0",CODE
-
-
- ;void gl_rotation_matrix( GLfloat angle, GLfloat x, GLfloat y, GLfloa
- XDEF _gl_rotation_matrix
- _gl_rotation_matrix
- L305 EQU -$4C
- link a5,#L305
- move.l a2,-(a7)
- fmovem.x fp2/fp3/fp4/fp5/fp6,-(a7)
- move.l $18(a5),a2
- fmove.s $14(a5),fp2
- fmove.s $10(a5),fp3
- fmove.s $C(a5),fp4
- fmove.s $8(a5),fp5
- L302
- ; s = sin( angle * DEG2RAD );
- fmove.x fp5,fp0
- fmul.d #$.3F91DF46.9D353915,fp0
- fmove.d fp0,-(a7)
- jsr _sin__r
- addq.w #$8,a7
- fmove.s fp0,-$8(a5)
- ; c = cos( angle * DEG2RAD );
- fmove.x fp5,fp0
- fmul.d #$.3F91DF46.9D353915,fp0
- fmove.d fp0,-(a7)
- jsr _cos__r
- addq.w #$8,a7
- fmove.x fp0,fp5
- ; mag = GL_SQRT( x*x + y*y + z*z );
- fmove.x fp4,fp0
- fmul.x fp4,fp0
- fmove.x fp3,fp1
- fmul.x fp3,fp1
- fadd.x fp1,fp0
- fmove.x fp2,fp1
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- fmove.d fp0,-(a7)
- jsr _sqrt__r
- addq.w #$8,a7
- ; if (mag == 0.0)
- fmove.x fp0,fp1
- ftst.d fp1
- fbne.b L304
- L303
- ; MEMCPY(m, Identity
- pea $40.w
- move.l #_Identity,-(a7)
- move.l a2,-(a7)
- jsr _memcpy
- add.w #$C,a7
- fmovem.x (a7)+,fp2/fp3/fp4/fp5/fp6
- move.l (a7)+,a2
- unlk a5
- rts
- L304
- ; x /= mag;
- fdiv.x fp0,fp4
- ; y /= mag;
- fdiv.x fp0,fp3
- ; z /= mag;
- fdiv.x fp0,fp2
- ; xx = x * x;
- fmove.x fp4,fp1
- fmul.x fp4,fp1
- ; yy = y * y;
- fmove.x fp3,fp0
- fmul.x fp3,fp0
- fmove.s fp0,-$14(a5)
- ; zz = z * z;
- fmove.x fp2,fp0
- fmul.x fp2,fp0
- fmove.s fp0,-$18(a5)
- ; xy = x * y;
- fmove.x fp4,fp0
- fmul.x fp3,fp0
- fmove.s fp0,-$1C(a5)
- ; yz = y * z;
- fmove.x fp3,fp0
- fmul.x fp2,fp0
- fmove.s fp0,-$20(a5)
- ; zx = z * x;
- fmove.x fp2,fp0
- fmul.x fp4,fp0
- fmove.s fp0,-$24(a5)
- ; xs = x * s;
- fmul.s -$8(a5),fp4
- ; ys = y * s;
- fmul.s -$8(a5),fp3
- ; zs = z * s;
- fmul.s -$8(a5),fp2
- ; one_c = 1.0F - c;
- fmove.s #$.3F800000,fp0
- fsub.x fp5,fp0
- ; M(0,0) = (one_c * xx) + c;
- fmul.x fp0,fp1
- fadd.x fp5,fp1
- fmove.s fp1,(a2)
- ; M(0,1) = (one_c * xy) - zs;
- fmove.x fp0,fp1
- fmul.s -$1C(a5),fp1
- fsub.x fp2,fp1
- lea $10(a2),a0
- fmove.s fp1,(a0)
- ; M(0,2) = (one_c * zx) + ys;
- fmove.x fp0,fp1
- fmul.s -$24(a5),fp1
- fadd.x fp3,fp1
- lea $20(a2),a0
- fmove.s fp1,(a0)
- ; M(0,3) = 0.0F;
- lea $30(a2),a0
- clr.l (a0)
- ; M(1,0) = (one_c * xy) + zs;
- fmove.x fp0,fp1
- fmul.s -$1C(a5),fp1
- fadd.x fp2,fp1
- lea 4(a2),a0
- fmove.s fp1,(a0)
- ; M(1,1) = (one_c * yy) + c;
- fmove.x fp0,fp1
- fmul.s -$14(a5),fp1
- fadd.x fp5,fp1
- lea $14(a2),a0
- fmove.s fp1,(a0)
- ; M(1,2) = (one_c * yz) - xs;
- fmove.x fp0,fp1
- fmul.s -$20(a5),fp1
- fsub.x fp4,fp1
- lea $24(a2),a0
- fmove.s fp1,(a0)
- ; M(1,3) = 0.0F;
- lea $34(a2),a0
- clr.l (a0)
- ; M(2,0) = (one_c * zx) - ys;
- fmove.x fp0,fp1
- fmul.s -$24(a5),fp1
- fsub.x fp3,fp1
- lea $8(a2),a0
- fmove.s fp1,(a0)
- ; M(2,1) = (one_c * yz) + xs;
- fmove.x fp0,fp1
- fmul.s -$20(a5),fp1
- fadd.x fp4,fp1
- lea $18(a2),a0
- fmove.s fp1,(a0)
- ; M(2,2) = (one_c * zz) + c;
- fmul.s -$18(a5),fp0
- fadd.x fp5,fp0
- lea $28(a2),a0
- fmove.s fp0,(a0)
- ; M(2,3) = 0.0F;
- lea $38(a2),a0
- clr.l (a0)
- ; M(3,0) = 0.0F;
- lea $C(a2),a0
- clr.l (a0)
- ; M(3,1) = 0.0F;
- lea $1C(a2),a0
- clr.l (a0)
- ; M(3,2) = 0.0F;
- lea $2C(a2),a0
- clr.l (a0)
- ; M(3,3) = 1.0F;
- lea $3C(a2),a0
- move.l #$3F800000,(a0)
- fmovem.x (a7)+,fp2/fp3/fp4/fp5/fp6
- move.l (a7)+,a2
- unlk a5
- rts
-
- SECTION "_gl_Rotatef:0",CODE
-
-
- ;void gl_Rotatef( GLcontext *ctx,
- XDEF _gl_Rotatef
- _gl_Rotatef
- L307 EQU -$40
- link a5,#L307
- move.l a2,-(a7)
- fmovem.x fp2/fp3,-(a7)
- move.l $8(a5),a2
- fmove.s $C(a5),fp0
- fmove.s $10(a5),fp1
- fmove.s $14(a5),fp2
- fmove.s $18(a5),fp3
- L306
- ; gl_rotation_matrix( angle, x, y, z, m );
- lea -$40(a5),a0
- move.l a0,-(a7)
- fmove.s fp3,-(a7)
- fmove.s fp2,-(a7)
- fmove.s fp1,-(a7)
- fmove.s fp0,-(a7)
- jsr _gl_rotation_matrix
- add.w #$14,a7
- ; gl_MultMatrixf( ctx, m );
- lea -$40(a5),a0
- move.l a0,-(a7)
- move.l a2,-(a7)
- jsr _gl_MultMatrixf
- addq.w #$8,a7
- fmovem.x (a7)+,fp2/fp3
- move.l (a7)+,a2
- unlk a5
- rts
-
- SECTION "_gl_Scalef:0",CODE
-
-
- ;void gl_Scalef( GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z )
- XDEF _gl_Scalef
- _gl_Scalef
- fmovem.x fp2/fp3/fp4,-(a7)
- move.l $28(a7),a1
- fmove.s $34(a7),fp1
- fmove.s $30(a7),fp2
- fmove.s $2C(a7),fp3
- L310
- ; if (INSIDE_BEGIN_END(ctx))
- move.l a1,a0
- add.l #$E08A,a0
- move.l (a0),d0
- cmp.l #$1A00,d0
- beq.b L312
- L311
- ; gl_error( ctx, GL_INVALID_OPERATION, "glScale" );
- move.l #L308,-(a7)
- pea $502.w
- move.l a1,-(a7)
- jsr _gl_error
- add.w #$C,a7
- fmovem.x (a7)+,fp2/fp3/fp4
- rts
- L312
- ; switch (ctx->Transform.MatrixMode)
- move.l a1,a0
- add.l #$DC12,a0
- lea (a0),a0
- move.l (a0),d0
- cmp.l #$1701,d0
- beq.b L314
- bgt.b L318
- cmp.l #$1700,d0
- beq.b L313
- bra.b L316
- L318
- cmp.l #$1702,d0
- beq.b L315
- bra.b L316
- ;
- L313
- ; m = ctx->ModelViewMatrix;
- lea $982(a1),a0
- ; ctx->NewModelViewMatrix = GL_TRUE;
- move.b #1,$97C(a1)
- ;
- bra.b L317
- L314
- ; m = ctx->ProjectionMatrix;
- lea $120C(a1),a0
- ; ctx->NewProjectionMatrix = GL_TRUE;
- move.b #1,$1206(a1)
- ;
- bra.b L317
- L315
- ; m = ctx->TextureMatrix;
- lea $1B56(a1),a0
- ; ctx->NewTextureMatrix = GL_TRUE;
- move.b #1,$1B50(a1)
- ;
- bra.b L317
- L316
- ; gl_problem(ctx, "Bad matrix mode in gl_Scalef");
- move.l #L309,-(a7)
- move.l a1,-(a7)
- jsr _gl_problem
- addq.w #$8,a7
- fmovem.x (a7)+,fp2/fp3/fp4
- rts
- L317
- ; return;
- ; m[0] *= x;
- fmove.s (a0),fp0
- fmul.x fp3,fp0
- fmove.s fp0,(a0)
- ; m[4] *= y;
- lea $10(a0),a1
- fmove.s (a1),fp0
- fmul.x fp2,fp0
- fmove.s fp0,(a1)
- ; m[8] *= z;
- lea $20(a0),a1
- fmove.s (a1),fp0
- fmul.x fp1,fp0
- fmove.s fp0,(a1)
- ; m[1] *= x;
- lea 4(a0),a1
- fmove.s (a1),fp0
- fmul.x fp3,fp0
- fmove.s fp0,(a1)
- ; m[5] *= y;
- lea $14(a0),a1
- fmove.s (a1),fp0
- fmul.x fp2,fp0
- fmove.s fp0,(a1)
- ; m[9] *= z;
- lea $24(a0),a1
- fmove.s (a1),fp0
- fmul.x fp1,fp0
- fmove.s fp0,(a1)
- ; m[2] *= x;
- lea $8(a0),a1
- fmove.s (a1),fp0
- fmul.x fp3,fp0
- fmove.s fp0,(a1)
- ; m[6] *= y;
- lea $18(a0),a1
- fmove.s (a1),fp0
- fmul.x fp2,fp0
- fmove.s fp0,(a1)
- ; m[10] *= z;
- lea $28(a0),a1
- fmove.s (a1),fp0
- fmul.x fp1,fp0
- fmove.s fp0,(a1)
- ; m[3] *= x;
- lea $C(a0),a1
- fmove.s (a1),fp0
- fmul.x fp3,fp0
- fmove.s fp0,(a1)
- ; m[7] *= y;
- lea $1C(a0),a1
- fmove.s (a1),fp0
- fmul.x fp2,fp0
- fmove.s fp0,(a1)
- ; m[11] *= z;
- add.w #$2C,a0
- fmove.s (a0),fp0
- fmul.x fp1,fp0
- fmove.s fp0,(a0)
- fmovem.x (a7)+,fp2/fp3/fp4
- rts
-
- L309
- dc.b 'Bad matrix mode in gl_Scalef',0
- L308
- dc.b 'glScale',0
-
- SECTION "_gl_Translatef:0",CODE
-
-
- ;void gl_Translatef( GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z )
- XDEF _gl_Translatef
- _gl_Translatef
- fmovem.x fp2/fp3/fp4/fp5,-(a7)
- move.l $34(a7),a1
- fmove.s $40(a7),fp2
- fmove.s $3C(a7),fp3
- fmove.s $38(a7),fp4
- L321
- ; if (INSIDE_BEGIN_END(ctx))
- move.l a1,a0
- add.l #$E08A,a0
- move.l (a0),d0
- cmp.l #$1A00,d0
- beq.b L323
- L322
- ; gl_error( ctx, GL_INVALID_OPERATION, "glTranslate" );
- move.l #L319,-(a7)
- pea $502.w
- move.l a1,-(a7)
- jsr _gl_error
- add.w #$C,a7
- fmovem.x (a7)+,fp2/fp3/fp4/fp5
- rts
- L323
- ; switch (ctx->Transform.MatrixMode)
- move.l a1,a0
- add.l #$DC12,a0
- lea (a0),a0
- move.l (a0),d0
- cmp.l #$1701,d0
- beq.b L325
- bgt.b L329
- cmp.l #$1700,d0
- beq.b L324
- bra.b L327
- L329
- cmp.l #$1702,d0
- beq.b L326
- bra.b L327
- ;
- L324
- ; m = ctx->ModelViewMatrix;
- lea $982(a1),a0
- ; ctx->NewModelViewMatrix = GL_TRUE;
- move.b #1,$97C(a1)
- ;
- bra.b L328
- L325
- ; m = ctx->ProjectionMatrix;
- lea $120C(a1),a0
- ; ctx->NewProjectionMatrix = GL_TRUE;
- move.b #1,$1206(a1)
- ;
- bra.b L328
- L326
- ; m = ctx->TextureMatrix;
- lea $1B56(a1),a0
- ; ctx->NewTextureMatrix = GL_TRUE;
- move.b #1,$1B50(a1)
- ;
- bra.b L328
- L327
- ; gl_problem(ctx, "Bad matrix mode in gl_Translatef");
- move.l #L320,-(a7)
- move.l a1,-(a7)
- jsr _gl_problem
- addq.w #$8,a7
- fmovem.x (a7)+,fp2/fp3/fp4/fp5
- rts
- L328
- ; return;
- ; m[12] = m[0] * x + m[4] * y + m[8] * z + m[12];
- fmove.s (a0),fp0
- fmul.x fp4,fp0
- lea $10(a0),a1
- fmove.s (a1),fp1
- fmul.x fp3,fp1
- fadd.x fp1,fp0
- lea $20(a0),a1
- fmove.s (a1),fp1
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $30(a0),a1
- fmove.s (a1),fp1
- fadd.x fp1,fp0
- lea $30(a0),a1
- fmove.s fp0,(a1)
- ; m[13] = m[1] * x + m[5] * y + m[9] * z + m[13];
- lea 4(a0),a1
- fmove.s (a1),fp0
- fmul.x fp4,fp0
- lea $14(a0),a1
- fmove.s (a1),fp1
- fmul.x fp3,fp1
- fadd.x fp1,fp0
- lea $24(a0),a1
- fmove.s (a1),fp1
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $34(a0),a1
- fmove.s (a1),fp1
- fadd.x fp1,fp0
- lea $34(a0),a1
- fmove.s fp0,(a1)
- ; m[14] = m[2] * x + m[6] * y + m[10] * z + m[14];
- lea $8(a0),a1
- fmove.s (a1),fp0
- fmul.x fp4,fp0
- lea $18(a0),a1
- fmove.s (a1),fp1
- fmul.x fp3,fp1
- fadd.x fp1,fp0
- lea $28(a0),a1
- fmove.s (a1),fp1
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $38(a0),a1
- fmove.s (a1),fp1
- fadd.x fp1,fp0
- lea $38(a0),a1
- fmove.s fp0,(a1)
- ; m[15] = m[3] * x + m[7] * y + m[11] * z + m[15];
- lea $C(a0),a1
- fmove.s (a1),fp0
- fmul.x fp4,fp0
- lea $1C(a0),a1
- fmove.s (a1),fp1
- fmul.x fp3,fp1
- fadd.x fp1,fp0
- lea $2C(a0),a1
- fmove.s (a1),fp1
- fmul.x fp2,fp1
- fadd.x fp1,fp0
- lea $3C(a0),a1
- fmove.s (a1),fp1
- fadd.x fp1,fp0
- add.w #$3C,a0
- fmove.s fp0,(a0)
- fmovem.x (a7)+,fp2/fp3/fp4/fp5
- rts
-
- L320
- dc.b 'Bad matrix mode in gl_Translatef',0
- L319
- dc.b 'glTranslate',0
-
- SECTION "_gl_Viewport:0",CODE
-
-
- ;void gl_Viewport( GLcontext *ctx,
- XDEF _gl_Viewport
- _gl_Viewport
- movem.l d2-d4,-(a7)
- move.l $20(a7),d0
- move.l $1C(a7),d1
- move.l $18(a7),d2
- move.l $14(a7),d3
- move.l $10(a7),a0
- L331
- ; if (width<0 || height<0)
- tst.l d1
- bmi.b L333
- L332
- tst.l d0
- bpl.b L334
- L333
- ; gl_error( ctx, GL_INVALID_VALUE, "glViewport" );
- move.l #L330,-(a7)
- pea $501.w
- move.l a0,-(a7)
- jsr _gl_error
- add.w #$C,a7
- movem.l (a7)+,d2-d4
- rts
- L334
- ; if (INSIDE_BEGIN_END(ctx))
- move.l a0,a1
- add.l #$E08A,a1
- move.l (a1),d4
- cmp.l #$1A00,d4
- beq.b L336
- L335
- ; gl_error( ctx, GL_INVALID_OPERATION, "glViewport" );
- move.l #L330,-(a7)
- pea $502.w
- move.l a0,-(a7)
- jsr _gl_error
- add.w #$C,a7
- movem.l (a7)+,d2-d4
- rts
- L336
- ; width = CLAMP( width, 1, MAX_WIDTH );
- cmp.l #1,d1
- bge.b L338
- L337
- moveq #1,d1
- bra.b L342
- L338
- cmp.l #$640,d1
- ble.b L340
- L339
- move.l #$640,d1
- L340
- L341
- L342
- ; height = CLAMP( height, 1, MAX_HEIGHT );
- cmp.l #1,d0
- bge.b L344
- L343
- moveq #1,d0
- bra.b L348
- L344
- cmp.l #$4B0,d0
- ble.b L346
- L345
- move.l #$4B0,d0
- L346
- L347
- L348
- ; ctx->Viewport.X = x;
- move.l a0,a1
- add.l #$DC7E,a1
- move.l d3,(a1)
- ; ctx->Viewport.Width = width;
- move.l a0,a1
- add.l #$DC86,a1
- move.l d1,(a1)
- ; ctx->Viewport.Y = y;
- move.l a0,a1
- add.l #$DC82,a1
- move.l d2,(a1)
- ; ctx->Viewport.Height = height;
- move.l a0,a1
- add.l #$DC8A,a1
- move.l d0,(a1)
- ; ctx->Viewport.Sx = (GLfloat) width / 2.0F;
- fmove.l d1,fp0
- fdiv.s #$.40000000,fp0
- move.l a0,a1
- add.l #$DC96,a1
- fmove.s fp0,(a1)
- ; ctx->Viewport.Tx = ctx->Viewport.Sx + x;
- move.l a0,a1
- add.l #$DC7E,a1
- lea (a1),a1
- fmove.s $18(a1),fp0
- fmove.l d3,fp1
- fadd.x fp1,fp0
- move.l a0,a1
- add.l #$DCA2,a1
- fmove.s fp0,(a1)
- ; ctx->Viewport.Sy = (GLfloat) height / 2.0F;
- fmove.l d0,fp0
- fdiv.s #$.40000000,fp0
- move.l a0,a1
- add.l #$DC9A,a1
- fmove.s fp0,(a1)
- ; ctx->Viewport.Ty = ctx->Viewport.Sy + y;
- move.l a0,a1
- add.l #$DC7E,a1
- lea (a1),a1
- fmove.s $1C(a1),fp0
- fmove.l d2,fp1
- fadd.x fp1,fp0
- move.l a0,a1
- add.l #$DCA6,a1
- fmove.s fp0,(a1)
- ; ctx->NewState |= NEW_ALL;
- move.l a0,a1
- add.l #$E082,a1
- move.l (a1),d0
- or.l #$F,d0
- move.l a0,a1
- add.l #$E082,a1
- move.l d0,(a1)
- ; gl_ResizeBuffersMESA(ctx);
- move.l a0,-(a7)
- jsr _gl_ResizeBuffersMESA
- addq.w #4,a7
- movem.l (a7)+,d2-d4
- rts
-
- L330
- dc.b 'glViewport',0
-
- END
-