home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga 5 / MA_Cover_5.iso / ppc / mesa / src / points.s < prev    next >
Encoding:
Text File  |  1998-01-31  |  82.9 KB  |  4,911 lines

  1.  
  2. ; Storm C Compiler
  3. ; TEMP:Mesa_2_5/src/points.c
  4.     mc68030
  5.     mc68881
  6.     XREF    _gl_flush_pb
  7.     XREF    _sqrt__r
  8.     XREF    _gl_update_hitflag
  9.     XREF    _gl_feedback_vertex
  10.     XREF    _gl_error
  11.     XREF    _CC
  12.  
  13.     SECTION "_gl_PointSize:0",CODE
  14.  
  15.  
  16. ;void gl_PointSize( GLcontext *ctx, GLfloat size )
  17.     XDEF    _gl_PointSize
  18. _gl_PointSize
  19.     move.l    4(a7),a0
  20.     fmove.s    $8(a7),fp1
  21. L203
  22. ;   if (size<=0.0) 
  23.     fmove.x    fp1,fp0
  24.     fcmp.d    #$.00000000.00000000,fp0
  25.     fbogt.b    L205
  26. L204
  27. ;      gl_error( ctx, GL_INVALID_VALUE, "glPointSize" );
  28.     move.l    #L202,-(a7)
  29.     pea    $501.w
  30.     move.l    a0,-(a7)
  31.     jsr    _gl_error
  32.     add.w    #$C,a7
  33.     rts
  34. L205
  35. ;   if (INSIDE_BEGIN_END(ctx)) 
  36.     move.l    a0,a1
  37.     add.l    #$E08A,a1
  38.     move.l    (a1),d0
  39.     cmp.l    #$1A00,d0
  40.     beq.b    L207
  41. L206
  42. ;      gl_error( ctx, GL_INVALID_OPERATION, "glPointSize" );
  43.     move.l    #L202,-(a7)
  44.     pea    $502.w
  45.     move.l    a0,-(a7)
  46.     jsr    _gl_error
  47.     add.w    #$C,a7
  48.     rts
  49. L207
  50. ;   ctx->NewState |= NEW_RASTER_OPS;
  51.     move.l    a0,a1
  52.     add.l    #$E082,a1
  53.     move.l    (a1),d0
  54.     or.l    #2,d0
  55.     move.l    a0,a1
  56.     add.l    #$E082,a1
  57.     move.l    d0,(a1)
  58. ;   ctx->Point.Size = size;
  59.     add.l    #$D654,a0
  60.     fmove.s    fp1,(a0)
  61.     rts
  62.  
  63. L202
  64.     dc.b    'glPointSize',0
  65.  
  66.     SECTION "_gl_PointParameterfvEXT:0",CODE
  67.  
  68.     rts
  69.  
  70. ;void gl_PointParameterfvEXT( GLcontext *ctx, GLenum pname,
  71.     XDEF    _gl_PointParameterfvEXT
  72. _gl_PointParameterfvEXT
  73.     move.l    a2,-(a7)
  74.     movem.l    $C(a7),d0/a1
  75.     move.l    $8(a7),a0
  76. L209
  77. ;   if (INSIDE_BEGIN_END(ctx)) 
  78.     move.l    a0,a2
  79.     add.l    #$E08A,a2
  80.     move.l    (a2),d1
  81.     cmp.l    #$1A00,d1
  82.     beq.b    L211
  83. L210
  84. ;      gl_error( ctx, GL_INVALID_OPERATION, "glPointParameterfv
  85.     move.l    #L208,-(a7)
  86.     pea    $502.w
  87.     move.l    a0,-(a7)
  88.     jsr    _gl_error
  89.     add.w    #$C,a7
  90.     move.l    (a7)+,a2
  91.     rts
  92. L211
  93. ;   if(pname==GL_DISTANCE_ATTENUATION_EXT) 
  94.     cmp.l    #$8129,d0
  95.     bne.b    L213
  96. L212
  97. ;     COPY_3V(ctx->Point.Params,params)
  98.     fmove.s    (a1),fp0
  99.     move.l    a0,a2
  100.     add.l    #$D658,a2
  101.     lea    (a2),a2
  102.     fmove.s    fp0,(a2)
  103. ;     COPY_3V(ctx->Point.Params,params)
  104.     lea    4(a1),a2
  105.     fmove.s    (a2),fp0
  106.     move.l    a0,a2
  107.     add.l    #$D658,a2
  108.     lea    (a2),a2
  109.     addq.w    #4,a2
  110.     fmove.s    fp0,(a2)
  111. ;     COPY_3V(ctx->Point.Params,params)
  112.     addq.w    #$8,a1
  113.     fmove.s    (a1),fp0
  114.     move.l    a0,a1
  115.     add.l    #$D658,a1
  116.     lea    (a1),a1
  117.     addq.w    #$8,a1
  118.     fmove.s    fp0,(a1)
  119.     bra    L220
  120. L213
  121. ;    if (*params<0.0 ) 
  122.     fmove.s    (a1),fp0
  123.     fcmp.d    #$.00000000.00000000,fp0
  124.     fboge.b    L215
  125. L214
  126. ;        gl_error( ctx, GL_INVALID_VALUE, "glPointParameterfvEXT" );
  127.     move.l    #L208,-(a7)
  128.     pea    $501.w
  129.     move.l    a0,-(a7)
  130.     jsr    _gl_error
  131.     add.w    #$C,a7
  132.     move.l    (a7)+,a2
  133.     rts
  134. L215
  135. ;    switch (pname)
  136.     cmp.l    #$8127,d0
  137.     beq.b    L217
  138.     bgt.b    L221
  139.     cmp.l    #$8126,d0
  140.     beq.b    L216
  141.     bra.b    L219
  142. L221
  143.     cmp.l    #$8128,d0
  144.     beq.b    L218
  145.     bra.b    L219
  146. ;        
  147. L216
  148. ;        ctx->Point.MinSize=*params;
  149.     fmove.s    (a1),fp0
  150.     move.l    a0,a1
  151.     add.l    #$D664,a1
  152.     fmove.s    fp0,(a1)
  153. ;        
  154.     bra.b    L220
  155. L217
  156. ;        ctx->Point.MaxSize=*params;
  157.     fmove.s    (a1),fp0
  158.     move.l    a0,a1
  159.     add.l    #$D668,a1
  160.     fmove.s    fp0,(a1)
  161. ;        
  162.     bra.b    L220
  163. L218
  164. ;        ctx->Point.Threshold=*params;
  165.     fmove.s    (a1),fp0
  166.     move.l    a0,a1
  167.     add.l    #$D66C,a1
  168.     fmove.s    fp0,(a1)
  169. ;        
  170.     bra.b    L220
  171. L219
  172. ;        gl_error( ctx, GL_INVALID_ENUM, "glPointParameterfvEXT" );
  173.     move.l    #L208,-(a7)
  174.     pea    $500.w
  175.     move.l    a0,-(a7)
  176.     jsr    _gl_error
  177.     add.w    #$C,a7
  178.     move.l    (a7)+,a2
  179.     rts
  180. L220
  181. ;    int a = ctx->NewState | NEW_RASTER_OPS;
  182.     move.l    a0,a1
  183.     add.l    #$E082,a1
  184.     move.l    (a1),d0
  185.     or.l    #2,d0
  186. ;    ctx->NewState = a;
  187.     add.l    #$E082,a0
  188.     move.l    d0,(a0)
  189.     move.l    (a7)+,a2
  190.     rts
  191.  
  192. L208
  193.     dc.b    'glPointParameterfvEXT',0
  194.  
  195.     SECTION "_feedback_points:0",CODE
  196.  
  197.  
  198. ;static void feedback_points( GLcontext *ctx, GLuint first, GLuint la
  199. _feedback_points
  200. L233    EQU    -$70
  201.     link    a5,#L233
  202.     movem.l    d2/d3/a2/a3,-(a7)
  203.     fmovem.x fp2/fp3/fp4/fp5/fp6,-(a7)
  204.     movem.l    $C(a5),d0/d3
  205. L222
  206. ;   struct vertex_buffer *VB = ctx->VB;
  207.     move.l    $8(a5),a0
  208.     add.l    #$E0C0,a0
  209.     move.l    (a0),a2
  210. ;   GLfloat invRedScale   = ctx->Visual->InvRedScale;
  211.     move.l    $8(a5),a1
  212.     move.l    $898(a1),a0
  213.     move.l    $14(a0),-$C(a5)
  214. ;   GLfloat invGreenScale = ctx->Visual->InvGreenScale;
  215.     move.l    $8(a5),a1
  216.     move.l    $898(a1),a0
  217.     fmove.s    $18(a0),fp5
  218. ;   GLfloat invBlueScale  = ctx->Visual->InvBlueScale;
  219.     move.l    $8(a5),a1
  220.     move.l    $898(a1),a0
  221.     fmove.s    $1C(a0),fp4
  222. ;   GLfloat invAlphaScale = ctx->Visual->InvAlphaScale;
  223.     move.l    $8(a5),a1
  224.     move.l    $898(a1),a0
  225.     fmove.s    $20(a0),fp3
  226. ;   for (i=first;
  227.     move.l    d0,d2
  228.     bra    L231
  229. L223
  230. ;      if (VB->ClipMask[i]==0) 
  231.     move.l    a2,a0
  232.     add.l    #$CEC0,a0
  233.     lea    (a0),a0
  234.     add.l    d2,a0
  235.     move.b    (a0),d0
  236.     bne    L230
  237. L224
  238. ;     x = VB->Win[i][0];
  239.     lea    $5E80(a2),a0
  240.     move.l    d2,d0
  241.     muls.l    #$C,d0
  242.     add.l    d0,a0
  243.     move.l    (a0),-$1C(a5)
  244. ;     y = VB->Win[i][1];
  245.     lea    $5E80(a2),a0
  246.     move.l    d2,d0
  247.     muls.l    #$C,d0
  248.     add.l    d0,a0
  249.     addq.w    #4,a0
  250.     move.l    (a0),-$20(a5)
  251. ;     z = VB->Win[i][2] / DEPTH_SCALE;
  252.     lea    $5E80(a2),a0
  253.     move.l    d2,d0
  254.     muls.l    #$C,d0
  255.     add.l    d0,a0
  256.     addq.w    #$8,a0
  257.     fmove.s    (a0),fp2
  258.     fdiv.s    #$.477FFF00,fp2
  259. ;     w = VB->Clip[i][3];
  260.     lea    $3F00(a2),a0
  261.     move.l    d2,d0
  262.     asl.l    #4,d0
  263.     add.l    d0,a0
  264.     add.w    #$C,a0
  265.     move.l    (a0),-$28(a5)
  266. ;     if (ctx->Light.ShadeModel==GL_SMOOTH) 
  267.     move.l    $8(a5),a1
  268.     lea    $1FA0(a1),a0
  269.     add.l    #$8E04,a0
  270.     move.l    (a0),d0
  271.     cmp.l    #$1D01,d0
  272.     bne    L226
  273. L225
  274. ;        color[0] = FixedToFloat(VB->Color[i][0]) * invRedScale;
  275.     move.l    a2,a1
  276.     add.l    #$9D80,a1
  277.     move.l    (a1),a0
  278.     lea    0(a0,d2.l*4),a0
  279.     move.b    (a0),d0
  280.     and.l    #$FF,d0
  281.     fmove.l    d0,fp0
  282.     fmul.s    #$.39FFFFFF,fp0
  283.     fmul.s    -$C(a5),fp0
  284.     lea    -$3C(a5),a0
  285.     fmove.s    fp0,(a0)
  286. ;        color[1] = FixedToFloat(VB->Color[i][1]) * invGreenScale;
  287.     move.l    a2,a1
  288.     add.l    #$9D80,a1
  289.     move.l    (a1),a0
  290.     lea    0(a0,d2.l*4),a0
  291.     addq.w    #1,a0
  292.     move.b    (a0),d0
  293.     and.l    #$FF,d0
  294.     fmove.l    d0,fp0
  295.     fmul.s    #$.39FFFFFF,fp0
  296.     fmul.x    fp5,fp0
  297.     lea    -$3C(a5),a0
  298.     addq.w    #4,a0
  299.     fmove.s    fp0,(a0)
  300. ;        color[2] = FixedToFloat(VB->Color[i][2]) * invBlueScale;
  301.     move.l    a2,a1
  302.     add.l    #$9D80,a1
  303.     move.l    (a1),a0
  304.     lea    0(a0,d2.l*4),a0
  305.     addq.w    #2,a0
  306.     move.b    (a0),d0
  307.     and.l    #$FF,d0
  308.     fmove.l    d0,fp0
  309.     fmul.s    #$.39FFFFFF,fp0
  310.     fmul.x    fp4,fp0
  311.     lea    -$3C(a5),a0
  312.     addq.w    #$8,a0
  313.     fmove.s    fp0,(a0)
  314. ;        color[3] = FixedToFloat(VB->Color[i][3]) * invAlphaScale;
  315.     move.l    a2,a1
  316.     add.l    #$9D80,a1
  317.     move.l    (a1),a0
  318.     lea    0(a0,d2.l*4),a0
  319.     addq.w    #3,a0
  320.     move.b    (a0),d0
  321.     and.l    #$FF,d0
  322.     fmove.l    d0,fp0
  323.     fmul.s    #$.39FFFFFF,fp0
  324.     fmul.x    fp3,fp0
  325.     lea    -$3C(a5),a0
  326.     add.w    #$C,a0
  327.     fmove.s    fp0,(a0)
  328.     bra    L227
  329. L226
  330. ;        color[0] = VB->Color[i][0] * invRedScale;
  331.     move.l    a2,a1
  332.     add.l    #$9D80,a1
  333.     move.l    (a1),a0
  334.     lea    0(a0,d2.l*4),a0
  335.     move.b    (a0),d0
  336.     and.l    #$FF,d0
  337.     fmove.l    d0,fp0
  338.     fmul.s    -$C(a5),fp0
  339.     lea    -$3C(a5),a0
  340.     fmove.s    fp0,(a0)
  341. ;        color[1] = VB->Color[i][1] * invGreenScale;
  342.     move.l    a2,a1
  343.     add.l    #$9D80,a1
  344.     move.l    (a1),a0
  345.     lea    0(a0,d2.l*4),a0
  346.     addq.w    #1,a0
  347.     move.b    (a0),d0
  348.     and.l    #$FF,d0
  349.     fmove.l    d0,fp0
  350.     fmul.x    fp5,fp0
  351.     lea    -$3C(a5),a0
  352.     addq.w    #4,a0
  353.     fmove.s    fp0,(a0)
  354. ;        color[2] = VB->Color[i][2] * invBlueScale;
  355.     move.l    a2,a1
  356.     add.l    #$9D80,a1
  357.     move.l    (a1),a0
  358.     lea    0(a0,d2.l*4),a0
  359.     addq.w    #2,a0
  360.     move.b    (a0),d0
  361.     and.l    #$FF,d0
  362.     fmove.l    d0,fp0
  363.     fmul.x    fp4,fp0
  364.     lea    -$3C(a5),a0
  365.     addq.w    #$8,a0
  366.     fmove.s    fp0,(a0)
  367. ;        color[3] = VB->Color[i][3] * invAlphaScale;
  368.     move.l    a2,a1
  369.     add.l    #$9D80,a1
  370.     move.l    (a1),a0
  371.     lea    0(a0,d2.l*4),a0
  372.     addq.w    #3,a0
  373.     move.b    (a0),d0
  374.     and.l    #$FF,d0
  375.     fmove.l    d0,fp0
  376.     fmul.x    fp3,fp0
  377.     lea    -$3C(a5),a0
  378.     add.w    #$C,a0
  379.     fmove.s    fp0,(a0)
  380. L227
  381. ;     invq = 1.0F / VB->TexCoord[i][3];
  382.     move.l    a2,a0
  383.     add.l    #$AF40,a0
  384.     lea    (a0),a0
  385.     move.l    d2,d0
  386.     asl.l    #4,d0
  387.     add.l    d0,a0
  388.     add.w    #$C,a0
  389.     fmove.s    (a0),fp0
  390.     fmove.s    #$.3F800000,fp1
  391.     fdiv.x    fp0,fp1
  392.     fmove.x    fp1,fp0
  393. ;     texcoord[0] = VB->TexCoord[i][0] * invq;
  394.     move.l    a2,a0
  395.     add.l    #$AF40,a0
  396.     lea    (a0),a0
  397.     move.l    d2,d0
  398.     asl.l    #4,d0
  399.     add.l    d0,a0
  400.     fmove.s    (a0),fp1
  401.     fmul.x    fp0,fp1
  402.     lea    -$4C(a5),a0
  403.     fmove.s    fp1,(a0)
  404. ;     texcoord[1] = VB->TexCoord[i][1] * invq;
  405.     move.l    a2,a0
  406.     add.l    #$AF40,a0
  407.     lea    (a0),a0
  408.     move.l    d2,d0
  409.     asl.l    #4,d0
  410.     add.l    d0,a0
  411.     addq.w    #4,a0
  412.     fmove.s    (a0),fp1
  413.     fmul.x    fp0,fp1
  414.     lea    -$4C(a5),a0
  415.     addq.w    #4,a0
  416.     fmove.s    fp1,(a0)
  417. ;     texcoord[2] = VB->TexCoord[i][2] * invq;
  418.     move.l    a2,a0
  419.     add.l    #$AF40,a0
  420.     lea    (a0),a0
  421.     move.l    d2,d0
  422.     asl.l    #4,d0
  423.     add.l    d0,a0
  424.     addq.w    #$8,a0
  425.     fmove.s    (a0),fp1
  426.     fmul.x    fp0,fp1
  427.     lea    -$4C(a5),a0
  428.     addq.w    #$8,a0
  429.     fmove.s    fp1,(a0)
  430. ;     texcoord[3] = VB->TexCoord[i][3];
  431.     move.l    a2,a0
  432.     add.l    #$AF40,a0
  433.     lea    (a0),a0
  434.     move.l    d2,d0
  435.     asl.l    #4,d0
  436.     add.l    d0,a0
  437.     add.w    #$C,a0
  438.     fmove.s    (a0),fp0
  439.     lea    -$4C(a5),a0
  440.     add.w    #$C,a0
  441.     fmove.s    fp0,(a0)
  442. ;FEEDBACK_TOKEN( c
  443.     move.l    $8(a5),a1
  444.     move.l    a1,a0
  445.     add.l    #$DF4A,a0
  446.     lea    (a0),a0
  447.     move.l    $10(a0),d1
  448.     move.l    $8(a5),a1
  449.     move.l    a1,a0
  450.     add.l    #$DF4A,a0
  451.     lea    (a0),a0
  452.     move.l    $C(a0),d0
  453.     cmp.l    d0,d1
  454.     bhs.b    L229
  455. L228
  456. ;FEEDBACK_TOKEN( c
  457.     move.l    $8(a5),a1
  458.     move.l    a1,a0
  459.     add.l    #$DF4A,a0
  460.     lea    (a0),a0
  461.     move.l    $8(a0),a0
  462.     move.l    $8(a5),a3
  463.     move.l    a3,a1
  464.     add.l    #$DF4A,a1
  465.     lea    (a1),a1
  466.     move.l    $10(a1),d0
  467.     lea    0(a0,d0.l*4),a0
  468.     move.l    #$44E02000,(a0)
  469. L229
  470. ;FEEDBACK_TOKEN( c
  471.     move.l    $8(a5),a0
  472.     add.l    #$DF5A,a0
  473.     move.l    (a0),d0
  474.     addq.l    #1,d0
  475.     move.l    $8(a5),a0
  476.     add.l    #$DF5A,a0
  477.     move.l    d0,(a0)
  478. ;     gl_feedback_vertex( ctx, x, y, z, w, color,
  479.     lea    -$4C(a5),a0
  480.     move.l    a0,-(a7)
  481.     move.l    a2,a1
  482.     add.l    #$AD44,a1
  483.     move.l    (a1),a0
  484.     lea    0(a0,d2.l*4),a0
  485.     move.l    (a0),d0
  486.     fmove.l    d0,fp0
  487.     fmove.s    fp0,-(a7)
  488.     lea    -$3C(a5),a0
  489.     move.l    a0,-(a7)
  490.     move.l    -$28(a5),-(a7)
  491.     fmove.s    fp2,-(a7)
  492.     move.l    -$20(a5),-(a7)
  493.     move.l    -$1C(a5),-(a7)
  494.     move.l    $8(a5),-(a7)
  495.     jsr    _gl_feedback_vertex
  496.     add.w    #$20,a7
  497. L230
  498.     addq.l    #1,d2
  499. L231
  500.     cmp.l    d3,d2
  501.     bls    L223
  502. L232
  503.     fmovem.x (a7)+,fp2/fp3/fp4/fp5/fp6
  504.     movem.l    (a7)+,d2/d3/a2/a3
  505.     unlk    a5
  506.     rts
  507.  
  508.     SECTION "_select_points:0",CODE
  509.  
  510.  
  511. ;static void select_points( GLcontext *ctx, GLuint first, GLuint last
  512. _select_points
  513. L240    EQU    -$C
  514.     link    a5,#L240
  515.     movem.l    d2/d3/a2,-(a7)
  516.     movem.l    $C(a5),d0/d3
  517. L234
  518. ;   struct vertex_buffer *VB = ctx->VB;
  519.     move.l    $8(a5),a0
  520.     add.l    #$E0C0,a0
  521.     move.l    (a0),a2
  522. ;   for (i=first;
  523.     move.l    d0,d2
  524.     bra.b    L238
  525. L235
  526. ;      if (VB->ClipMask[i]==0) 
  527.     move.l    a2,a0
  528.     add.l    #$CEC0,a0
  529.     lea    (a0),a0
  530.     add.l    d2,a0
  531.     move.b    (a0),d0
  532.     bne.b    L237
  533. L236
  534. ;     gl_update_hitflag( ctx, VB->Win[i][2] / DEPTH_SCALE );
  535.     lea    $5E80(a2),a0
  536.     move.l    d2,d0
  537.     muls.l    #$C,d0
  538.     add.l    d0,a0
  539.     addq.w    #$8,a0
  540.     fmove.s    (a0),fp0
  541.     fdiv.s    #$.477FFF00,fp0
  542.     fmove.s    fp0,-(a7)
  543.     move.l    $8(a5),-(a7)
  544.     jsr    _gl_update_hitflag
  545.     addq.w    #$8,a7
  546. L237
  547.     addq.l    #1,d2
  548. L238
  549.     cmp.l    d3,d2
  550.     bls.b    L235
  551. L239
  552.     movem.l    (a7)+,d2/d3/a2
  553.     unlk    a5
  554.     rts
  555.  
  556.     SECTION "_size1_ci_points:0",CODE
  557.  
  558.  
  559. ;void size1_ci_points( GLcontext *ctx, GLuint first, GLuint last )
  560.     XDEF    _size1_ci_points
  561. _size1_ci_points
  562. L249    EQU    -$48
  563.     link    a5,#L249
  564.     movem.l    d2/d3/a2/a3,-(a7)
  565.     movem.l    $C(a5),d1/d3
  566. L241
  567. ;   struct vertex_buffer *VB = ctx->VB;
  568.     move.l    $8(a5),a0
  569.     add.l    #$E0C0,a0
  570.     move.l    (a0),a2
  571. ;   struct pixel_buffer *PB = ctx->PB;
  572.     move.l    $8(a5),a0
  573.     add.l    #$E0C4,a0
  574.     move.l    (a0),-$8(a5)
  575. ;   GLint *pbx = PB->x
  576.     move.l    -$8(a5),-$10(a5)
  577. ;   GLint *pbx = PB->x, *pby = PB->y;
  578.     move.l    #$4B00,d0
  579.     add.l    -$8(a5),d0
  580.     move.l    d0,-$14(a5)
  581. ;   GLdepth *pbz = PB->z;
  582.     move.l    #$9600,d0
  583.     add.l    -$8(a5),d0
  584.     move.l    d0,-$18(a5)
  585. ;   GLuint *pbi = PB->i;
  586.     move.l    #$10680,d0
  587.     add.l    -$8(a5),d0
  588.     move.l    d0,-$1C(a5)
  589. ;   GLuint pbcount = PB->count;
  590.     move.l    -$8(a5),a0
  591.     add.l    #$27D94,a0
  592.     move.l    (a0),d0
  593. ;   win = &VB->Win[first][0];
  594.     lea    $5E80(a2),a0
  595.     move.l    d1,d2
  596.     muls.l    #$C,d2
  597.     add.l    d2,a0
  598. ;   for (i=first;
  599.     bra    L245
  600. L242
  601. ;      if (VB->ClipMask[i]==0) 
  602.     move.l    a2,a1
  603.     add.l    #$CEC0,a1
  604.     lea    (a1),a1
  605.     add.l    d1,a1
  606.     move.b    (a1),d2
  607.     bne.b    L244
  608. L243
  609. ;     pbx[pbcount] = (GLint)  win[0];
  610.     fmove.s    (a0),fp0
  611.     fmove.l    fp0,d2
  612.     move.l    -$10(a5),a3
  613.     lea    0(a3,d0.l*4),a1
  614.     move.l    d2,(a1)
  615. ;     pby[pbcount] = (GLint)  win[1];
  616.     lea    4(a0),a1
  617.     fmove.s    (a1),fp0
  618.     fmove.l    fp0,d2
  619.     move.l    -$14(a5),a3
  620.     lea    0(a3,d0.l*4),a1
  621.     move.l    d2,(a1)
  622. ;     pbz[pbcount] = (GLint) (win[2] + ctx->PointZoffset);
  623.     lea    $8(a0),a1
  624.     fmove.s    (a1),fp0
  625.     move.l    $8(a5),a1
  626.     add.l    #$E0A4,a1
  627.     fmove.s    (a1),fp1
  628.     fadd.x    fp1,fp0
  629.     fmove.l    fp0,d2
  630.     move.l    -$18(a5),a3
  631.     lea    0(a3,d0.l*2),a1
  632.     move.w    d2,(a1)
  633. ;     pbi[pbcount] = VB->Index[i];
  634.     move.l    a2,a3
  635.     add.l    #$AD44,a3
  636.     move.l    (a3),a1
  637.     lea    0(a1,d1.l*4),a1
  638.     move.l    (a1),d2
  639.     move.l    -$1C(a5),a3
  640.     lea    0(a3,d0.l*4),a1
  641.     move.l    d2,(a1)
  642. ;     pbcount++;
  643.     addq.l    #1,d0
  644. L244
  645. ;      win += 3;
  646.     add.w    #$C,a0
  647.     addq.l    #1,d1
  648. L245
  649.     cmp.l    d3,d1
  650.     bls    L242
  651. L246
  652. ;   PB->count = pbcount;
  653.     move.l    -$8(a5),a0
  654.     add.l    #$27D94,a0
  655.     move.l    d0,(a0)
  656. ;   PB_CHECK_FLUSH(ctx, PB)
  657.     move.l    -$8(a5),a0
  658.     add.l    #$27D94,a0
  659.     move.l    (a0),d0
  660.     cmp.l    #$C80,d0
  661.     blo.b    L248
  662. L247
  663. ;   PB_CHECK_FLUSH(ctx, PB)
  664.     move.l    $8(a5),-(a7)
  665.     jsr    _gl_flush_pb
  666.     addq.w    #4,a7
  667. L248
  668.     movem.l    (a7)+,d2/d3/a2/a3
  669.     unlk    a5
  670.     rts
  671.  
  672.     SECTION "_size1_rgba_points:0",CODE
  673.  
  674.  
  675. ;static void size1_rgba_points( GLcontext *ctx, GLuint first, GLuint 
  676. _size1_rgba_points
  677. L258    EQU    -$40
  678.     link    a5,#L258
  679.     movem.l    d2-d5/a2/a3,-(a7)
  680.     move.l    $C(a5),d0
  681. L250
  682. ;   struct vertex_buffer *VB = ctx->VB;
  683.     move.l    $8(a5),a0
  684.     add.l    #$E0C0,a0
  685.     move.l    (a0),a1
  686. ;   struct pixel_buffer *PB = ctx->PB;
  687.     move.l    $8(a5),a2
  688.     add.l    #$E0C4,a2
  689.     move.l    (a2),a0
  690. ;   for (i=first;
  691.     bra    L254
  692. L251
  693. ;      if (VB->ClipMask[i]==0) 
  694.     move.l    a1,a2
  695.     add.l    #$CEC0,a2
  696.     lea    (a2),a2
  697.     add.l    d0,a2
  698.     move.b    (a2),d1
  699.     bne    L253
  700. L252
  701. ;     x = (GLint)  VB->Win[i][0];
  702.     lea    $5E80(a1),a2
  703.     move.l    d0,d1
  704.     muls.l    #$C,d1
  705.     add.l    d1,a2
  706.     fmove.s    (a2),fp0
  707.     fmove.l    fp0,d1
  708.     move.l    d1,-$10(a5)
  709. ;     y = (GLint)  VB->Win[i][1];
  710.     lea    $5E80(a1),a2
  711.     move.l    d0,d1
  712.     muls.l    #$C,d1
  713.     add.l    d1,a2
  714.     addq.w    #4,a2
  715.     fmove.s    (a2),fp0
  716.     fmove.l    fp0,d1
  717.     move.l    d1,-$14(a5)
  718. ;     z = (GLint) (VB->Win[i][2] + ctx->PointZoffset);
  719.     lea    $5E80(a1),a2
  720.     move.l    d0,d1
  721.     muls.l    #$C,d1
  722.     add.l    d1,a2
  723.     addq.w    #$8,a2
  724.     fmove.s    (a2),fp0
  725.     move.l    $8(a5),a2
  726.     add.l    #$E0A4,a2
  727.     fmove.s    (a2),fp1
  728.     fadd.x    fp1,fp0
  729.     fmove.l    fp0,d2
  730. ;     red   = VB->Color[i][0];
  731.     move.l    a1,a3
  732.     add.l    #$9D80,a3
  733.     move.l    (a3),a2
  734.     lea    0(a2,d0.l*4),a2
  735.     move.b    (a2),d1
  736.     and.l    #$FF,d1
  737.     move.l    d1,-$1C(a5)
  738. ;     green = VB->Color[i][1];
  739.     move.l    a1,a3
  740.     add.l    #$9D80,a3
  741.     move.l    (a3),a2
  742.     lea    0(a2,d0.l*4),a2
  743.     addq.w    #1,a2
  744.     move.b    (a2),d1
  745.     moveq    #0,d5
  746.     move.b    d1,d5
  747. ;     blue  = VB->Color[i][2];
  748.     move.l    a1,a3
  749.     add.l    #$9D80,a3
  750.     move.l    (a3),a2
  751.     lea    0(a2,d0.l*4),a2
  752.     addq.w    #2,a2
  753.     move.b    (a2),d1
  754.     moveq    #0,d4
  755.     move.b    d1,d4
  756. ;     alpha = VB->Color[i][3];
  757.     move.l    a1,a3
  758.     add.l    #$9D80,a3
  759.     move.l    (a3),a2
  760.     lea    0(a2,d0.l*4),a2
  761.     addq.w    #3,a2
  762.     move.b    (a2),d1
  763.     moveq    #0,d3
  764.     move.b    d1,d3
  765. ;E_RGBA_PIXEL( PB,
  766.     move.l    a0,a2
  767.     add.l    #$27D94,a2
  768.     move.l    (a2),d1
  769.     lea    0(a0,d1.l*4),a2
  770.     move.l    -$10(a5),(a2)
  771. ;E_RGBA_PIXEL( PB,
  772.     lea    $4B00(a0),a2
  773.     move.l    a0,a3
  774.     add.l    #$27D94,a3
  775.     move.l    (a3),d1
  776.     lea    0(a2,d1.l*4),a2
  777.     move.l    -$14(a5),(a2)
  778. ;E_RGBA_PIXEL( PB,
  779.     move.l    a0,a2
  780.     add.l    #$9600,a2
  781.     lea    (a2),a2
  782.     move.l    a0,a3
  783.     add.l    #$27D94,a3
  784.     move.l    (a3),d1
  785.     lea    0(a2,d1.l*2),a2
  786.     move.w    d2,(a2)
  787. ;E_RGBA_PIXEL( PB,
  788.     move.b    -$19(a5),d2
  789.     move.l    a0,a2
  790.     add.l    #$BB80,a2
  791.     lea    (a2),a2
  792.     move.l    a0,a3
  793.     add.l    #$27D94,a3
  794.     move.l    (a3),d1
  795.     add.l    d1,a2
  796.     move.b    d2,(a2)
  797. ;E_RGBA_PIXEL( PB,
  798.     move.b    d5,d2
  799.     move.l    a0,a2
  800.     add.l    #$CE40,a2
  801.     lea    (a2),a2
  802.     move.l    a0,a3
  803.     add.l    #$27D94,a3
  804.     move.l    (a3),d1
  805.     add.l    d1,a2
  806.     move.b    d2,(a2)
  807. ;E_RGBA_PIXEL( PB,
  808.     move.b    d4,d2
  809.     move.l    a0,a2
  810.     add.l    #$E100,a2
  811.     lea    (a2),a2
  812.     move.l    a0,a3
  813.     add.l    #$27D94,a3
  814.     move.l    (a3),d1
  815.     add.l    d1,a2
  816.     move.b    d2,(a2)
  817. ;E_RGBA_PIXEL( PB,
  818.     move.b    d3,d2
  819.     move.l    a0,a2
  820.     add.l    #$F3C0,a2
  821.     lea    (a2),a2
  822.     move.l    a0,a3
  823.     add.l    #$27D94,a3
  824.     move.l    (a3),d1
  825.     add.l    d1,a2
  826.     move.b    d2,(a2)
  827. ;E_RGBA_PIXEL( PB,
  828.     move.l    a0,a2
  829.     add.l    #$27D94,a2
  830.     move.l    (a2),d1
  831.     addq.l    #1,d1
  832.     move.l    a0,a2
  833.     add.l    #$27D94,a2
  834.     move.l    d1,(a2)
  835. L253
  836.     addq.l    #1,d0
  837. L254
  838.     cmp.l    $10(a5),d0
  839.     bls    L251
  840. L255
  841. ;   PB_CHECK_FLUSH(ctx,PB)
  842.     add.l    #$27D94,a0
  843.     move.l    (a0),d0
  844.     cmp.l    #$C80,d0
  845.     blo.b    L257
  846. L256
  847. ;   PB_CHECK_FLUSH(ctx,PB)
  848.     move.l    $8(a5),-(a7)
  849.     jsr    _gl_flush_pb
  850.     addq.w    #4,a7
  851. L257
  852.     movem.l    (a7)+,d2-d5/a2/a3
  853.     unlk    a5
  854.     rts
  855.  
  856.     SECTION "_general_ci_points:0",CODE
  857.  
  858.  
  859. ;static void general_ci_points( GLcontext *ctx, GLuint first, GLuint 
  860. _general_ci_points
  861. L284    EQU    -$64
  862.     link    a5,#L284
  863.     movem.l    d2-d5/a2,-(a7)
  864.     move.l    $C(a5),d0
  865. L259
  866. ;   struct vertex_buffer *VB = ctx->VB;
  867.     move.l    $8(a5),a0
  868.     add.l    #$E0C0,a0
  869.     move.l    (a0),-4(a5)
  870. ;   struct pixel_buffer *PB = ctx->PB;
  871.     move.l    $8(a5),a0
  872.     add.l    #$E0C4,a0
  873.     move.l    (a0),a2
  874. ;   isize = (GLint) (CLAMP(ctx->Point.Size,MIN_POINT_SIZE,MAX_POIN
  875.     move.l    $8(a5),a1
  876.     move.l    a1,a0
  877.     add.l    #$D652,a0
  878.     lea    (a0),a0
  879.     fmove.s    2(a0),fp0
  880.     fcmp.d    #$.3FF00000.00000000,fp0
  881.     fboge.b    L261
  882. L260
  883.     fmove.d    #$.3FF00000.00000000,fp0
  884.     bra.b    L265
  885. L261
  886.     move.l    $8(a5),a1
  887.     move.l    a1,a0
  888.     add.l    #$D652,a0
  889.     lea    (a0),a0
  890.     fmove.s    2(a0),fp0
  891.     fcmp.d    #$.40240000.00000000,fp0
  892.     fbole.b    L263
  893. L262
  894.     fmove.d    #$.40240000.00000000,fp0
  895.     bra.b    L264
  896. L263
  897.     move.l    $8(a5),a1
  898.     move.l    a1,a0
  899.     add.l    #$D652,a0
  900.     lea    (a0),a0
  901.     fmove.s    2(a0),fp0
  902. L264
  903. L265
  904.     fadd.d    #$.3FE00000.00000000,fp0
  905.     fmove.l    fp0,d1
  906.     move.l    d1,-$10(a5)
  907. ;   for (i=first;
  908.     move.l    d0,-$C(a5)
  909.     bra    L282
  910. L266
  911. ;      if (VB->ClipMask[i]==0) 
  912.     move.l    -4(a5),a1
  913.     move.l    a1,a0
  914.     add.l    #$CEC0,a0
  915.     lea    (a0),a0
  916.     move.l    -$C(a5),d0
  917.     add.l    d0,a0
  918.     move.b    (a0),d0
  919.     bne    L281
  920. L267
  921. ;     x = (GLint)  VB->Win[i][0];
  922.     move.l    -4(a5),a1
  923.     lea    $5E80(a1),a0
  924.     move.l    -$C(a5),d0
  925.     muls.l    #$C,d0
  926.     add.l    d0,a0
  927.     fmove.s    (a0),fp0
  928.     fmove.l    fp0,d1
  929. ;     y = (GLint)  VB->Win[i][1];
  930.     move.l    -4(a5),a1
  931.     lea    $5E80(a1),a0
  932.     move.l    -$C(a5),d0
  933.     muls.l    #$C,d0
  934.     add.l    d0,a0
  935.     addq.w    #4,a0
  936.     fmove.s    (a0),fp0
  937.     fmove.l    fp0,d0
  938. ;     z = (GLint) (VB->Win[i][2] + ctx->PointZoffset);
  939.     move.l    -4(a5),a1
  940.     lea    $5E80(a1),a0
  941.     move.l    -$C(a5),d2
  942.     muls.l    #$C,d2
  943.     add.l    d2,a0
  944.     addq.w    #$8,a0
  945.     fmove.s    (a0),fp0
  946.     move.l    $8(a5),a0
  947.     add.l    #$E0A4,a0
  948.     fmove.s    (a0),fp1
  949.     fadd.x    fp1,fp0
  950.     fmove.l    fp0,d5
  951. ;     if (isize&1) 
  952.     move.l    -$10(a5),d2
  953.     and.l    #1,d2
  954.     beq.b    L269
  955. L268
  956. ;        x0 = x - isize/2;
  957.     move.l    -$10(a5),d2
  958.     divsl.l    #2,d2
  959.     move.l    d2,-$20(a5)
  960.     move.l    d1,d2
  961.     sub.l    -$20(a5),d2
  962.     move.l    d2,-$20(a5)
  963. ;        x1 = x + isize/2;
  964.     move.l    -$10(a5),d4
  965.     divsl.l    #2,d4
  966.     add.l    d1,d4
  967. ;        y0 = y - isize/2;
  968.     move.l    -$10(a5),d2
  969.     divsl.l    #2,d2
  970.     move.l    d0,d1
  971.     sub.l    d2,d1
  972.     move.l    d1,d2
  973. ;        y1 = y + isize/2;
  974.     move.l    -$10(a5),d1
  975.     divsl.l    #2,d1
  976.     move.l    d1,-$2C(a5)
  977.     add.l    d0,-$2C(a5)
  978.     bra.b    L270
  979. L269
  980. ;        x0 = (GLint) (x + 0.5F) - isize/2;
  981.     fmove.l    d1,fp0
  982.     fadd.s    #$.3F000000,fp0
  983.     fmove.l    fp0,d1
  984.     move.l    d1,-$20(a5)
  985.     move.l    -$10(a5),d1
  986.     divsl.l    #2,d1
  987.     sub.l    d1,-$20(a5)
  988. ;        x1 = x0 + isize-1;
  989.     move.l    -$20(a5),d4
  990.     add.l    -$10(a5),d4
  991.     subq.l    #1,d4
  992. ;        y0 = (GLint) (y + 0.5F) - isize/2;
  993.     fmove.l    d0,fp0
  994.     fadd.s    #$.3F000000,fp0
  995.     fmove.l    fp0,d2
  996.     move.l    -$10(a5),d0
  997.     divsl.l    #2,d0
  998.     sub.l    d0,d2
  999. ;        y1 = y0 + isize-1;
  1000.     move.l    d2,d0
  1001.     add.l    -$10(a5),d0
  1002.     move.l    d0,-$2C(a5)
  1003.     subq.l    #1,-$2C(a5)
  1004. L270
  1005. ;     PB_SET_INDEX( ctx, PB, VB->I
  1006.     move.l    a2,a0
  1007.     add.l    #$27D90,a0
  1008.     move.l    (a0),d1
  1009.     move.l    -4(a5),a1
  1010.     add.l    #$AD44,a1
  1011.     move.l    (a1),a0
  1012.     move.l    -$C(a5),d0
  1013.     lea    0(a0,d0.l*4),a0
  1014.     move.l    (a0),d0
  1015.     cmp.l    d0,d1
  1016.     bne.b    L272
  1017. L271
  1018.     move.l    a2,a0
  1019.     add.l    #$27D98,a0
  1020.     move.b    (a0),d0
  1021.     bne.b    L273
  1022. L272
  1023. ;     PB_SET_INDEX( ctx, PB, VB->I
  1024.     move.l    $8(a5),-(a7)
  1025.     jsr    _gl_flush_pb
  1026.     addq.w    #4,a7
  1027. L273
  1028. ;     PB_SET_INDEX( ctx, PB, VB->I
  1029.     move.l    -4(a5),a1
  1030.     add.l    #$AD44,a1
  1031.     move.l    (a1),a0
  1032.     move.l    -$C(a5),d0
  1033.     lea    0(a0,d0.l*4),a0
  1034.     move.l    (a0),d0
  1035.     move.l    a2,a0
  1036.     add.l    #$27D90,a0
  1037.     move.l    d0,(a0)
  1038. ;     PB_SET_INDEX( ctx, PB, VB->I
  1039.     move.l    a2,a0
  1040.     add.l    #$27D98,a0
  1041.     move.b    #1,(a0)
  1042. ;     for (iy=y0;
  1043.     move.l    d2,d3
  1044.     bra.b    L278
  1045. L274
  1046. ;        for (ix=x0;
  1047.     move.l    -$20(a5),d0
  1048.     bra.b    L276
  1049. L275
  1050. ;           PB_WRITE_PIXEL( PB, ix
  1051.     move.l    a2,a0
  1052.     add.l    #$27D94,a0
  1053.     move.l    (a0),d1
  1054.     lea    0(a2,d1.l*4),a0
  1055.     move.l    d0,(a0)
  1056. ;           PB_WRITE_PIXEL( PB, ix
  1057.     lea    $4B00(a2),a0
  1058.     move.l    a2,a1
  1059.     add.l    #$27D94,a1
  1060.     move.l    (a1),d1
  1061.     lea    0(a0,d1.l*4),a0
  1062.     move.l    d3,(a0)
  1063. ;           PB_WRITE_PIXEL( PB, ix
  1064.     move.w    d5,d2
  1065.     move.l    a2,a0
  1066.     add.l    #$9600,a0
  1067.     lea    (a0),a0
  1068.     move.l    a2,a1
  1069.     add.l    #$27D94,a1
  1070.     move.l    (a1),d1
  1071.     lea    0(a0,d1.l*2),a0
  1072.     move.w    d2,(a0)
  1073. ;           PB_WRITE_PIXEL( PB, ix
  1074.     move.l    a2,a0
  1075.     add.l    #$27D94,a0
  1076.     move.l    (a0),d1
  1077.     addq.l    #1,d1
  1078.     move.l    a2,a0
  1079.     add.l    #$27D94,a0
  1080.     move.l    d1,(a0)
  1081.     addq.l    #1,d0
  1082. L276
  1083.     cmp.l    d4,d0
  1084.     ble.b    L275
  1085. L277
  1086.     addq.l    #1,d3
  1087. L278
  1088.     cmp.l    -$2C(a5),d3
  1089.     ble.b    L274
  1090. L279
  1091. ;     PB_CHECK_FLUSH(ctx,PB)
  1092.     move.l    a2,a0
  1093.     add.l    #$27D94,a0
  1094.     move.l    (a0),d0
  1095.     cmp.l    #$C80,d0
  1096.     blo.b    L281
  1097. L280
  1098. ;     PB_CHECK_FLUSH(ctx,PB)
  1099.     move.l    $8(a5),-(a7)
  1100.     jsr    _gl_flush_pb
  1101.     addq.w    #4,a7
  1102. L281
  1103.     addq.l    #1,-$C(a5)
  1104. L282
  1105.     move.l    -$C(a5),d0
  1106.     cmp.l    $10(a5),d0
  1107.     bls    L266
  1108. L283
  1109.     movem.l    (a7)+,d2-d5/a2
  1110.     unlk    a5
  1111.     rts
  1112.  
  1113.     SECTION "_general_rgba_points:0",CODE
  1114.  
  1115.  
  1116. ;static void general_rgba_points( GLcontext *ctx, GLuint first, GLuin
  1117. _general_rgba_points
  1118. L313    EQU    -$7C
  1119.     link    a5,#L313
  1120.     movem.l    d2-d5/a2,-(a7)
  1121.     move.l    $C(a5),d0
  1122. L285
  1123. ;   struct vertex_buffer *VB = ctx->VB;
  1124.     move.l    $8(a5),a0
  1125.     add.l    #$E0C0,a0
  1126.     move.l    (a0),-4(a5)
  1127. ;   struct pixel_buffer *PB = ctx->PB;
  1128.     move.l    $8(a5),a0
  1129.     add.l    #$E0C4,a0
  1130.     move.l    (a0),a2
  1131. ;   isize = (GLint) (CLAMP(ctx->Point.Size,MIN_POINT_SIZE,MAX_POIN
  1132.     move.l    $8(a5),a1
  1133.     move.l    a1,a0
  1134.     add.l    #$D652,a0
  1135.     lea    (a0),a0
  1136.     fmove.s    2(a0),fp0
  1137.     fcmp.d    #$.3FF00000.00000000,fp0
  1138.     fboge.b    L287
  1139. L286
  1140.     fmove.d    #$.3FF00000.00000000,fp0
  1141.     bra.b    L291
  1142. L287
  1143.     move.l    $8(a5),a1
  1144.     move.l    a1,a0
  1145.     add.l    #$D652,a0
  1146.     lea    (a0),a0
  1147.     fmove.s    2(a0),fp0
  1148.     fcmp.d    #$.40240000.00000000,fp0
  1149.     fbole.b    L289
  1150. L288
  1151.     fmove.d    #$.40240000.00000000,fp0
  1152.     bra.b    L290
  1153. L289
  1154.     move.l    $8(a5),a1
  1155.     move.l    a1,a0
  1156.     add.l    #$D652,a0
  1157.     lea    (a0),a0
  1158.     fmove.s    2(a0),fp0
  1159. L290
  1160. L291
  1161.     fadd.d    #$.3FE00000.00000000,fp0
  1162.     fmove.l    fp0,d1
  1163.     move.l    d1,-$10(a5)
  1164. ;   for (i=first;
  1165.     move.l    d0,-$C(a5)
  1166.     bra    L311
  1167. L292
  1168. ;      if (VB->ClipMask[i]==0) 
  1169.     move.l    -4(a5),a1
  1170.     move.l    a1,a0
  1171.     add.l    #$CEC0,a0
  1172.     lea    (a0),a0
  1173.     move.l    -$C(a5),d0
  1174.     add.l    d0,a0
  1175.     move.b    (a0),d0
  1176.     bne    L310
  1177. L293
  1178. ;     x = (GLint)  VB->Win[i][0];
  1179.     move.l    -4(a5),a1
  1180.     lea    $5E80(a1),a0
  1181.     move.l    -$C(a5),d0
  1182.     muls.l    #$C,d0
  1183.     add.l    d0,a0
  1184.     fmove.s    (a0),fp0
  1185.     fmove.l    fp0,d1
  1186. ;     y = (GLint)  VB->Win[i][1];
  1187.     move.l    -4(a5),a1
  1188.     lea    $5E80(a1),a0
  1189.     move.l    -$C(a5),d0
  1190.     muls.l    #$C,d0
  1191.     add.l    d0,a0
  1192.     addq.w    #4,a0
  1193.     fmove.s    (a0),fp0
  1194.     fmove.l    fp0,d0
  1195. ;     z = (GLint) (VB->Win[i][2] + ctx->PointZoffset);
  1196.     move.l    -4(a5),a1
  1197.     lea    $5E80(a1),a0
  1198.     move.l    -$C(a5),d2
  1199.     muls.l    #$C,d2
  1200.     add.l    d2,a0
  1201.     addq.w    #$8,a0
  1202.     fmove.s    (a0),fp0
  1203.     move.l    $8(a5),a0
  1204.     add.l    #$E0A4,a0
  1205.     fmove.s    (a0),fp1
  1206.     fadd.x    fp1,fp0
  1207.     fmove.l    fp0,d5
  1208. ;     if (isize&1) 
  1209.     move.l    -$10(a5),d2
  1210.     and.l    #1,d2
  1211.     beq.b    L295
  1212. L294
  1213. ;        x0 = x - isize/2;
  1214.     move.l    -$10(a5),d2
  1215.     divsl.l    #2,d2
  1216.     move.l    d2,-$20(a5)
  1217.     move.l    d1,d2
  1218.     sub.l    -$20(a5),d2
  1219.     move.l    d2,-$20(a5)
  1220. ;        x1 = x + isize/2;
  1221.     move.l    -$10(a5),d4
  1222.     divsl.l    #2,d4
  1223.     add.l    d1,d4
  1224. ;        y0 = y - isize/2;
  1225.     move.l    -$10(a5),d2
  1226.     divsl.l    #2,d2
  1227.     move.l    d0,d1
  1228.     sub.l    d2,d1
  1229.     move.l    d1,d2
  1230. ;        y1 = y + isize/2;
  1231.     move.l    -$10(a5),d1
  1232.     divsl.l    #2,d1
  1233.     move.l    d1,-$2C(a5)
  1234.     add.l    d0,-$2C(a5)
  1235.     bra.b    L296
  1236. L295
  1237. ;        x0 = (GLint) (x + 0.5F) - isize/2;
  1238.     fmove.l    d1,fp0
  1239.     fadd.s    #$.3F000000,fp0
  1240.     fmove.l    fp0,d1
  1241.     move.l    d1,-$20(a5)
  1242.     move.l    -$10(a5),d1
  1243.     divsl.l    #2,d1
  1244.     sub.l    d1,-$20(a5)
  1245. ;        x1 = x0 + isize-1;
  1246.     move.l    -$20(a5),d4
  1247.     add.l    -$10(a5),d4
  1248.     subq.l    #1,d4
  1249. ;        y0 = (GLint) (y + 0.5F) - isize/2;
  1250.     fmove.l    d0,fp0
  1251.     fadd.s    #$.3F000000,fp0
  1252.     fmove.l    fp0,d2
  1253.     move.l    -$10(a5),d0
  1254.     divsl.l    #2,d0
  1255.     sub.l    d0,d2
  1256. ;        y1 = y0 + isize-1;
  1257.     move.l    d2,d0
  1258.     add.l    -$10(a5),d0
  1259.     move.l    d0,-$2C(a5)
  1260.     subq.l    #1,-$2C(a5)
  1261. L296
  1262. ;               VB->Color[i][3] )
  1263.     move.l    a2,a0
  1264.     add.l    #$27D80,a0
  1265.     lea    (a0),a0
  1266.     move.l    (a0),d1
  1267.     move.l    -4(a5),a1
  1268.     add.l    #$9D80,a1
  1269.     move.l    (a1),a0
  1270.     move.l    -$C(a5),d0
  1271.     lea    0(a0,d0.l*4),a0
  1272.     move.b    (a0),d0
  1273.     and.l    #$FF,d0
  1274.     cmp.l    d0,d1
  1275.     bne    L301
  1276. L297
  1277.     move.l    a2,a0
  1278.     add.l    #$27D80,a0
  1279.     lea    (a0),a0
  1280.     addq.w    #4,a0
  1281.     move.l    (a0),d1
  1282.     move.l    -4(a5),a1
  1283.     add.l    #$9D80,a1
  1284.     move.l    (a1),a0
  1285.     move.l    -$C(a5),d0
  1286.     lea    0(a0,d0.l*4),a0
  1287.     addq.w    #1,a0
  1288.     move.b    (a0),d0
  1289.     and.l    #$FF,d0
  1290.     cmp.l    d0,d1
  1291.     bne.b    L301
  1292. L298
  1293.     move.l    a2,a0
  1294.     add.l    #$27D80,a0
  1295.     lea    (a0),a0
  1296.     addq.w    #$8,a0
  1297.     move.l    (a0),d1
  1298.     move.l    -4(a5),a1
  1299.     add.l    #$9D80,a1
  1300.     move.l    (a1),a0
  1301.     move.l    -$C(a5),d0
  1302.     lea    0(a0,d0.l*4),a0
  1303.     addq.w    #2,a0
  1304.     move.b    (a0),d0
  1305.     and.l    #$FF,d0
  1306.     cmp.l    d0,d1
  1307.     bne.b    L301
  1308. L299
  1309.     move.l    a2,a0
  1310.     add.l    #$27D80,a0
  1311.     lea    (a0),a0
  1312.     add.w    #$C,a0
  1313.     move.l    (a0),d1
  1314.     move.l    -4(a5),a1
  1315.     add.l    #$9D80,a1
  1316.     move.l    (a1),a0
  1317.     move.l    -$C(a5),d0
  1318.     lea    0(a0,d0.l*4),a0
  1319.     addq.w    #3,a0
  1320.     move.b    (a0),d0
  1321.     and.l    #$FF,d0
  1322.     cmp.l    d0,d1
  1323.     bne.b    L301
  1324. L300
  1325.     move.l    a2,a0
  1326.     add.l    #$27D98,a0
  1327.     move.b    (a0),d0
  1328.     bne.b    L302
  1329. L301
  1330. ;               VB->Color[i][3] )
  1331.     move.l    $8(a5),-(a7)
  1332.     jsr    _gl_flush_pb
  1333.     addq.w    #4,a7
  1334. L302
  1335. ;               VB->Color[i][3] )
  1336.     move.l    -4(a5),a1
  1337.     add.l    #$9D80,a1
  1338.     move.l    (a1),a0
  1339.     move.l    -$C(a5),d0
  1340.     lea    0(a0,d0.l*4),a0
  1341.     move.b    (a0),d0
  1342.     and.l    #$FF,d0
  1343.     move.l    a2,a0
  1344.     add.l    #$27D80,a0
  1345.     lea    (a0),a0
  1346.     move.l    d0,(a0)
  1347. ;               VB->Color[i][3] )
  1348.     move.l    -4(a5),a1
  1349.     add.l    #$9D80,a1
  1350.     move.l    (a1),a0
  1351.     move.l    -$C(a5),d0
  1352.     lea    0(a0,d0.l*4),a0
  1353.     addq.w    #1,a0
  1354.     move.b    (a0),d0
  1355.     and.l    #$FF,d0
  1356.     move.l    a2,a0
  1357.     add.l    #$27D80,a0
  1358.     lea    (a0),a0
  1359.     addq.w    #4,a0
  1360.     move.l    d0,(a0)
  1361. ;               VB->Color[i][3] )
  1362.     move.l    -4(a5),a1
  1363.     add.l    #$9D80,a1
  1364.     move.l    (a1),a0
  1365.     move.l    -$C(a5),d0
  1366.     lea    0(a0,d0.l*4),a0
  1367.     addq.w    #2,a0
  1368.     move.b    (a0),d0
  1369.     and.l    #$FF,d0
  1370.     move.l    a2,a0
  1371.     add.l    #$27D80,a0
  1372.     lea    (a0),a0
  1373.     addq.w    #$8,a0
  1374.     move.l    d0,(a0)
  1375. ;               VB->Color[i][3] )
  1376.     move.l    -4(a5),a1
  1377.     add.l    #$9D80,a1
  1378.     move.l    (a1),a0
  1379.     move.l    -$C(a5),d0
  1380.     lea    0(a0,d0.l*4),a0
  1381.     addq.w    #3,a0
  1382.     move.b    (a0),d0
  1383.     and.l    #$FF,d0
  1384.     move.l    a2,a0
  1385.     add.l    #$27D80,a0
  1386.     lea    (a0),a0
  1387.     add.w    #$C,a0
  1388.     move.l    d0,(a0)
  1389. ;               VB->Color[i][3] )
  1390.     move.l    a2,a0
  1391.     add.l    #$27D98,a0
  1392.     move.b    #1,(a0)
  1393. ;     for (iy=y0;
  1394.     move.l    d2,d3
  1395.     bra.b    L307
  1396. L303
  1397. ;        for (ix=x0;
  1398.     move.l    -$20(a5),d0
  1399.     bra.b    L305
  1400. L304
  1401. ;           PB_WRITE_PIXEL( PB, ix
  1402.     move.l    a2,a0
  1403.     add.l    #$27D94,a0
  1404.     move.l    (a0),d1
  1405.     lea    0(a2,d1.l*4),a0
  1406.     move.l    d0,(a0)
  1407. ;           PB_WRITE_PIXEL( PB, ix
  1408.     lea    $4B00(a2),a0
  1409.     move.l    a2,a1
  1410.     add.l    #$27D94,a1
  1411.     move.l    (a1),d1
  1412.     lea    0(a0,d1.l*4),a0
  1413.     move.l    d3,(a0)
  1414. ;           PB_WRITE_PIXEL( PB, ix
  1415.     move.w    d5,d2
  1416.     move.l    a2,a0
  1417.     add.l    #$9600,a0
  1418.     lea    (a0),a0
  1419.     move.l    a2,a1
  1420.     add.l    #$27D94,a1
  1421.     move.l    (a1),d1
  1422.     lea    0(a0,d1.l*2),a0
  1423.     move.w    d2,(a0)
  1424. ;           PB_WRITE_PIXEL( PB, ix
  1425.     move.l    a2,a0
  1426.     add.l    #$27D94,a0
  1427.     move.l    (a0),d1
  1428.     addq.l    #1,d1
  1429.     move.l    a2,a0
  1430.     add.l    #$27D94,a0
  1431.     move.l    d1,(a0)
  1432.     addq.l    #1,d0
  1433. L305
  1434.     cmp.l    d4,d0
  1435.     ble.b    L304
  1436. L306
  1437.     addq.l    #1,d3
  1438. L307
  1439.     cmp.l    -$2C(a5),d3
  1440.     ble.b    L303
  1441. L308
  1442. ;     PB_CHECK_FLUSH(ctx,PB)
  1443.     move.l    a2,a0
  1444.     add.l    #$27D94,a0
  1445.     move.l    (a0),d0
  1446.     cmp.l    #$C80,d0
  1447.     blo.b    L310
  1448. L309
  1449. ;     PB_CHECK_FLUSH(ctx,PB)
  1450.     move.l    $8(a5),-(a7)
  1451.     jsr    _gl_flush_pb
  1452.     addq.w    #4,a7
  1453. L310
  1454.     addq.l    #1,-$C(a5)
  1455. L311
  1456.     move.l    -$C(a5),d0
  1457.     cmp.l    $10(a5),d0
  1458.     bls    L292
  1459. L312
  1460.     movem.l    (a7)+,d2-d5/a2
  1461.     unlk    a5
  1462.     rts
  1463.  
  1464.     SECTION "_textured_rgba_points:0",CODE
  1465.  
  1466.  
  1467. ;static void textured_rgba_points( GLcontext *ctx, GLuint first, GLui
  1468. _textured_rgba_points
  1469. L338    EQU    -$94
  1470.     link    a5,#L338
  1471.     movem.l    d2-d5/a2,-(a7)
  1472.     fmovem.x fp2/fp3,-(a7)
  1473.     move.l    $C(a5),d0
  1474. L314
  1475. ;   struct vertex_buffer *VB = ctx->VB;
  1476.     move.l    $8(a5),a0
  1477.     add.l    #$E0C0,a0
  1478.     move.l    (a0),-4(a5)
  1479. ;   struct pixel_buffer *PB = ctx->PB;
  1480.     move.l    $8(a5),a0
  1481.     add.l    #$E0C4,a0
  1482.     move.l    (a0),a2
  1483. ;   for (i=first;
  1484.     move.l    d0,d5
  1485.     bra    L336
  1486. L315
  1487. ;      if (VB->ClipMask[i]==0) 
  1488.     move.l    -4(a5),a1
  1489.     move.l    a1,a0
  1490.     add.l    #$CEC0,a0
  1491.     lea    (a0),a0
  1492.     add.l    d5,a0
  1493.     move.b    (a0),d0
  1494.     bne    L335
  1495. L316
  1496. ;     x = (GLint)  VB->Win[i][0];
  1497.     move.l    -4(a5),a1
  1498.     lea    $5E80(a1),a0
  1499.     move.l    d5,d0
  1500.     muls.l    #$C,d0
  1501.     add.l    d0,a0
  1502.     fmove.s    (a0),fp0
  1503.     fmove.l    fp0,d1
  1504. ;     y = (GLint)  VB->Win[i][1];
  1505.     move.l    -4(a5),a1
  1506.     lea    $5E80(a1),a0
  1507.     move.l    d5,d0
  1508.     muls.l    #$C,d0
  1509.     add.l    d0,a0
  1510.     addq.w    #4,a0
  1511.     fmove.s    (a0),fp0
  1512.     fmove.l    fp0,d2
  1513. ;     z = (GLint) (VB->Win[i][2] + ctx->PointZoffset);
  1514.     move.l    -4(a5),a1
  1515.     lea    $5E80(a1),a0
  1516.     move.l    d5,d0
  1517.     muls.l    #$C,d0
  1518.     add.l    d0,a0
  1519.     addq.w    #$8,a0
  1520.     fmove.s    (a0),fp0
  1521.     move.l    $8(a5),a0
  1522.     add.l    #$E0A4,a0
  1523.     fmove.s    (a0),fp1
  1524.     fadd.x    fp1,fp0
  1525.     fmove.l    fp0,d0
  1526.     move.l    d0,-$18(a5)
  1527. ;     isize = (GLint)
  1528.     move.l    $8(a5),a1
  1529.     move.l    a1,a0
  1530.     add.l    #$D652,a0
  1531.     lea    (a0),a0
  1532.     fmove.s    2(a0),fp0
  1533.     fcmp.d    #$.3FF00000.00000000,fp0
  1534.     fboge.b    L318
  1535. L317
  1536.     fmove.d    #$.3FF00000.00000000,fp0
  1537.     bra.b    L322
  1538. L318
  1539.     move.l    $8(a5),a1
  1540.     move.l    a1,a0
  1541.     add.l    #$D652,a0
  1542.     lea    (a0),a0
  1543.     fmove.s    2(a0),fp0
  1544.     fcmp.d    #$.40240000.00000000,fp0
  1545.     fbole.b    L320
  1546. L319
  1547.     fmove.d    #$.40240000.00000000,fp0
  1548.     bra.b    L321
  1549. L320
  1550.     move.l    $8(a5),a1
  1551.     move.l    a1,a0
  1552.     add.l    #$D652,a0
  1553.     lea    (a0),a0
  1554.     fmove.s    2(a0),fp0
  1555. L321
  1556. L322
  1557.     fadd.d    #$.3FE00000.00000000,fp0
  1558.     fmove.l    fp0,d0
  1559. ;     if (isize<1) 
  1560.     cmp.l    #1,d0
  1561.     bge.b    L324
  1562. L323
  1563. ;        isize = 1;
  1564.     moveq    #1,d0
  1565. L324
  1566. ;     if (isize&1) 
  1567.     move.l    d0,d3
  1568.     and.l    #1,d3
  1569.     beq.b    L326
  1570. L325
  1571. ;        x0 = x - isize/2;
  1572.     move.l    d0,d3
  1573.     divsl.l    #2,d3
  1574.     move.l    d3,-$1C(a5)
  1575.     move.l    d1,d3
  1576.     sub.l    -$1C(a5),d3
  1577.     move.l    d3,-$1C(a5)
  1578. ;        x1 = x + isize/2;
  1579.     move.l    d0,d4
  1580.     divsl.l    #2,d4
  1581.     add.l    d1,d4
  1582. ;        y0 = y - isize/2;
  1583.     move.l    d0,d1
  1584.     divsl.l    #2,d1
  1585.     move.l    d2,d3
  1586.     sub.l    d1,d3
  1587.     move.l    d3,d1
  1588. ;        y1 = y + isize/2;
  1589.     divsl.l    #2,d0
  1590.     move.l    d0,-$28(a5)
  1591.     add.l    d2,-$28(a5)
  1592.     bra.b    L327
  1593. L326
  1594. ;        x0 = (GLint) (x + 0.5F) - isize/2;
  1595.     fmove.l    d1,fp0
  1596.     fadd.s    #$.3F000000,fp0
  1597.     fmove.l    fp0,d1
  1598.     move.l    d1,-$1C(a5)
  1599.     move.l    d0,d1
  1600.     divsl.l    #2,d1
  1601.     sub.l    d1,-$1C(a5)
  1602. ;        x1 = x0 + isize-1;
  1603.     move.l    -$1C(a5),d4
  1604.     add.l    d0,d4
  1605.     subq.l    #1,d4
  1606. ;        y0 = (GLint) (y + 0.5F) - isize/2;
  1607.     fmove.l    d2,fp0
  1608.     fadd.s    #$.3F000000,fp0
  1609.     fmove.l    fp0,d1
  1610.     move.l    d0,d2
  1611.     divsl.l    #2,d2
  1612.     sub.l    d2,d1
  1613. ;        y1 = y0 + isize-1;
  1614.     move.l    d1,d2
  1615.     add.l    d0,d2
  1616.     move.l    d2,-$28(a5)
  1617.     subq.l    #1,-$28(a5)
  1618. L327
  1619. ;     red   = VB->Color[i][0];
  1620.     move.l    -4(a5),a1
  1621.     add.l    #$9D80,a1
  1622.     move.l    (a1),a0
  1623.     lea    0(a0,d5.l*4),a0
  1624.     move.b    (a0),d0
  1625.     and.l    #$FF,d0
  1626.     move.l    d0,-$38(a5)
  1627. ;     green = VB->Color[i][1];
  1628.     move.l    -4(a5),a1
  1629.     add.l    #$9D80,a1
  1630.     move.l    (a1),a0
  1631.     lea    0(a0,d5.l*4),a0
  1632.     addq.w    #1,a0
  1633.     move.b    (a0),d0
  1634.     and.l    #$FF,d0
  1635.     move.l    d0,-$3C(a5)
  1636. ;     blue  = VB->Color[i][2];
  1637.     move.l    -4(a5),a1
  1638.     add.l    #$9D80,a1
  1639.     move.l    (a1),a0
  1640.     lea    0(a0,d5.l*4),a0
  1641.     addq.w    #2,a0
  1642.     move.b    (a0),d0
  1643.     and.l    #$FF,d0
  1644.     move.l    d0,-$40(a5)
  1645. ;     alpha = VB->Color[i][3];
  1646.     move.l    -4(a5),a1
  1647.     add.l    #$9D80,a1
  1648.     move.l    (a1),a0
  1649.     lea    0(a0,d5.l*4),a0
  1650.     addq.w    #3,a0
  1651.     move.b    (a0),d0
  1652.     and.l    #$FF,d0
  1653.     move.l    d0,-$44(a5)
  1654. ;     s = VB->TexCoord[i][0] / VB->TexCoord[i][3];
  1655.     move.l    -4(a5),a1
  1656.     move.l    a1,a0
  1657.     add.l    #$AF40,a0
  1658.     lea    (a0),a0
  1659.     move.l    d5,d0
  1660.     asl.l    #4,d0
  1661.     add.l    d0,a0
  1662.     fmove.s    (a0),fp2
  1663.     move.l    -4(a5),a1
  1664.     move.l    a1,a0
  1665.     add.l    #$AF40,a0
  1666.     lea    (a0),a0
  1667.     move.l    d5,d0
  1668.     asl.l    #4,d0
  1669.     add.l    d0,a0
  1670.     add.w    #$C,a0
  1671.     fmove.s    (a0),fp0
  1672.     fdiv.x    fp0,fp2
  1673. ;     t = VB->TexCoord[i][1] / VB->TexCoord[i][3];
  1674.     move.l    -4(a5),a1
  1675.     move.l    a1,a0
  1676.     add.l    #$AF40,a0
  1677.     lea    (a0),a0
  1678.     move.l    d5,d0
  1679.     asl.l    #4,d0
  1680.     add.l    d0,a0
  1681.     addq.w    #4,a0
  1682.     fmove.s    (a0),fp1
  1683.     move.l    -4(a5),a1
  1684.     move.l    a1,a0
  1685.     add.l    #$AF40,a0
  1686.     lea    (a0),a0
  1687.     move.l    d5,d0
  1688.     asl.l    #4,d0
  1689.     add.l    d0,a0
  1690.     add.w    #$C,a0
  1691.     fmove.s    (a0),fp0
  1692.     fdiv.x    fp0,fp1
  1693. ;     u = VB->TexCoord[i][2] / VB->TexCoord[i][3];
  1694.     move.l    -4(a5),a1
  1695.     move.l    a1,a0
  1696.     add.l    #$AF40,a0
  1697.     lea    (a0),a0
  1698.     move.l    d5,d0
  1699.     asl.l    #4,d0
  1700.     add.l    d0,a0
  1701.     addq.w    #$8,a0
  1702.     fmove.s    (a0),fp0
  1703.     move.l    -4(a5),a1
  1704.     move.l    a1,a0
  1705.     add.l    #$AF40,a0
  1706.     lea    (a0),a0
  1707.     move.l    d5,d0
  1708.     asl.l    #4,d0
  1709.     add.l    d0,a0
  1710.     add.w    #$C,a0
  1711.     fmove.s    (a0),fp3
  1712.     fdiv.x    fp3,fp0
  1713. ;     for (iy=y0;
  1714.     move.l    d1,d3
  1715.     bra    L332
  1716. L328
  1717. ;        for (ix=x0;
  1718.     move.l    -$1C(a5),d0
  1719.     bra    L330
  1720. L329
  1721. ;L( PB, ix, iy, z,
  1722.     move.l    a2,a0
  1723.     add.l    #$27D94,a0
  1724.     move.l    (a0),d1
  1725.     lea    0(a2,d1.l*4),a0
  1726.     move.l    d0,(a0)
  1727. ;L( PB, ix, iy, z,
  1728.     lea    $4B00(a2),a0
  1729.     move.l    a2,a1
  1730.     add.l    #$27D94,a1
  1731.     move.l    (a1),d1
  1732.     lea    0(a0,d1.l*4),a0
  1733.     move.l    d3,(a0)
  1734. ;L( PB, ix, iy, z,
  1735.     move.w    -$16(a5),d2
  1736.     move.l    a2,a0
  1737.     add.l    #$9600,a0
  1738.     lea    (a0),a0
  1739.     move.l    a2,a1
  1740.     add.l    #$27D94,a1
  1741.     move.l    (a1),d1
  1742.     lea    0(a0,d1.l*2),a0
  1743.     move.w    d2,(a0)
  1744. ;L( PB, ix, iy, z,
  1745.     move.b    -$35(a5),d2
  1746.     move.l    a2,a0
  1747.     add.l    #$BB80,a0
  1748.     lea    (a0),a0
  1749.     move.l    a2,a1
  1750.     add.l    #$27D94,a1
  1751.     move.l    (a1),d1
  1752.     add.l    d1,a0
  1753.     move.b    d2,(a0)
  1754. ;L( PB, ix, iy, z,
  1755.     move.b    -$39(a5),d2
  1756.     move.l    a2,a0
  1757.     add.l    #$CE40,a0
  1758.     lea    (a0),a0
  1759.     move.l    a2,a1
  1760.     add.l    #$27D94,a1
  1761.     move.l    (a1),d1
  1762.     add.l    d1,a0
  1763.     move.b    d2,(a0)
  1764. ;L( PB, ix, iy, z,
  1765.     move.b    -$3D(a5),d2
  1766.     move.l    a2,a0
  1767.     add.l    #$E100,a0
  1768.     lea    (a0),a0
  1769.     move.l    a2,a1
  1770.     add.l    #$27D94,a1
  1771.     move.l    (a1),d1
  1772.     add.l    d1,a0
  1773.     move.b    d2,(a0)
  1774. ;L( PB, ix, iy, z,
  1775.     move.b    -$41(a5),d2
  1776.     move.l    a2,a0
  1777.     add.l    #$F3C0,a0
  1778.     lea    (a0),a0
  1779.     move.l    a2,a1
  1780.     add.l    #$27D94,a1
  1781.     move.l    (a1),d1
  1782.     add.l    d1,a0
  1783.     move.b    d2,(a0)
  1784. ;L( PB, ix, iy, z,
  1785.     move.l    a2,a0
  1786.     add.l    #$15180,a0
  1787.     lea    (a0),a0
  1788.     move.l    a2,a1
  1789.     add.l    #$27D94,a1
  1790.     move.l    (a1),d1
  1791.     lea    0(a0,d1.l*4),a0
  1792.     fmove.s    fp2,(a0)
  1793. ;L( PB, ix, iy, z,
  1794.     move.l    a2,a0
  1795.     add.l    #$19C80,a0
  1796.     lea    (a0),a0
  1797.     move.l    a2,a1
  1798.     add.l    #$27D94,a1
  1799.     move.l    (a1),d1
  1800.     lea    0(a0,d1.l*4),a0
  1801.     fmove.s    fp1,(a0)
  1802. ;L( PB, ix, iy, z,
  1803.     move.l    a2,a0
  1804.     add.l    #$1E780,a0
  1805.     lea    (a0),a0
  1806.     move.l    a2,a1
  1807.     add.l    #$27D94,a1
  1808.     move.l    (a1),d1
  1809.     lea    0(a0,d1.l*4),a0
  1810.     fmove.s    fp0,(a0)
  1811. ;L( PB, ix, iy, z,
  1812.     move.l    a2,a0
  1813.     add.l    #$27D94,a0
  1814.     move.l    (a0),d1
  1815.     addq.l    #1,d1
  1816.     move.l    a2,a0
  1817.     add.l    #$27D94,a0
  1818.     move.l    d1,(a0)
  1819.     addq.l    #1,d0
  1820. L330
  1821.     cmp.l    d4,d0
  1822.     ble    L329
  1823. L331
  1824.     addq.l    #1,d3
  1825. L332
  1826.     cmp.l    -$28(a5),d3
  1827.     ble    L328
  1828. L333
  1829. ;     PB_CHECK_FLUSH(ctx,PB)
  1830.     move.l    a2,a0
  1831.     add.l    #$27D94,a0
  1832.     move.l    (a0),d0
  1833.     cmp.l    #$C80,d0
  1834.     blo.b    L335
  1835. L334
  1836. ;     PB_CHECK_FLUSH(ctx,PB)
  1837.     move.l    $8(a5),-(a7)
  1838.     jsr    _gl_flush_pb
  1839.     addq.w    #4,a7
  1840. L335
  1841.     addq.l    #1,d5
  1842. L336
  1843.     cmp.l    $10(a5),d5
  1844.     bls    L315
  1845. L337
  1846.     fmovem.x (a7)+,fp2/fp3
  1847.     movem.l    (a7)+,d2-d5/a2
  1848.     unlk    a5
  1849.     rts
  1850.  
  1851.     SECTION "_antialiased_rgba_points:0",CODE
  1852.  
  1853.  
  1854. ;static void antialiased_rgba_points( GLcontext *ctx,
  1855. _antialiased_rgba_points
  1856. L380    EQU    -$E8
  1857.     link    a5,#L380
  1858.     movem.l    d2-d5/a2,-(a7)
  1859.     fmovem.x fp2/fp3/fp4/fp5,-(a7)
  1860.     move.l    $C(a5),d0
  1861. L339
  1862. ;   struct vertex_buffer *VB = ctx->VB;
  1863.     move.l    $8(a5),a0
  1864.     add.l    #$E0C0,a0
  1865.     move.l    (a0),-4(a5)
  1866. ;   struct pixel_buffer *PB = ctx->PB;
  1867.     move.l    $8(a5),a0
  1868.     add.l    #$E0C4,a0
  1869.     move.l    (a0),a2
  1870. ;   radius = CLAMP( ctx->Point.Size, MIN_POINT_SIZE, MAX_POINT_SIZ
  1871.     move.l    $8(a5),a1
  1872.     move.l    a1,a0
  1873.     add.l    #$D652,a0
  1874.     lea    (a0),a0
  1875.     fmove.s    2(a0),fp0
  1876.     fcmp.d    #$.3FF00000.00000000,fp0
  1877.     fboge.b    L341
  1878. L340
  1879.     fmove.d    #$.3FF00000.00000000,fp0
  1880.     bra.b    L345
  1881. L341
  1882.     move.l    $8(a5),a1
  1883.     move.l    a1,a0
  1884.     add.l    #$D652,a0
  1885.     lea    (a0),a0
  1886.     fmove.s    2(a0),fp0
  1887.     fcmp.d    #$.40240000.00000000,fp0
  1888.     fbole.b    L343
  1889. L342
  1890.     fmove.d    #$.40240000.00000000,fp0
  1891.     bra.b    L344
  1892. L343
  1893.     move.l    $8(a5),a1
  1894.     move.l    a1,a0
  1895.     add.l    #$D652,a0
  1896.     lea    (a0),a0
  1897.     fmove.s    2(a0),fp0
  1898. L344
  1899. L345
  1900.     fmul.d    #$.3FE00000.00000000,fp0
  1901.     fmove.s    fp0,-$10(a5)
  1902. ;   rmin = radius - 0.7071F;
  1903.     fmove.s    -$10(a5),fp1
  1904.     fsub.s    #$.3F350481,fp1
  1905. ;   rmax = radius + 0.7071F;
  1906.     fmove.s    -$10(a5),fp0
  1907.     fadd.s    #$.3F350481,fp0
  1908. ;   rmin2 = rmin*rmin;
  1909.     fmove.x    fp1,fp2
  1910.     fmul.x    fp1,fp2
  1911. ;   rmax2 = rmax*rmax;
  1912.     fmove.x    fp0,fp4
  1913.     fmul.x    fp0,fp4
  1914. ;   cscale = 256.0F / (rmax2-rmin2);
  1915.     fmove.x    fp4,fp3
  1916.     fsub.x    fp2,fp3
  1917.     fmove.s    #$.43800000,fp0
  1918.     fdiv.x    fp3,fp0
  1919.     fmove.x    fp0,fp3
  1920. ;   if (ctx->Texture.Enabled) 
  1921.     move.l    $8(a5),a1
  1922.     move.l    a1,a0
  1923.     add.l    #$D73C,a0
  1924.     lea    (a0),a0
  1925.     move.l    (a0),d1
  1926.     beq    L363
  1927. L346
  1928. ;      for (i=first;
  1929.     move.l    d0,d2
  1930.     bra    L361
  1931. L347
  1932. ;     if (VB->ClipMask[i]==0) 
  1933.     move.l    -4(a5),a1
  1934.     move.l    a1,a0
  1935.     add.l    #$CEC0,a0
  1936.     lea    (a0),a0
  1937.     add.l    d2,a0
  1938.     move.b    (a0),d0
  1939.     bne    L360
  1940. L348
  1941. ;        xmin = (GLint) (VB->Win[i][0] - radius);
  1942.     move.l    -4(a5),a1
  1943.     lea    $5E80(a1),a0
  1944.     move.l    d2,d0
  1945.     muls.l    #$C,d0
  1946.     add.l    d0,a0
  1947.     fmove.s    (a0),fp0
  1948.     fsub.s    -$10(a5),fp0
  1949.     fmove.l    fp0,d0
  1950.     move.l    d0,-$28(a5)
  1951. ;        xmax = (GLint) (VB->Win[i][0] + radius);
  1952.     move.l    -4(a5),a1
  1953.     lea    $5E80(a1),a0
  1954.     move.l    d2,d0
  1955.     muls.l    #$C,d0
  1956.     add.l    d0,a0
  1957.     fmove.s    (a0),fp0
  1958.     fadd.s    -$10(a5),fp0
  1959.     fmove.l    fp0,d0
  1960.     move.l    d0,-$30(a5)
  1961. ;        ymin = (GLint) (VB->Win[i][1] - radius);
  1962.     move.l    -4(a5),a1
  1963.     lea    $5E80(a1),a0
  1964.     move.l    d2,d0
  1965.     muls.l    #$C,d0
  1966.     add.l    d0,a0
  1967.     addq.w    #4,a0
  1968.     fmove.s    (a0),fp0
  1969.     fsub.s    -$10(a5),fp0
  1970.     fmove.l    fp0,d1
  1971. ;        ymax = (GLint) (VB->Win[i][1] + radius);
  1972.     move.l    -4(a5),a1
  1973.     lea    $5E80(a1),a0
  1974.     move.l    d2,d0
  1975.     muls.l    #$C,d0
  1976.     add.l    d0,a0
  1977.     addq.w    #4,a0
  1978.     fmove.s    (a0),fp0
  1979.     fadd.s    -$10(a5),fp0
  1980.     fmove.l    fp0,d0
  1981.     move.l    d0,-$34(a5)
  1982. ;        z = (GLint) (VB->Win[i][2] + ctx->PointZoffset);
  1983.     move.l    -4(a5),a1
  1984.     lea    $5E80(a1),a0
  1985.     move.l    d2,d0
  1986.     muls.l    #$C,d0
  1987.     add.l    d0,a0
  1988.     addq.w    #$8,a0
  1989.     fmove.s    (a0),fp0
  1990.     move.l    $8(a5),a0
  1991.     add.l    #$E0A4,a0
  1992.     fmove.s    (a0),fp1
  1993.     fadd.x    fp1,fp0
  1994.     fmove.l    fp0,d0
  1995.     move.l    d0,-$40(a5)
  1996. ;        red   = VB->Color[i][0];
  1997.     move.l    -4(a5),a1
  1998.     add.l    #$9D80,a1
  1999.     move.l    (a1),a0
  2000.     lea    0(a0,d2.l*4),a0
  2001.     move.b    (a0),d0
  2002.     and.l    #$FF,d0
  2003.     move.l    d0,-$44(a5)
  2004. ;        green = VB->Color[i][1];
  2005.     move.l    -4(a5),a1
  2006.     add.l    #$9D80,a1
  2007.     move.l    (a1),a0
  2008.     lea    0(a0,d2.l*4),a0
  2009.     addq.w    #1,a0
  2010.     move.b    (a0),d0
  2011.     and.l    #$FF,d0
  2012.     move.l    d0,-$48(a5)
  2013. ;        blue  = VB->Color[i][2];
  2014.     move.l    -4(a5),a1
  2015.     add.l    #$9D80,a1
  2016.     move.l    (a1),a0
  2017.     lea    0(a0,d2.l*4),a0
  2018.     addq.w    #2,a0
  2019.     move.b    (a0),d0
  2020.     and.l    #$FF,d0
  2021.     move.l    d0,-$4C(a5)
  2022. ;        s = VB->TexCoord[i][0] / VB->TexCoord[i][3];
  2023.     move.l    -4(a5),a1
  2024.     move.l    a1,a0
  2025.     add.l    #$AF40,a0
  2026.     lea    (a0),a0
  2027.     move.l    d2,d0
  2028.     asl.l    #4,d0
  2029.     add.l    d0,a0
  2030.     move.l    (a0),-$54(a5)
  2031.     move.l    -4(a5),a1
  2032.     move.l    a1,a0
  2033.     add.l    #$AF40,a0
  2034.     lea    (a0),a0
  2035.     move.l    d2,d0
  2036.     asl.l    #4,d0
  2037.     add.l    d0,a0
  2038.     add.w    #$C,a0
  2039.     fmove.s    (a0),fp0
  2040.     fmove.s    -$54(a5),fp1
  2041.     fdiv.x    fp0,fp1
  2042.     fmove.s    fp1,-$54(a5)
  2043. ;        t = VB->TexCoord[i][1] / VB->TexCoord[i][3];
  2044.     move.l    -4(a5),a1
  2045.     move.l    a1,a0
  2046.     add.l    #$AF40,a0
  2047.     lea    (a0),a0
  2048.     move.l    d2,d0
  2049.     asl.l    #4,d0
  2050.     add.l    d0,a0
  2051.     addq.w    #4,a0
  2052.     move.l    (a0),-$58(a5)
  2053.     move.l    -4(a5),a1
  2054.     move.l    a1,a0
  2055.     add.l    #$AF40,a0
  2056.     lea    (a0),a0
  2057.     move.l    d2,d0
  2058.     asl.l    #4,d0
  2059.     add.l    d0,a0
  2060.     add.w    #$C,a0
  2061.     fmove.s    (a0),fp0
  2062.     fmove.s    -$58(a5),fp1
  2063.     fdiv.x    fp0,fp1
  2064.     fmove.s    fp1,-$58(a5)
  2065. ;        u = VB->TexCoord[i][2] / VB->TexCoord[i][3];
  2066.     move.l    -4(a5),a1
  2067.     move.l    a1,a0
  2068.     add.l    #$AF40,a0
  2069.     lea    (a0),a0
  2070.     move.l    d2,d0
  2071.     asl.l    #4,d0
  2072.     add.l    d0,a0
  2073.     addq.w    #$8,a0
  2074.     move.l    (a0),-$5C(a5)
  2075.     move.l    -4(a5),a1
  2076.     move.l    a1,a0
  2077.     add.l    #$AF40,a0
  2078.     lea    (a0),a0
  2079.     move.l    d2,d0
  2080.     asl.l    #4,d0
  2081.     add.l    d0,a0
  2082.     add.w    #$C,a0
  2083.     fmove.s    (a0),fp0
  2084.     fmove.s    -$5C(a5),fp1
  2085.     fdiv.x    fp0,fp1
  2086.     fmove.s    fp1,-$5C(a5)
  2087. ;        for (y=ymin;
  2088.     move.l    d1,d3
  2089.     bra    L357
  2090. L349
  2091. ;           for (x=xmin;
  2092.     move.l    -$28(a5),d1
  2093.     bra    L355
  2094. L350
  2095. ;          GLfloat dx = x/*+0.5F*/ - VB->Win[i][0];
  2096.     fmove.l    d1,fp0
  2097.     move.l    -4(a5),a1
  2098.     lea    $5E80(a1),a0
  2099.     move.l    d2,d0
  2100.     muls.l    #$C,d0
  2101.     add.l    d0,a0
  2102.     fmove.s    (a0),fp1
  2103.     fsub.x    fp1,fp0
  2104. ;          GLfloat dy = y/*+0.5F*/ - VB->Win[i][1];
  2105.     fmove.l    d3,fp1
  2106.     move.l    -4(a5),a1
  2107.     lea    $5E80(a1),a0
  2108.     move.l    d2,d0
  2109.     muls.l    #$C,d0
  2110.     add.l    d0,a0
  2111.     addq.w    #4,a0
  2112.     fmove.s    (a0),fp5
  2113.     fsub.x    fp5,fp1
  2114. ;          GLfloat dist2 = dx*dx + dy*dy;
  2115.     fmove.x    fp0,fp5
  2116.     fmul.x    fp0,fp5
  2117.     fmove.x    fp5,fp0
  2118.     fmove.x    fp1,fp5
  2119.     fmul.x    fp1,fp5
  2120.     fmove.x    fp5,fp1
  2121.     fadd.x    fp1,fp0
  2122. ;          if (dist2<rmax2) 
  2123.     fcmp.x    fp4,fp0
  2124.     fboge.b    L354
  2125. L351
  2126. ;             alpha = VB->Color[i][3];
  2127.     move.l    -4(a5),a1
  2128.     add.l    #$9D80,a1
  2129.     move.l    (a1),a0
  2130.     lea    0(a0,d2.l*4),a0
  2131.     addq.w    #3,a0
  2132.     move.b    (a0),d0
  2133.     and.l    #$FF,d0
  2134. ;             if (dist2>=rmin2) 
  2135.     fcmp.x    fp2,fp0
  2136.     fbolt.b    L353
  2137. L352
  2138. ;            GLint coverage = (GLint) (256.0F-(dist2-rmin2)*cscale);
  2139.     fsub.x    fp2,fp0
  2140.     fmul.x    fp3,fp0
  2141.     fmove.s    #$.43800000,fp1
  2142.     fsub.x    fp0,fp1
  2143.     fmove.x    fp1,fp0
  2144.     fmove.l    fp0,d4
  2145. ;            alpha = (alpha * coverage) >> 8;
  2146.     muls.l    d4,d0
  2147.     moveq    #$8,d4
  2148.     asr.l    d4,d0
  2149. L353
  2150. ;PIXEL( PB, x,y,z,
  2151.     move.l    a2,a0
  2152.     add.l    #$27D94,a0
  2153.     move.l    (a0),d4
  2154.     lea    0(a2,d4.l*4),a0
  2155.     move.l    d1,(a0)
  2156. ;PIXEL( PB, x,y,z,
  2157.     lea    $4B00(a2),a0
  2158.     move.l    a2,a1
  2159.     add.l    #$27D94,a1
  2160.     move.l    (a1),d4
  2161.     lea    0(a0,d4.l*4),a0
  2162.     move.l    d3,(a0)
  2163. ;PIXEL( PB, x,y,z,
  2164.     move.w    -$3E(a5),d5
  2165.     move.l    a2,a0
  2166.     add.l    #$9600,a0
  2167.     lea    (a0),a0
  2168.     move.l    a2,a1
  2169.     add.l    #$27D94,a1
  2170.     move.l    (a1),d4
  2171.     lea    0(a0,d4.l*2),a0
  2172.     move.w    d5,(a0)
  2173. ;PIXEL( PB, x,y,z,
  2174.     move.b    -$41(a5),d5
  2175.     move.l    a2,a0
  2176.     add.l    #$BB80,a0
  2177.     lea    (a0),a0
  2178.     move.l    a2,a1
  2179.     add.l    #$27D94,a1
  2180.     move.l    (a1),d4
  2181.     add.l    d4,a0
  2182.     move.b    d5,(a0)
  2183. ;PIXEL( PB, x,y,z,
  2184.     move.b    -$45(a5),d5
  2185.     move.l    a2,a0
  2186.     add.l    #$CE40,a0
  2187.     lea    (a0),a0
  2188.     move.l    a2,a1
  2189.     add.l    #$27D94,a1
  2190.     move.l    (a1),d4
  2191.     add.l    d4,a0
  2192.     move.b    d5,(a0)
  2193. ;PIXEL( PB, x,y,z,
  2194.     move.b    -$49(a5),d5
  2195.     move.l    a2,a0
  2196.     add.l    #$E100,a0
  2197.     lea    (a0),a0
  2198.     move.l    a2,a1
  2199.     add.l    #$27D94,a1
  2200.     move.l    (a1),d4
  2201.     add.l    d4,a0
  2202.     move.b    d5,(a0)
  2203. ;PIXEL( PB, x,y,z,
  2204.     move.b    d0,d4
  2205.     move.l    a2,a0
  2206.     add.l    #$F3C0,a0
  2207.     lea    (a0),a0
  2208.     move.l    a2,a1
  2209.     add.l    #$27D94,a1
  2210.     move.l    (a1),d0
  2211.     add.l    d0,a0
  2212.     move.b    d4,(a0)
  2213. ;PIXEL( PB, x,y,z,
  2214.     move.l    a2,a0
  2215.     add.l    #$15180,a0
  2216.     lea    (a0),a0
  2217.     move.l    a2,a1
  2218.     add.l    #$27D94,a1
  2219.     move.l    (a1),d0
  2220.     lea    0(a0,d0.l*4),a0
  2221.     move.l    -$54(a5),(a0)
  2222. ;PIXEL( PB, x,y,z,
  2223.     move.l    a2,a0
  2224.     add.l    #$19C80,a0
  2225.     lea    (a0),a0
  2226.     move.l    a2,a1
  2227.     add.l    #$27D94,a1
  2228.     move.l    (a1),d0
  2229.     lea    0(a0,d0.l*4),a0
  2230.     move.l    -$58(a5),(a0)
  2231. ;PIXEL( PB, x,y,z,
  2232.     move.l    a2,a0
  2233.     add.l    #$1E780,a0
  2234.     lea    (a0),a0
  2235.     move.l    a2,a1
  2236.     add.l    #$27D94,a1
  2237.     move.l    (a1),d0
  2238.     lea    0(a0,d0.l*4),a0
  2239.     move.l    -$5C(a5),(a0)
  2240. ;PIXEL( PB, x,y,z,
  2241.     move.l    a2,a0
  2242.     add.l    #$27D94,a0
  2243.     move.l    (a0),d0
  2244.     addq.l    #1,d0
  2245.     move.l    a2,a0
  2246.     add.l    #$27D94,a0
  2247.     move.l    d0,(a0)
  2248. L354
  2249.     addq.l    #1,d1
  2250. L355
  2251.     cmp.l    -$30(a5),d1
  2252.     ble    L350
  2253. L356
  2254.     addq.l    #1,d3
  2255. L357
  2256.     cmp.l    -$34(a5),d3
  2257.     ble    L349
  2258. L358
  2259. ;        PB_CHECK_FLUSH(ctx,PB)
  2260.     move.l    a2,a0
  2261.     add.l    #$27D94,a0
  2262.     move.l    (a0),d0
  2263.     cmp.l    #$C80,d0
  2264.     blo.b    L360
  2265. L359
  2266. ;        PB_CHECK_FLUSH(ctx,PB)
  2267.     move.l    $8(a5),-(a7)
  2268.     jsr    _gl_flush_pb
  2269.     addq.w    #4,a7
  2270. L360
  2271.     addq.l    #1,d2
  2272. L361
  2273.     cmp.l    $10(a5),d2
  2274.     bls    L347
  2275. L362
  2276.     bra    L379
  2277. L363
  2278. ;      for (i=first;
  2279.     move.l    d0,d2
  2280.     bra    L378
  2281. L364
  2282. ;     if (VB->ClipMask[i]==0) 
  2283.     move.l    -4(a5),a1
  2284.     move.l    a1,a0
  2285.     add.l    #$CEC0,a0
  2286.     lea    (a0),a0
  2287.     add.l    d2,a0
  2288.     move.b    (a0),d0
  2289.     bne    L377
  2290. L365
  2291. ;        xmin = (GLint) (VB->Win[i][0] - radius);
  2292.     move.l    -4(a5),a1
  2293.     lea    $5E80(a1),a0
  2294.     move.l    d2,d0
  2295.     muls.l    #$C,d0
  2296.     add.l    d0,a0
  2297.     fmove.s    (a0),fp0
  2298.     fsub.s    -$10(a5),fp0
  2299.     fmove.l    fp0,d0
  2300.     move.l    d0,-$28(a5)
  2301. ;        xmax = (GLint) (VB->Win[i][0] + radius);
  2302.     move.l    -4(a5),a1
  2303.     lea    $5E80(a1),a0
  2304.     move.l    d2,d0
  2305.     muls.l    #$C,d0
  2306.     add.l    d0,a0
  2307.     fmove.s    (a0),fp0
  2308.     fadd.s    -$10(a5),fp0
  2309.     fmove.l    fp0,d0
  2310.     move.l    d0,-$30(a5)
  2311. ;        ymin = (GLint) (VB->Win[i][1] - radius);
  2312.     move.l    -4(a5),a1
  2313.     lea    $5E80(a1),a0
  2314.     move.l    d2,d0
  2315.     muls.l    #$C,d0
  2316.     add.l    d0,a0
  2317.     addq.w    #4,a0
  2318.     fmove.s    (a0),fp0
  2319.     fsub.s    -$10(a5),fp0
  2320.     fmove.l    fp0,d1
  2321. ;        ymax = (GLint) (VB->Win[i][1] + radius);
  2322.     move.l    -4(a5),a1
  2323.     lea    $5E80(a1),a0
  2324.     move.l    d2,d0
  2325.     muls.l    #$C,d0
  2326.     add.l    d0,a0
  2327.     addq.w    #4,a0
  2328.     fmove.s    (a0),fp0
  2329.     fadd.s    -$10(a5),fp0
  2330.     fmove.l    fp0,d0
  2331.     move.l    d0,-$34(a5)
  2332. ;        z = (GLint) (VB->Win[i][2] + ctx->PointZoffset);
  2333.     move.l    -4(a5),a1
  2334.     lea    $5E80(a1),a0
  2335.     move.l    d2,d0
  2336.     muls.l    #$C,d0
  2337.     add.l    d0,a0
  2338.     addq.w    #$8,a0
  2339.     fmove.s    (a0),fp0
  2340.     move.l    $8(a5),a0
  2341.     add.l    #$E0A4,a0
  2342.     fmove.s    (a0),fp1
  2343.     fadd.x    fp1,fp0
  2344.     fmove.l    fp0,d0
  2345.     move.l    d0,-$40(a5)
  2346. ;        red   = VB->Color[i][0];
  2347.     move.l    -4(a5),a1
  2348.     add.l    #$9D80,a1
  2349.     move.l    (a1),a0
  2350.     lea    0(a0,d2.l*4),a0
  2351.     move.b    (a0),d0
  2352.     and.l    #$FF,d0
  2353.     move.l    d0,-$44(a5)
  2354. ;        green = VB->Color[i][1];
  2355.     move.l    -4(a5),a1
  2356.     add.l    #$9D80,a1
  2357.     move.l    (a1),a0
  2358.     lea    0(a0,d2.l*4),a0
  2359.     addq.w    #1,a0
  2360.     move.b    (a0),d0
  2361.     and.l    #$FF,d0
  2362.     move.l    d0,-$48(a5)
  2363. ;        blue  = VB->Color[i][2];
  2364.     move.l    -4(a5),a1
  2365.     add.l    #$9D80,a1
  2366.     move.l    (a1),a0
  2367.     lea    0(a0,d2.l*4),a0
  2368.     addq.w    #2,a0
  2369.     move.b    (a0),d0
  2370.     and.l    #$FF,d0
  2371.     move.l    d0,-$4C(a5)
  2372. ;        for (y=ymin;
  2373.     move.l    d1,d3
  2374.     bra    L374
  2375. L366
  2376. ;           for (x=xmin;
  2377.     move.l    -$28(a5),d1
  2378.     bra    L372
  2379. L367
  2380. ;          GLfloat dx = x/*+0.5F*/ - VB->Win[i][0];
  2381.     fmove.l    d1,fp0
  2382.     move.l    -4(a5),a1
  2383.     lea    $5E80(a1),a0
  2384.     move.l    d2,d0
  2385.     muls.l    #$C,d0
  2386.     add.l    d0,a0
  2387.     fmove.s    (a0),fp1
  2388.     fsub.x    fp1,fp0
  2389. ;          GLfloat dy = y/*+0.5F*/ - VB->Win[i][1];
  2390.     fmove.l    d3,fp1
  2391.     move.l    -4(a5),a1
  2392.     lea    $5E80(a1),a0
  2393.     move.l    d2,d0
  2394.     muls.l    #$C,d0
  2395.     add.l    d0,a0
  2396.     addq.w    #4,a0
  2397.     fmove.s    (a0),fp5
  2398.     fsub.x    fp5,fp1
  2399. ;          GLfloat dist2 = dx*dx + dy*dy;
  2400.     fmove.x    fp0,fp5
  2401.     fmul.x    fp0,fp5
  2402.     fmove.x    fp5,fp0
  2403.     fmove.x    fp1,fp5
  2404.     fmul.x    fp1,fp5
  2405.     fmove.x    fp5,fp1
  2406.     fadd.x    fp1,fp0
  2407. ;          if (dist2<rmax2) 
  2408.     fcmp.x    fp4,fp0
  2409.     fboge.b    L371
  2410. L368
  2411. ;             alpha = VB->Color[i][3];
  2412.     move.l    -4(a5),a1
  2413.     add.l    #$9D80,a1
  2414.     move.l    (a1),a0
  2415.     lea    0(a0,d2.l*4),a0
  2416.     addq.w    #3,a0
  2417.     move.b    (a0),d0
  2418.     and.l    #$FF,d0
  2419. ;             if (dist2>=rmin2) 
  2420.     fcmp.x    fp2,fp0
  2421.     fbolt.b    L370
  2422. L369
  2423. ;            GLint coverage = (GLint) (256.0F-(dist2-rmin2)*cscale);
  2424.     fsub.x    fp2,fp0
  2425.     fmul.x    fp3,fp0
  2426.     fmove.s    #$.43800000,fp1
  2427.     fsub.x    fp0,fp1
  2428.     fmove.x    fp1,fp0
  2429.     fmove.l    fp0,d4
  2430. ;            alpha = (alpha * coverage) >> 8;
  2431.     muls.l    d4,d0
  2432.     moveq    #$8,d4
  2433.     asr.l    d4,d0
  2434. L370
  2435. ;E_RGBA_PIXEL( PB,
  2436.     move.l    a2,a0
  2437.     add.l    #$27D94,a0
  2438.     move.l    (a0),d4
  2439.     lea    0(a2,d4.l*4),a0
  2440.     move.l    d1,(a0)
  2441. ;E_RGBA_PIXEL( PB,
  2442.     lea    $4B00(a2),a0
  2443.     move.l    a2,a1
  2444.     add.l    #$27D94,a1
  2445.     move.l    (a1),d4
  2446.     lea    0(a0,d4.l*4),a0
  2447.     move.l    d3,(a0)
  2448. ;E_RGBA_PIXEL( PB,
  2449.     move.w    -$3E(a5),d5
  2450.     move.l    a2,a0
  2451.     add.l    #$9600,a0
  2452.     lea    (a0),a0
  2453.     move.l    a2,a1
  2454.     add.l    #$27D94,a1
  2455.     move.l    (a1),d4
  2456.     lea    0(a0,d4.l*2),a0
  2457.     move.w    d5,(a0)
  2458. ;E_RGBA_PIXEL( PB,
  2459.     move.b    -$41(a5),d5
  2460.     move.l    a2,a0
  2461.     add.l    #$BB80,a0
  2462.     lea    (a0),a0
  2463.     move.l    a2,a1
  2464.     add.l    #$27D94,a1
  2465.     move.l    (a1),d4
  2466.     add.l    d4,a0
  2467.     move.b    d5,(a0)
  2468. ;E_RGBA_PIXEL( PB,
  2469.     move.b    -$45(a5),d5
  2470.     move.l    a2,a0
  2471.     add.l    #$CE40,a0
  2472.     lea    (a0),a0
  2473.     move.l    a2,a1
  2474.     add.l    #$27D94,a1
  2475.     move.l    (a1),d4
  2476.     add.l    d4,a0
  2477.     move.b    d5,(a0)
  2478. ;E_RGBA_PIXEL( PB,
  2479.     move.b    -$49(a5),d5
  2480.     move.l    a2,a0
  2481.     add.l    #$E100,a0
  2482.     lea    (a0),a0
  2483.     move.l    a2,a1
  2484.     add.l    #$27D94,a1
  2485.     move.l    (a1),d4
  2486.     add.l    d4,a0
  2487.     move.b    d5,(a0)
  2488. ;E_RGBA_PIXEL( PB,
  2489.     move.b    d0,d4
  2490.     move.l    a2,a0
  2491.     add.l    #$F3C0,a0
  2492.     lea    (a0),a0
  2493.     move.l    a2,a1
  2494.     add.l    #$27D94,a1
  2495.     move.l    (a1),d0
  2496.     add.l    d0,a0
  2497.     move.b    d4,(a0)
  2498. ;E_RGBA_PIXEL( PB,
  2499.     move.l    a2,a0
  2500.     add.l    #$27D94,a0
  2501.     move.l    (a0),d0
  2502.     addq.l    #1,d0
  2503.     move.l    a2,a0
  2504.     add.l    #$27D94,a0
  2505.     move.l    d0,(a0)
  2506. L371
  2507.     addq.l    #1,d1
  2508. L372
  2509.     cmp.l    -$30(a5),d1
  2510.     ble    L367
  2511. L373
  2512.     addq.l    #1,d3
  2513. L374
  2514.     cmp.l    -$34(a5),d3
  2515.     ble    L366
  2516. L375
  2517. ;        PB_CHECK_FLUSH(ctx,PB)
  2518.     move.l    a2,a0
  2519.     add.l    #$27D94,a0
  2520.     move.l    (a0),d0
  2521.     cmp.l    #$C80,d0
  2522.     blo.b    L377
  2523. L376
  2524. ;        PB_CHECK_FLUSH(ctx,PB)
  2525.     move.l    $8(a5),-(a7)
  2526.     jsr    _gl_flush_pb
  2527.     addq.w    #4,a7
  2528. L377
  2529.     addq.l    #1,d2
  2530. L378
  2531.     cmp.l    $10(a5),d2
  2532.     bls    L364
  2533. L379
  2534.     fmovem.x (a7)+,fp2/fp3/fp4/fp5
  2535.     movem.l    (a7)+,d2-d5/a2
  2536.     unlk    a5
  2537.     rts
  2538.  
  2539.     SECTION "_null_points:0",CODE
  2540.  
  2541.  
  2542. ;static void null_points( GLcontext *ctx, GLuint first, GLuint last )
  2543. _null_points
  2544. L381
  2545. ;static void null_points( GLcontext *ctx, GLuint first, GLuint last )
  2546.     rts
  2547.  
  2548.     SECTION "_dist_attenuation__r:0",CODE
  2549.  
  2550.  
  2551. ;static GLfloat dist_attenuation(GLcontext *ctx, const GLfloat p[3])
  2552. _dist_attenuation__r
  2553.     move.l    a2,-(a7)
  2554.     fmovem.x fp2/fp3,-(a7)
  2555.     move.l    $24(a7),a0
  2556.     move.l    $20(a7),a2
  2557. L382
  2558. ; dist=GL_SQRT(p[0]*p[0]+p[1]*p[1]+p[2]*p[2]);
  2559.     fmove.s    (a0),fp0
  2560.     fmove.s    (a0),fp1
  2561.     fmul.x    fp1,fp0
  2562.     lea    4(a0),a1
  2563.     fmove.s    (a1),fp1
  2564.     lea    4(a0),a1
  2565.     fmove.s    (a1),fp2
  2566.     fmul.x    fp2,fp1
  2567.     fadd.x    fp1,fp0
  2568.     lea    $8(a0),a1
  2569.     fmove.s    (a1),fp1
  2570.     addq.w    #$8,a0
  2571.     fmove.s    (a0),fp2
  2572.     fmul.x    fp2,fp1
  2573.     fadd.x    fp1,fp0
  2574.     fmove.d    fp0,-(a7)
  2575.     jsr    _sqrt__r
  2576.     addq.w    #$8,a7
  2577.     fmove.x    fp0,fp1
  2578.     move.l    a2,a0
  2579.     add.l    #$D658,a0
  2580.     lea    (a0),a0
  2581.     fmove.s    (a0),fp0
  2582.     move.l    a2,a0
  2583.     add.l    #$D658,a0
  2584.     lea    (a0),a0
  2585.     addq.w    #4,a0
  2586.     fmove.s    (a0),fp2
  2587.     fmul.x    fp1,fp2
  2588.     fadd.x    fp2,fp0
  2589.     move.l    a2,a0
  2590.     add.l    #$D658,a0
  2591.     lea    (a0),a0
  2592.     addq.w    #$8,a0
  2593.     fmove.s    (a0),fp2
  2594.     fmul.x    fp1,fp2
  2595.     fmul.x    fp1,fp2
  2596.     fadd.x    fp2,fp0
  2597.     fmove.s    #$.3F800000,fp1
  2598.     fdiv.x    fp0,fp1
  2599.     fmove.x    fp1,fp0
  2600.     fmovem.x (a7)+,fp2/fp3
  2601.     move.l    (a7)+,a2
  2602.     rts
  2603.  
  2604.     SECTION "_dist_atten_general_ci_points:0",CODE
  2605.  
  2606.  
  2607. ;static void dist_atten_general_ci_points( GLcontext *ctx, GLuint fir
  2608. _dist_atten_general_ci_points
  2609. L417    EQU    -$68
  2610.     link    a5,#L417
  2611.     movem.l    d2-d5/a2,-(a7)
  2612.     fmovem.x fp2,-(a7)
  2613.     move.l    $C(a5),d0
  2614. L383
  2615. ;   struct vertex_buffer *VB = ctx->VB;
  2616.     move.l    $8(a5),a0
  2617.     add.l    #$E0C0,a0
  2618.     move.l    (a0),-4(a5)
  2619. ;   struct pixel_buffer *PB = ctx->PB;
  2620.     move.l    $8(a5),a0
  2621.     add.l    #$E0C4,a0
  2622.     move.l    (a0),a2
  2623. ;   psize=CLAMP(ctx->Point.Size,MIN_POINT_SIZE,MAX_POINT_SIZE);
  2624.     move.l    $8(a5),a1
  2625.     move.l    a1,a0
  2626.     add.l    #$D652,a0
  2627.     lea    (a0),a0
  2628.     fmove.s    2(a0),fp0
  2629.     fcmp.d    #$.3FF00000.00000000,fp0
  2630.     fboge.b    L385
  2631. L384
  2632.     fmove.d    #$.3FF00000.00000000,fp0
  2633.     bra.b    L389
  2634. L385
  2635.     move.l    $8(a5),a1
  2636.     move.l    a1,a0
  2637.     add.l    #$D652,a0
  2638.     lea    (a0),a0
  2639.     fmove.s    2(a0),fp0
  2640.     fcmp.d    #$.40240000.00000000,fp0
  2641.     fbole.b    L387
  2642. L386
  2643.     fmove.d    #$.40240000.00000000,fp0
  2644.     bra.b    L388
  2645. L387
  2646.     move.l    $8(a5),a1
  2647.     move.l    a1,a0
  2648.     add.l    #$D652,a0
  2649.     lea    (a0),a0
  2650.     fmove.s    2(a0),fp0
  2651. L388
  2652. L389
  2653.     fmove.x    fp0,fp2
  2654. ;   for (i=first;
  2655.     move.l    d0,-$C(a5)
  2656.     bra    L415
  2657. L390
  2658. ;      if (VB->ClipMask[i]==0) 
  2659.     move.l    -4(a5),a1
  2660.     move.l    a1,a0
  2661.     add.l    #$CEC0,a0
  2662.     lea    (a0),a0
  2663.     move.l    -$C(a5),d0
  2664.     add.l    d0,a0
  2665.     move.b    (a0),d0
  2666.     bne    L414
  2667. L391
  2668. ;     x = (GLint)  VB->Win[i][0];
  2669.     move.l    -4(a5),a1
  2670.     lea    $5E80(a1),a0
  2671.     move.l    -$C(a5),d0
  2672.     muls.l    #$C,d0
  2673.     add.l    d0,a0
  2674.     fmove.s    (a0),fp0
  2675.     fmove.l    fp0,d2
  2676. ;     y = (GLint)  VB->Win[i][1];
  2677.     move.l    -4(a5),a1
  2678.     lea    $5E80(a1),a0
  2679.     move.l    -$C(a5),d0
  2680.     muls.l    #$C,d0
  2681.     add.l    d0,a0
  2682.     addq.w    #4,a0
  2683.     fmove.s    (a0),fp0
  2684.     fmove.l    fp0,d3
  2685. ;     z = (GLint) (VB->Win[i][2] + ctx->PointZoffset);
  2686.     move.l    -4(a5),a1
  2687.     lea    $5E80(a1),a0
  2688.     move.l    -$C(a5),d0
  2689.     muls.l    #$C,d0
  2690.     add.l    d0,a0
  2691.     addq.w    #$8,a0
  2692.     fmove.s    (a0),fp0
  2693.     move.l    $8(a5),a0
  2694.     add.l    #$E0A4,a0
  2695.     fmove.s    (a0),fp1
  2696.     fadd.x    fp1,fp0
  2697.     fmove.l    fp0,d5
  2698. ;     dsize=psize*dist_attenuation(ctx,VB->Eye[i]);
  2699.     move.l    -4(a5),a1
  2700.     lea    $1F80(a1),a0
  2701.     move.l    -$C(a5),d0
  2702.     asl.l    #4,d0
  2703.     add.l    d0,a0
  2704.     move.l    a0,-(a7)
  2705.     move.l    $8(a5),-(a7)
  2706.     jsr    _dist_attenuation__r
  2707.     addq.w    #$8,a7
  2708.     fmul.x    fp2,fp0
  2709. ;     if(dsize>=ctx->Point.Threshold) 
  2710.     move.l    $8(a5),a1
  2711.     move.l    a1,a0
  2712.     add.l    #$D652,a0
  2713.     lea    (a0),a0
  2714.     fmove.s    $1A(a0),fp1
  2715.     fcmp.x    fp1,fp0
  2716.     fbolt.b    L396
  2717. L392
  2718. ;        isize=(GLint) (MIN2(dsize,ctx->Point.MaxSize)+0.5F);
  2719.     move.l    $8(a5),a1
  2720.     move.l    a1,a0
  2721.     add.l    #$D652,a0
  2722.     lea    (a0),a0
  2723.     fmove.s    $16(a0),fp1
  2724.     fcmp.x    fp1,fp0
  2725.     fboge.b    L394
  2726. L393
  2727.     bra.b    L395
  2728. L394
  2729.     move.l    $8(a5),a1
  2730.     move.l    a1,a0
  2731.     add.l    #$D652,a0
  2732.     lea    (a0),a0
  2733.     fmove.s    $16(a0),fp0
  2734. L395
  2735.     fadd.s    #$.3F000000,fp0
  2736.     fmove.l    fp0,d0
  2737.     bra.b    L400
  2738. L396
  2739. ;        isize=(GLint) (MAX2(ctx->Point.Threshold,ctx->Point.MinSiz
  2740.     move.l    $8(a5),a1
  2741.     move.l    a1,a0
  2742.     add.l    #$D652,a0
  2743.     lea    (a0),a0
  2744.     fmove.s    $1A(a0),fp1
  2745.     move.l    $8(a5),a1
  2746.     move.l    a1,a0
  2747.     add.l    #$D652,a0
  2748.     lea    (a0),a0
  2749.     fmove.s    $12(a0),fp0
  2750.     fcmp.x    fp0,fp1
  2751.     fbole.b    L398
  2752. L397
  2753.     move.l    $8(a5),a1
  2754.     move.l    a1,a0
  2755.     add.l    #$D652,a0
  2756.     lea    (a0),a0
  2757.     fmove.s    $1A(a0),fp0
  2758.     bra.b    L399
  2759. L398
  2760.     move.l    $8(a5),a1
  2761.     move.l    a1,a0
  2762.     add.l    #$D652,a0
  2763.     lea    (a0),a0
  2764.     fmove.s    $12(a0),fp0
  2765. L399
  2766.     fadd.s    #$.3F000000,fp0
  2767.     fmove.l    fp0,d0
  2768. L400
  2769. ;     if (isize&1) 
  2770.     move.l    d0,d1
  2771.     and.l    #1,d1
  2772.     beq.b    L402
  2773. L401
  2774. ;        x0 = x - isize/2;
  2775.     move.l    d0,d1
  2776.     divsl.l    #2,d1
  2777.     move.l    d1,-$28(a5)
  2778.     move.l    d2,d1
  2779.     sub.l    -$28(a5),d1
  2780.     move.l    d1,-$28(a5)
  2781. ;        x1 = x + isize/2;
  2782.     move.l    d0,d4
  2783.     divsl.l    #2,d4
  2784.     add.l    d2,d4
  2785. ;        y0 = y - isize/2;
  2786.     move.l    d0,d2
  2787.     divsl.l    #2,d2
  2788.     move.l    d3,d1
  2789.     sub.l    d2,d1
  2790.     move.l    d1,d2
  2791. ;        y1 = y + isize/2;
  2792.     divsl.l    #2,d0
  2793.     move.l    d0,-$34(a5)
  2794.     add.l    d3,-$34(a5)
  2795.     bra.b    L403
  2796. L402
  2797. ;        x0 = (GLint) (x + 0.5F) - isize/2;
  2798.     fmove.l    d2,fp0
  2799.     fadd.s    #$.3F000000,fp0
  2800.     fmove.l    fp0,d1
  2801.     move.l    d1,-$28(a5)
  2802.     move.l    d0,d1
  2803.     divsl.l    #2,d1
  2804.     sub.l    d1,-$28(a5)
  2805. ;        x1 = x0 + isize-1;
  2806.     move.l    -$28(a5),d4
  2807.     add.l    d0,d4
  2808.     subq.l    #1,d4
  2809. ;        y0 = (GLint) (y + 0.5F) - isize/2;
  2810.     fmove.l    d3,fp0
  2811.     fadd.s    #$.3F000000,fp0
  2812.     fmove.l    fp0,d2
  2813.     move.l    d0,d1
  2814.     divsl.l    #2,d1
  2815.     sub.l    d1,d2
  2816. ;        y1 = y0 + isize-1;
  2817.     move.l    d2,d1
  2818.     add.l    d0,d1
  2819.     move.l    d1,-$34(a5)
  2820.     subq.l    #1,-$34(a5)
  2821. L403
  2822. ;     PB_SET_INDEX( ctx, PB, VB->I
  2823.     move.l    a2,a0
  2824.     add.l    #$27D90,a0
  2825.     move.l    (a0),d1
  2826.     move.l    -4(a5),a1
  2827.     add.l    #$AD44,a1
  2828.     move.l    (a1),a0
  2829.     move.l    -$C(a5),d0
  2830.     lea    0(a0,d0.l*4),a0
  2831.     move.l    (a0),d0
  2832.     cmp.l    d0,d1
  2833.     bne.b    L405
  2834. L404
  2835.     move.l    a2,a0
  2836.     add.l    #$27D98,a0
  2837.     move.b    (a0),d0
  2838.     bne.b    L406
  2839. L405
  2840. ;     PB_SET_INDEX( ctx, PB, VB->I
  2841.     move.l    $8(a5),-(a7)
  2842.     jsr    _gl_flush_pb
  2843.     addq.w    #4,a7
  2844. L406
  2845. ;     PB_SET_INDEX( ctx, PB, VB->I
  2846.     move.l    -4(a5),a1
  2847.     add.l    #$AD44,a1
  2848.     move.l    (a1),a0
  2849.     move.l    -$C(a5),d0
  2850.     lea    0(a0,d0.l*4),a0
  2851.     move.l    (a0),d0
  2852.     move.l    a2,a0
  2853.     add.l    #$27D90,a0
  2854.     move.l    d0,(a0)
  2855. ;     PB_SET_INDEX( ctx, PB, VB->I
  2856.     move.l    a2,a0
  2857.     add.l    #$27D98,a0
  2858.     move.b    #1,(a0)
  2859. ;     for (iy=y0;
  2860.     move.l    d2,d3
  2861.     bra.b    L411
  2862. L407
  2863. ;        for (ix=x0;
  2864.     move.l    -$28(a5),d0
  2865.     bra.b    L409
  2866. L408
  2867. ;           PB_WRITE_PIXEL( PB, ix
  2868.     move.l    a2,a0
  2869.     add.l    #$27D94,a0
  2870.     move.l    (a0),d1
  2871.     lea    0(a2,d1.l*4),a0
  2872.     move.l    d0,(a0)
  2873. ;           PB_WRITE_PIXEL( PB, ix
  2874.     lea    $4B00(a2),a0
  2875.     move.l    a2,a1
  2876.     add.l    #$27D94,a1
  2877.     move.l    (a1),d1
  2878.     lea    0(a0,d1.l*4),a0
  2879.     move.l    d3,(a0)
  2880. ;           PB_WRITE_PIXEL( PB, ix
  2881.     move.w    d5,d2
  2882.     move.l    a2,a0
  2883.     add.l    #$9600,a0
  2884.     lea    (a0),a0
  2885.     move.l    a2,a1
  2886.     add.l    #$27D94,a1
  2887.     move.l    (a1),d1
  2888.     lea    0(a0,d1.l*2),a0
  2889.     move.w    d2,(a0)
  2890. ;           PB_WRITE_PIXEL( PB, ix
  2891.     move.l    a2,a0
  2892.     add.l    #$27D94,a0
  2893.     move.l    (a0),d1
  2894.     addq.l    #1,d1
  2895.     move.l    a2,a0
  2896.     add.l    #$27D94,a0
  2897.     move.l    d1,(a0)
  2898.     addq.l    #1,d0
  2899. L409
  2900.     cmp.l    d4,d0
  2901.     ble.b    L408
  2902. L410
  2903.     addq.l    #1,d3
  2904. L411
  2905.     cmp.l    -$34(a5),d3
  2906.     ble.b    L407
  2907. L412
  2908. ;     PB_CHECK_FLUSH(ctx,PB)
  2909.     move.l    a2,a0
  2910.     add.l    #$27D94,a0
  2911.     move.l    (a0),d0
  2912.     cmp.l    #$C80,d0
  2913.     blo.b    L414
  2914. L413
  2915. ;     PB_CHECK_FLUSH(ctx,PB)
  2916.     move.l    $8(a5),-(a7)
  2917.     jsr    _gl_flush_pb
  2918.     addq.w    #4,a7
  2919. L414
  2920.     addq.l    #1,-$C(a5)
  2921. L415
  2922.     move.l    -$C(a5),d0
  2923.     cmp.l    $10(a5),d0
  2924.     bls    L390
  2925. L416
  2926.     fmovem.x (a7)+,fp2
  2927.     movem.l    (a7)+,d2-d5/a2
  2928.     unlk    a5
  2929.     rts
  2930.  
  2931.     SECTION "_dist_atten_general_rgba_points:0",CODE
  2932.  
  2933.  
  2934. ;static void dist_atten_general_rgba_points( GLcontext *ctx, GLuint f
  2935. _dist_atten_general_rgba_points
  2936. L455    EQU    -$88
  2937.     link    a5,#L455
  2938.     movem.l    d2-d6/a2,-(a7)
  2939.     fmovem.x fp2/fp3,-(a7)
  2940.     move.l    $C(a5),d0
  2941. L418
  2942. ;   struct vertex_buffer *VB = ctx->VB;
  2943.     move.l    $8(a5),a0
  2944.     add.l    #$E0C0,a0
  2945.     move.l    (a0),-4(a5)
  2946. ;   struct pixel_buffer *PB = ctx->PB;
  2947.     move.l    $8(a5),a0
  2948.     add.l    #$E0C4,a0
  2949.     move.l    (a0),a2
  2950. ;   psize=CLAMP(ctx->Point.Size,MIN_POINT_SIZE,MAX_POINT_SIZE);
  2951.     move.l    $8(a5),a1
  2952.     move.l    a1,a0
  2953.     add.l    #$D652,a0
  2954.     lea    (a0),a0
  2955.     fmove.s    2(a0),fp0
  2956.     fcmp.d    #$.3FF00000.00000000,fp0
  2957.     fboge.b    L420
  2958. L419
  2959.     fmove.d    #$.3FF00000.00000000,fp0
  2960.     bra.b    L424
  2961. L420
  2962.     move.l    $8(a5),a1
  2963.     move.l    a1,a0
  2964.     add.l    #$D652,a0
  2965.     lea    (a0),a0
  2966.     fmove.s    2(a0),fp0
  2967.     fcmp.d    #$.40240000.00000000,fp0
  2968.     fbole.b    L422
  2969. L421
  2970.     fmove.d    #$.40240000.00000000,fp0
  2971.     bra.b    L423
  2972. L422
  2973.     move.l    $8(a5),a1
  2974.     move.l    a1,a0
  2975.     add.l    #$D652,a0
  2976.     lea    (a0),a0
  2977.     fmove.s    2(a0),fp0
  2978. L423
  2979. L424
  2980.     fmove.x    fp0,fp3
  2981. ;   for (i=first;
  2982.     move.l    d0,-$C(a5)
  2983.     bra    L453
  2984. L425
  2985. ;      if (VB->ClipMask[i]==0) 
  2986.     move.l    -4(a5),a1
  2987.     move.l    a1,a0
  2988.     add.l    #$CEC0,a0
  2989.     lea    (a0),a0
  2990.     move.l    -$C(a5),d0
  2991.     add.l    d0,a0
  2992.     move.b    (a0),d0
  2993.     bne    L452
  2994. L426
  2995. ;     x = (GLint)  VB->Win[i][0];
  2996.     move.l    -4(a5),a1
  2997.     lea    $5E80(a1),a0
  2998.     move.l    -$C(a5),d0
  2999.     muls.l    #$C,d0
  3000.     add.l    d0,a0
  3001.     fmove.s    (a0),fp0
  3002.     fmove.l    fp0,d2
  3003. ;     y = (GLint)  VB->Win[i][1];
  3004.     move.l    -4(a5),a1
  3005.     lea    $5E80(a1),a0
  3006.     move.l    -$C(a5),d0
  3007.     muls.l    #$C,d0
  3008.     add.l    d0,a0
  3009.     addq.w    #4,a0
  3010.     fmove.s    (a0),fp0
  3011.     fmove.l    fp0,d0
  3012.     move.l    d0,-$22(a5)
  3013. ;     z = (GLint) (VB->Win[i][2] + ctx->PointZoffset);
  3014.     move.l    -4(a5),a1
  3015.     lea    $5E80(a1),a0
  3016.     move.l    -$C(a5),d0
  3017.     muls.l    #$C,d0
  3018.     add.l    d0,a0
  3019.     addq.w    #$8,a0
  3020.     fmove.s    (a0),fp0
  3021.     move.l    $8(a5),a0
  3022.     add.l    #$E0A4,a0
  3023.     fmove.s    (a0),fp1
  3024.     fadd.x    fp1,fp0
  3025.     fmove.l    fp0,d5
  3026. ;     dsize=psize*dist_attenuation(ctx,VB->Eye[i]);
  3027.     move.l    -4(a5),a1
  3028.     lea    $1F80(a1),a0
  3029.     move.l    -$C(a5),d0
  3030.     asl.l    #4,d0
  3031.     add.l    d0,a0
  3032.     move.l    a0,-(a7)
  3033.     move.l    $8(a5),-(a7)
  3034.     jsr    _dist_attenuation__r
  3035.     addq.w    #$8,a7
  3036.     fmul.x    fp3,fp0
  3037. ;     if(dsize>=ctx->Point.Threshold) 
  3038.     move.l    $8(a5),a1
  3039.     move.l    a1,a0
  3040.     add.l    #$D652,a0
  3041.     lea    (a0),a0
  3042.     fmove.s    $1A(a0),fp1
  3043.     fcmp.x    fp1,fp0
  3044.     fbolt.b    L431
  3045. L427
  3046. ;        isize=(GLint) (MIN2(dsize,ctx->Point.MaxSize)+0.5F);
  3047.     move.l    $8(a5),a1
  3048.     move.l    a1,a0
  3049.     add.l    #$D652,a0
  3050.     lea    (a0),a0
  3051.     fmove.s    $16(a0),fp1
  3052.     fcmp.x    fp1,fp0
  3053.     fboge.b    L429
  3054. L428
  3055.     bra.b    L430
  3056. L429
  3057.     move.l    $8(a5),a1
  3058.     move.l    a1,a0
  3059.     add.l    #$D652,a0
  3060.     lea    (a0),a0
  3061.     fmove.s    $16(a0),fp0
  3062. L430
  3063.     fadd.s    #$.3F000000,fp0
  3064.     fmove.l    fp0,d0
  3065. ;        alpha=VB->Color[i][3];
  3066.     move.l    -4(a5),a1
  3067.     add.l    #$9D80,a1
  3068.     move.l    (a1),a0
  3069.     move.l    -$C(a5),d1
  3070.     lea    0(a0,d1.l*4),a0
  3071.     addq.w    #3,a0
  3072.     move.b    (a0),d3
  3073.     bra    L435
  3074. L431
  3075. ;        isize=(GLint) (MAX2(ctx->Point.Threshold,ctx->Point.MinSiz
  3076.     move.l    $8(a5),a1
  3077.     move.l    a1,a0
  3078.     add.l    #$D652,a0
  3079.     lea    (a0),a0
  3080.     fmove.s    $1A(a0),fp2
  3081.     move.l    $8(a5),a1
  3082.     move.l    a1,a0
  3083.     add.l    #$D652,a0
  3084.     lea    (a0),a0
  3085.     fmove.s    $12(a0),fp1
  3086.     fcmp.x    fp1,fp2
  3087.     fbole.b    L433
  3088. L432
  3089.     move.l    $8(a5),a1
  3090.     move.l    a1,a0
  3091.     add.l    #$D652,a0
  3092.     lea    (a0),a0
  3093.     fmove.s    $1A(a0),fp1
  3094.     bra.b    L434
  3095. L433
  3096.     move.l    $8(a5),a1
  3097.     move.l    a1,a0
  3098.     add.l    #$D652,a0
  3099.     lea    (a0),a0
  3100.     fmove.s    $12(a0),fp1
  3101. L434
  3102.     fadd.s    #$.3F000000,fp1
  3103.     fmove.l    fp1,d0
  3104. ;        dsize/=ctx->Point.Threshold;
  3105.     move.l    $8(a5),a1
  3106.     move.l    a1,a0
  3107.     add.l    #$D652,a0
  3108.     lea    (a0),a0
  3109.     fmove.s    $1A(a0),fp1
  3110.     fdiv.x    fp1,fp0
  3111. ;        alpha=VB->Color[i][3]* (dsize*dsize);
  3112.     move.l    -4(a5),a1
  3113.     add.l    #$9D80,a1
  3114.     move.l    (a1),a0
  3115.     move.l    -$C(a5),d1
  3116.     lea    0(a0,d1.l*4),a0
  3117.     addq.w    #3,a0
  3118.     move.b    (a0),d1
  3119.     and.l    #$FF,d1
  3120.     fmove.l    d1,fp1
  3121.     fmove.x    fp0,fp2
  3122.     fmul.x    fp0,fp2
  3123.     fmove.x    fp2,fp0
  3124.     fmul.x    fp0,fp1
  3125.     fmove.l    fp1,d1
  3126.     move.b    d1,d3
  3127. L435
  3128. ;     if (isize&1) 
  3129.     move.l    d0,d1
  3130.     and.l    #1,d1
  3131.     beq.b    L437
  3132. L436
  3133. ;        x0 = x - isize/2;
  3134.     move.l    d0,d1
  3135.     divsl.l    #2,d1
  3136.     move.l    d1,-$2A(a5)
  3137.     move.l    d2,d1
  3138.     sub.l    -$2A(a5),d1
  3139.     move.l    d1,-$2A(a5)
  3140. ;        x1 = x + isize/2;
  3141.     move.l    d0,d4
  3142.     divsl.l    #2,d4
  3143.     add.l    d2,d4
  3144. ;        y0 = y - isize/2;
  3145.     move.l    d0,d2
  3146.     divsl.l    #2,d2
  3147.     move.l    -$22(a5),d1
  3148.     sub.l    d2,d1
  3149.     move.l    d1,d2
  3150. ;        y1 = y + isize/2;
  3151.     divsl.l    #2,d0
  3152.     move.l    d0,-$36(a5)
  3153.     move.l    -$36(a5),d0
  3154.     add.l    -$22(a5),d0
  3155.     move.l    d0,-$36(a5)
  3156.     bra.b    L438
  3157. L437
  3158. ;        x0 = (GLint) (x + 0.5F) - isize/2;
  3159.     fmove.l    d2,fp0
  3160.     fadd.s    #$.3F000000,fp0
  3161.     fmove.l    fp0,d1
  3162.     move.l    d1,-$2A(a5)
  3163.     move.l    d0,d1
  3164.     divsl.l    #2,d1
  3165.     sub.l    d1,-$2A(a5)
  3166. ;        x1 = x0 + isize-1;
  3167.     move.l    -$2A(a5),d4
  3168.     add.l    d0,d4
  3169.     subq.l    #1,d4
  3170. ;        y0 = (GLint) (y + 0.5F) - isize/2;
  3171.     fmove.l    -$22(a5),fp0
  3172.     fadd.s    #$.3F000000,fp0
  3173.     fmove.l    fp0,d2
  3174.     move.l    d0,d1
  3175.     divsl.l    #2,d1
  3176.     sub.l    d1,d2
  3177. ;        y1 = y0 + isize-1;
  3178.     move.l    d2,d1
  3179.     add.l    d0,d1
  3180.     move.l    d1,-$36(a5)
  3181.     subq.l    #1,-$36(a5)
  3182. L438
  3183. ;               alpha )
  3184.     move.l    a2,a0
  3185.     add.l    #$27D80,a0
  3186.     lea    (a0),a0
  3187.     move.l    (a0),d1
  3188.     move.l    -4(a5),a1
  3189.     add.l    #$9D80,a1
  3190.     move.l    (a1),a0
  3191.     move.l    -$C(a5),d0
  3192.     lea    0(a0,d0.l*4),a0
  3193.     move.b    (a0),d0
  3194.     and.l    #$FF,d0
  3195.     cmp.l    d0,d1
  3196.     bne    L443
  3197. L439
  3198.     move.l    a2,a0
  3199.     add.l    #$27D80,a0
  3200.     lea    (a0),a0
  3201.     addq.w    #4,a0
  3202.     move.l    (a0),d1
  3203.     move.l    -4(a5),a1
  3204.     add.l    #$9D80,a1
  3205.     move.l    (a1),a0
  3206.     move.l    -$C(a5),d0
  3207.     lea    0(a0,d0.l*4),a0
  3208.     addq.w    #1,a0
  3209.     move.b    (a0),d0
  3210.     and.l    #$FF,d0
  3211.     cmp.l    d0,d1
  3212.     bne.b    L443
  3213. L440
  3214.     move.l    a2,a0
  3215.     add.l    #$27D80,a0
  3216.     lea    (a0),a0
  3217.     addq.w    #$8,a0
  3218.     move.l    (a0),d1
  3219.     move.l    -4(a5),a1
  3220.     add.l    #$9D80,a1
  3221.     move.l    (a1),a0
  3222.     move.l    -$C(a5),d0
  3223.     lea    0(a0,d0.l*4),a0
  3224.     addq.w    #2,a0
  3225.     move.b    (a0),d0
  3226.     and.l    #$FF,d0
  3227.     cmp.l    d0,d1
  3228.     bne.b    L443
  3229. L441
  3230.     move.l    a2,a0
  3231.     add.l    #$27D80,a0
  3232.     lea    (a0),a0
  3233.     add.w    #$C,a0
  3234.     move.l    (a0),d1
  3235.     moveq    #0,d0
  3236.     move.b    d3,d0
  3237.     cmp.l    d0,d1
  3238.     bne.b    L443
  3239. L442
  3240.     move.l    a2,a0
  3241.     add.l    #$27D98,a0
  3242.     move.b    (a0),d0
  3243.     bne.b    L444
  3244. L443
  3245. ;               alpha )
  3246.     move.l    $8(a5),-(a7)
  3247.     jsr    _gl_flush_pb
  3248.     addq.w    #4,a7
  3249. L444
  3250. ;               alpha )
  3251.     move.l    -4(a5),a1
  3252.     add.l    #$9D80,a1
  3253.     move.l    (a1),a0
  3254.     move.l    -$C(a5),d0
  3255.     lea    0(a0,d0.l*4),a0
  3256.     move.b    (a0),d0
  3257.     and.l    #$FF,d0
  3258.     move.l    a2,a0
  3259.     add.l    #$27D80,a0
  3260.     lea    (a0),a0
  3261.     move.l    d0,(a0)
  3262. ;               alpha )
  3263.     move.l    -4(a5),a1
  3264.     add.l    #$9D80,a1
  3265.     move.l    (a1),a0
  3266.     move.l    -$C(a5),d0
  3267.     lea    0(a0,d0.l*4),a0
  3268.     addq.w    #1,a0
  3269.     move.b    (a0),d0
  3270.     and.l    #$FF,d0
  3271.     move.l    a2,a0
  3272.     add.l    #$27D80,a0
  3273.     lea    (a0),a0
  3274.     addq.w    #4,a0
  3275.     move.l    d0,(a0)
  3276. ;               alpha )
  3277.     move.l    -4(a5),a1
  3278.     add.l    #$9D80,a1
  3279.     move.l    (a1),a0
  3280.     move.l    -$C(a5),d0
  3281.     lea    0(a0,d0.l*4),a0
  3282.     addq.w    #2,a0
  3283.     move.b    (a0),d0
  3284.     and.l    #$FF,d0
  3285.     move.l    a2,a0
  3286.     add.l    #$27D80,a0
  3287.     lea    (a0),a0
  3288.     addq.w    #$8,a0
  3289.     move.l    d0,(a0)
  3290. ;               alpha )
  3291.     moveq    #0,d0
  3292.     move.b    d3,d0
  3293.     move.l    a2,a0
  3294.     add.l    #$27D80,a0
  3295.     lea    (a0),a0
  3296.     add.w    #$C,a0
  3297.     move.l    d0,(a0)
  3298. ;               alpha )
  3299.     move.l    a2,a0
  3300.     add.l    #$27D98,a0
  3301.     move.b    #1,(a0)
  3302. ;     for (iy=y0;
  3303.     move.l    d2,d3
  3304.     bra.b    L449
  3305. L445
  3306. ;        for (ix=x0;
  3307.     move.l    -$2A(a5),d0
  3308.     bra.b    L447
  3309. L446
  3310. ;           PB_WRITE_PIXEL( PB, ix
  3311.     move.l    a2,a0
  3312.     add.l    #$27D94,a0
  3313.     move.l    (a0),d1
  3314.     lea    0(a2,d1.l*4),a0
  3315.     move.l    d0,(a0)
  3316. ;           PB_WRITE_PIXEL( PB, ix
  3317.     lea    $4B00(a2),a0
  3318.     move.l    a2,a1
  3319.     add.l    #$27D94,a1
  3320.     move.l    (a1),d1
  3321.     lea    0(a0,d1.l*4),a0
  3322.     move.l    d3,(a0)
  3323. ;           PB_WRITE_PIXEL( PB, ix
  3324.     move.w    d5,d2
  3325.     move.l    a2,a0
  3326.     add.l    #$9600,a0
  3327.     lea    (a0),a0
  3328.     move.l    a2,a1
  3329.     add.l    #$27D94,a1
  3330.     move.l    (a1),d1
  3331.     lea    0(a0,d1.l*2),a0
  3332.     move.w    d2,(a0)
  3333. ;           PB_WRITE_PIXEL( PB, ix
  3334.     move.l    a2,a0
  3335.     add.l    #$27D94,a0
  3336.     move.l    (a0),d1
  3337.     addq.l    #1,d1
  3338.     move.l    a2,a0
  3339.     add.l    #$27D94,a0
  3340.     move.l    d1,(a0)
  3341.     addq.l    #1,d0
  3342. L447
  3343.     cmp.l    d4,d0
  3344.     ble.b    L446
  3345. L448
  3346.     addq.l    #1,d3
  3347. L449
  3348.     cmp.l    -$36(a5),d3
  3349.     ble.b    L445
  3350. L450
  3351. ;     PB_CHECK_FLUSH(ctx,PB)
  3352.     move.l    a2,a0
  3353.     add.l    #$27D94,a0
  3354.     move.l    (a0),d0
  3355.     cmp.l    #$C80,d0
  3356.     blo.b    L452
  3357. L451
  3358. ;     PB_CHECK_FLUSH(ctx,PB)
  3359.     move.l    $8(a5),-(a7)
  3360.     jsr    _gl_flush_pb
  3361.     addq.w    #4,a7
  3362. L452
  3363.     addq.l    #1,-$C(a5)
  3364. L453
  3365.     move.l    -$C(a5),d0
  3366.     cmp.l    $10(a5),d0
  3367.     bls    L425
  3368. L454
  3369.     fmovem.x (a7)+,fp2/fp3
  3370.     movem.l    (a7)+,d2-d6/a2
  3371.     unlk    a5
  3372.     rts
  3373.  
  3374.     SECTION "_dist_atten_textured_rgba_points:0",CODE
  3375.  
  3376.  
  3377. ;static void dist_atten_textured_rgba_points( GLcontext *ctx, GLuint 
  3378. _dist_atten_textured_rgba_points
  3379. L489    EQU    -$A4
  3380.     link    a5,#L489
  3381.     movem.l    d2-d5/a2,-(a7)
  3382.     fmovem.x fp2/fp3/fp4,-(a7)
  3383.     move.l    $C(a5),d0
  3384. L456
  3385. ;   struct vertex_buffer *VB = ctx->VB;
  3386.     move.l    $8(a5),a0
  3387.     add.l    #$E0C0,a0
  3388.     move.l    (a0),-4(a5)
  3389. ;   struct pixel_buffer *PB = ctx->PB;
  3390.     move.l    $8(a5),a0
  3391.     add.l    #$E0C4,a0
  3392.     move.l    (a0),a2
  3393. ;   psize=CLAMP(ctx->Point.Size,MIN_POINT_SIZE,MAX_POINT_SIZE);
  3394.     move.l    $8(a5),a1
  3395.     move.l    a1,a0
  3396.     add.l    #$D652,a0
  3397.     lea    (a0),a0
  3398.     fmove.s    2(a0),fp0
  3399.     fcmp.d    #$.3FF00000.00000000,fp0
  3400.     fboge.b    L458
  3401. L457
  3402.     fmove.d    #$.3FF00000.00000000,fp0
  3403.     bra.b    L462
  3404. L458
  3405.     move.l    $8(a5),a1
  3406.     move.l    a1,a0
  3407.     add.l    #$D652,a0
  3408.     lea    (a0),a0
  3409.     fmove.s    2(a0),fp0
  3410.     fcmp.d    #$.40240000.00000000,fp0
  3411.     fbole.b    L460
  3412. L459
  3413.     fmove.d    #$.40240000.00000000,fp0
  3414.     bra.b    L461
  3415. L460
  3416.     move.l    $8(a5),a1
  3417.     move.l    a1,a0
  3418.     add.l    #$D652,a0
  3419.     lea    (a0),a0
  3420.     fmove.s    2(a0),fp0
  3421. L461
  3422. L462
  3423.     fmove.x    fp0,fp4
  3424. ;   for (i=first;
  3425.     move.l    d0,d5
  3426.     bra    L487
  3427. L463
  3428. ;      if (VB->ClipMask[i]==0) 
  3429.     move.l    -4(a5),a1
  3430.     move.l    a1,a0
  3431.     add.l    #$CEC0,a0
  3432.     lea    (a0),a0
  3433.     add.l    d5,a0
  3434.     move.b    (a0),d0
  3435.     bne    L486
  3436. L464
  3437. ;     x = (GLint)  VB->Win[i][0];
  3438.     move.l    -4(a5),a1
  3439.     lea    $5E80(a1),a0
  3440.     move.l    d5,d0
  3441.     muls.l    #$C,d0
  3442.     add.l    d0,a0
  3443.     fmove.s    (a0),fp0
  3444.     fmove.l    fp0,d3
  3445. ;     y = (GLint)  VB->Win[i][1];
  3446.     move.l    -4(a5),a1
  3447.     lea    $5E80(a1),a0
  3448.     move.l    d5,d0
  3449.     muls.l    #$C,d0
  3450.     add.l    d0,a0
  3451.     addq.w    #4,a0
  3452.     fmove.s    (a0),fp0
  3453.     fmove.l    fp0,d2
  3454. ;     z = (GLint) (VB->Win[i][2] + ctx->PointZoffset);
  3455.     move.l    -4(a5),a1
  3456.     lea    $5E80(a1),a0
  3457.     move.l    d5,d0
  3458.     muls.l    #$C,d0
  3459.     add.l    d0,a0
  3460.     addq.w    #$8,a0
  3461.     fmove.s    (a0),fp0
  3462.     move.l    $8(a5),a0
  3463.     add.l    #$E0A4,a0
  3464.     fmove.s    (a0),fp1
  3465.     fadd.x    fp1,fp0
  3466.     fmove.l    fp0,d0
  3467.     move.l    d0,-$20(a5)
  3468. ;     dsize=psize*dist_attenuation(ctx,VB->Eye[i]);
  3469.     move.l    -4(a5),a1
  3470.     lea    $1F80(a1),a0
  3471.     move.l    d5,d0
  3472.     asl.l    #4,d0
  3473.     add.l    d0,a0
  3474.     move.l    a0,-(a7)
  3475.     move.l    $8(a5),-(a7)
  3476.     jsr    _dist_attenuation__r
  3477.     addq.w    #$8,a7
  3478.     fmul.x    fp4,fp0
  3479. ;     if(dsize>=ctx->Point.Threshold) 
  3480.     move.l    $8(a5),a1
  3481.     move.l    a1,a0
  3482.     add.l    #$D652,a0
  3483.     lea    (a0),a0
  3484.     fmove.s    $1A(a0),fp1
  3485.     fcmp.x    fp1,fp0
  3486.     fbolt.b    L469
  3487. L465
  3488. ;        isize=(GLint) (MIN2(dsize,ctx->Point.MaxSize)+0.5F);
  3489.     move.l    $8(a5),a1
  3490.     move.l    a1,a0
  3491.     add.l    #$D652,a0
  3492.     lea    (a0),a0
  3493.     fmove.s    $16(a0),fp1
  3494.     fcmp.x    fp1,fp0
  3495.     fboge.b    L467
  3496. L466
  3497.     bra.b    L468
  3498. L467
  3499.     move.l    $8(a5),a1
  3500.     move.l    a1,a0
  3501.     add.l    #$D652,a0
  3502.     lea    (a0),a0
  3503.     fmove.s    $16(a0),fp0
  3504. L468
  3505.     fadd.s    #$.3F000000,fp0
  3506.     fmove.l    fp0,d0
  3507. ;        alpha=VB->Color[i][3];
  3508.     move.l    -4(a5),a1
  3509.     add.l    #$9D80,a1
  3510.     move.l    (a1),a0
  3511.     lea    0(a0,d5.l*4),a0
  3512.     addq.w    #3,a0
  3513.     move.b    (a0),d1
  3514.     and.l    #$FF,d1
  3515.     move.l    d1,-$4C(a5)
  3516.     bra    L473
  3517. L469
  3518. ;        isize=(GLint) (MAX2(ctx->Point.Threshold,ctx->Point.MinSiz
  3519.     move.l    $8(a5),a1
  3520.     move.l    a1,a0
  3521.     add.l    #$D652,a0
  3522.     lea    (a0),a0
  3523.     fmove.s    $1A(a0),fp2
  3524.     move.l    $8(a5),a1
  3525.     move.l    a1,a0
  3526.     add.l    #$D652,a0
  3527.     lea    (a0),a0
  3528.     fmove.s    $12(a0),fp1
  3529.     fcmp.x    fp1,fp2
  3530.     fbole.b    L471
  3531. L470
  3532.     move.l    $8(a5),a1
  3533.     move.l    a1,a0
  3534.     add.l    #$D652,a0
  3535.     lea    (a0),a0
  3536.     fmove.s    $1A(a0),fp1
  3537.     bra.b    L472
  3538. L471
  3539.     move.l    $8(a5),a1
  3540.     move.l    a1,a0
  3541.     add.l    #$D652,a0
  3542.     lea    (a0),a0
  3543.     fmove.s    $12(a0),fp1
  3544. L472
  3545.     fadd.s    #$.3F000000,fp1
  3546.     fmove.l    fp1,d0
  3547. ;        dsize/=ctx->Point.Threshold;
  3548.     move.l    $8(a5),a1
  3549.     move.l    a1,a0
  3550.     add.l    #$D652,a0
  3551.     lea    (a0),a0
  3552.     fmove.s    $1A(a0),fp1
  3553.     fdiv.x    fp1,fp0
  3554. ;        alpha=VB->Color[i][3]* (dsize*dsize);
  3555.     move.l    -4(a5),a1
  3556.     add.l    #$9D80,a1
  3557.     move.l    (a1),a0
  3558.     lea    0(a0,d5.l*4),a0
  3559.     addq.w    #3,a0
  3560.     move.b    (a0),d1
  3561.     and.l    #$FF,d1
  3562.     fmove.l    d1,fp1
  3563.     fmove.x    fp0,fp2
  3564.     fmul.x    fp0,fp2
  3565.     fmove.x    fp2,fp0
  3566.     fmul.x    fp0,fp1
  3567.     fmove.l    fp1,d1
  3568.     move.l    d1,-$4C(a5)
  3569. L473
  3570. ;     if (isize<1) 
  3571.     cmp.l    #1,d0
  3572.     bge.b    L475
  3573. L474
  3574. ;        isize = 1;
  3575.     moveq    #1,d0
  3576. L475
  3577. ;     if (isize&1) 
  3578.     move.l    d0,d1
  3579.     and.l    #1,d1
  3580.     beq.b    L477
  3581. L476
  3582. ;        x0 = x - isize/2;
  3583.     move.l    d0,d1
  3584.     divsl.l    #2,d1
  3585.     move.l    d1,-$24(a5)
  3586.     move.l    d3,d1
  3587.     sub.l    -$24(a5),d1
  3588.     move.l    d1,-$24(a5)
  3589. ;        x1 = x + isize/2;
  3590.     move.l    d0,d4
  3591.     divsl.l    #2,d4
  3592.     add.l    d3,d4
  3593. ;        y0 = y - isize/2;
  3594.     move.l    d0,d1
  3595.     divsl.l    #2,d1
  3596.     move.l    d2,d3
  3597.     sub.l    d1,d3
  3598.     move.l    d3,d1
  3599. ;        y1 = y + isize/2;
  3600.     divsl.l    #2,d0
  3601.     move.l    d0,-$30(a5)
  3602.     add.l    d2,-$30(a5)
  3603.     bra.b    L478
  3604. L477
  3605. ;        x0 = (GLint) (x + 0.5F) - isize/2;
  3606.     fmove.l    d3,fp0
  3607.     fadd.s    #$.3F000000,fp0
  3608.     fmove.l    fp0,d1
  3609.     move.l    d1,-$24(a5)
  3610.     move.l    d0,d1
  3611.     divsl.l    #2,d1
  3612.     sub.l    d1,-$24(a5)
  3613. ;        x1 = x0 + isize-1;
  3614.     move.l    -$24(a5),d4
  3615.     add.l    d0,d4
  3616.     subq.l    #1,d4
  3617. ;        y0 = (GLint) (y + 0.5F) - isize/2;
  3618.     fmove.l    d2,fp0
  3619.     fadd.s    #$.3F000000,fp0
  3620.     fmove.l    fp0,d1
  3621.     move.l    d0,d2
  3622.     divsl.l    #2,d2
  3623.     sub.l    d2,d1
  3624. ;        y1 = y0 + isize-1;
  3625.     move.l    d1,d2
  3626.     add.l    d0,d2
  3627.     move.l    d2,-$30(a5)
  3628.     subq.l    #1,-$30(a5)
  3629. L478
  3630. ;     red   = VB->Color[i][0];
  3631.     move.l    -4(a5),a1
  3632.     add.l    #$9D80,a1
  3633.     move.l    (a1),a0
  3634.     lea    0(a0,d5.l*4),a0
  3635.     move.b    (a0),d0
  3636.     and.l    #$FF,d0
  3637.     move.l    d0,-$40(a5)
  3638. ;     green = VB->Color[i][1];
  3639.     move.l    -4(a5),a1
  3640.     add.l    #$9D80,a1
  3641.     move.l    (a1),a0
  3642.     lea    0(a0,d5.l*4),a0
  3643.     addq.w    #1,a0
  3644.     move.b    (a0),d0
  3645.     and.l    #$FF,d0
  3646.     move.l    d0,-$44(a5)
  3647. ;     blue  = VB->Color[i][2];
  3648.     move.l    -4(a5),a1
  3649.     add.l    #$9D80,a1
  3650.     move.l    (a1),a0
  3651.     lea    0(a0,d5.l*4),a0
  3652.     addq.w    #2,a0
  3653.     move.b    (a0),d0
  3654.     and.l    #$FF,d0
  3655.     move.l    d0,-$48(a5)
  3656. ;     s = VB->TexCoord[i][0] / VB->TexCoord[i][3];
  3657.     move.l    -4(a5),a1
  3658.     move.l    a1,a0
  3659.     add.l    #$AF40,a0
  3660.     lea    (a0),a0
  3661.     move.l    d5,d0
  3662.     asl.l    #4,d0
  3663.     add.l    d0,a0
  3664.     fmove.s    (a0),fp2
  3665.     move.l    -4(a5),a1
  3666.     move.l    a1,a0
  3667.     add.l    #$AF40,a0
  3668.     lea    (a0),a0
  3669.     move.l    d5,d0
  3670.     asl.l    #4,d0
  3671.     add.l    d0,a0
  3672.     add.w    #$C,a0
  3673.     fmove.s    (a0),fp0
  3674.     fdiv.x    fp0,fp2
  3675. ;     t = VB->TexCoord[i][1] / VB->TexCoord[i][3];
  3676.     move.l    -4(a5),a1
  3677.     move.l    a1,a0
  3678.     add.l    #$AF40,a0
  3679.     lea    (a0),a0
  3680.     move.l    d5,d0
  3681.     asl.l    #4,d0
  3682.     add.l    d0,a0
  3683.     addq.w    #4,a0
  3684.     fmove.s    (a0),fp1
  3685.     move.l    -4(a5),a1
  3686.     move.l    a1,a0
  3687.     add.l    #$AF40,a0
  3688.     lea    (a0),a0
  3689.     move.l    d5,d0
  3690.     asl.l    #4,d0
  3691.     add.l    d0,a0
  3692.     add.w    #$C,a0
  3693.     fmove.s    (a0),fp0
  3694.     fdiv.x    fp0,fp1
  3695. ;     u = VB->TexCoord[i][2] / VB->TexCoord[i][3];
  3696.     move.l    -4(a5),a1
  3697.     move.l    a1,a0
  3698.     add.l    #$AF40,a0
  3699.     lea    (a0),a0
  3700.     move.l    d5,d0
  3701.     asl.l    #4,d0
  3702.     add.l    d0,a0
  3703.     addq.w    #$8,a0
  3704.     fmove.s    (a0),fp0
  3705.     move.l    -4(a5),a1
  3706.     move.l    a1,a0
  3707.     add.l    #$AF40,a0
  3708.     lea    (a0),a0
  3709.     move.l    d5,d0
  3710.     asl.l    #4,d0
  3711.     add.l    d0,a0
  3712.     add.w    #$C,a0
  3713.     fmove.s    (a0),fp3
  3714.     fdiv.x    fp3,fp0
  3715. ;     for (iy=y0;
  3716.     move.l    d1,d3
  3717.     bra    L483
  3718. L479
  3719. ;        for (ix=x0;
  3720.     move.l    -$24(a5),d0
  3721.     bra    L481
  3722. L480
  3723. ; u )
  3724.     move.l    a2,a0
  3725.     add.l    #$27D94,a0
  3726.     move.l    (a0),d1
  3727.     lea    0(a2,d1.l*4),a0
  3728.     move.l    d0,(a0)
  3729. ; u )
  3730.     lea    $4B00(a2),a0
  3731.     move.l    a2,a1
  3732.     add.l    #$27D94,a1
  3733.     move.l    (a1),d1
  3734.     lea    0(a0,d1.l*4),a0
  3735.     move.l    d3,(a0)
  3736. ; u )
  3737.     move.w    -$1E(a5),d2
  3738.     move.l    a2,a0
  3739.     add.l    #$9600,a0
  3740.     lea    (a0),a0
  3741.     move.l    a2,a1
  3742.     add.l    #$27D94,a1
  3743.     move.l    (a1),d1
  3744.     lea    0(a0,d1.l*2),a0
  3745.     move.w    d2,(a0)
  3746. ; u )
  3747.     move.b    -$3D(a5),d2
  3748.     move.l    a2,a0
  3749.     add.l    #$BB80,a0
  3750.     lea    (a0),a0
  3751.     move.l    a2,a1
  3752.     add.l    #$27D94,a1
  3753.     move.l    (a1),d1
  3754.     add.l    d1,a0
  3755.     move.b    d2,(a0)
  3756. ; u )
  3757.     move.b    -$41(a5),d2
  3758.     move.l    a2,a0
  3759.     add.l    #$CE40,a0
  3760.     lea    (a0),a0
  3761.     move.l    a2,a1
  3762.     add.l    #$27D94,a1
  3763.     move.l    (a1),d1
  3764.     add.l    d1,a0
  3765.     move.b    d2,(a0)
  3766. ; u )
  3767.     move.b    -$45(a5),d2
  3768.     move.l    a2,a0
  3769.     add.l    #$E100,a0
  3770.     lea    (a0),a0
  3771.     move.l    a2,a1
  3772.     add.l    #$27D94,a1
  3773.     move.l    (a1),d1
  3774.     add.l    d1,a0
  3775.     move.b    d2,(a0)
  3776. ; u )
  3777.     move.b    -$49(a5),d2
  3778.     move.l    a2,a0
  3779.     add.l    #$F3C0,a0
  3780.     lea    (a0),a0
  3781.     move.l    a2,a1
  3782.     add.l    #$27D94,a1
  3783.     move.l    (a1),d1
  3784.     add.l    d1,a0
  3785.     move.b    d2,(a0)
  3786. ; u )
  3787.     move.l    a2,a0
  3788.     add.l    #$15180,a0
  3789.     lea    (a0),a0
  3790.     move.l    a2,a1
  3791.     add.l    #$27D94,a1
  3792.     move.l    (a1),d1
  3793.     lea    0(a0,d1.l*4),a0
  3794.     fmove.s    fp2,(a0)
  3795. ; u )
  3796.     move.l    a2,a0
  3797.     add.l    #$19C80,a0
  3798.     lea    (a0),a0
  3799.     move.l    a2,a1
  3800.     add.l    #$27D94,a1
  3801.     move.l    (a1),d1
  3802.     lea    0(a0,d1.l*4),a0
  3803.     fmove.s    fp1,(a0)
  3804. ; u )
  3805.     move.l    a2,a0
  3806.     add.l    #$1E780,a0
  3807.     lea    (a0),a0
  3808.     move.l    a2,a1
  3809.     add.l    #$27D94,a1
  3810.     move.l    (a1),d1
  3811.     lea    0(a0,d1.l*4),a0
  3812.     fmove.s    fp0,(a0)
  3813. ; u )
  3814.     move.l    a2,a0
  3815.     add.l    #$27D94,a0
  3816.     move.l    (a0),d1
  3817.     addq.l    #1,d1
  3818.     move.l    a2,a0
  3819.     add.l    #$27D94,a0
  3820.     move.l    d1,(a0)
  3821.     addq.l    #1,d0
  3822. L481
  3823.     cmp.l    d4,d0
  3824.     ble    L480
  3825. L482
  3826.     addq.l    #1,d3
  3827. L483
  3828.     cmp.l    -$30(a5),d3
  3829.     ble    L479
  3830. L484
  3831. ;     PB_CHECK_FLUSH(ctx,PB)
  3832.     move.l    a2,a0
  3833.     add.l    #$27D94,a0
  3834.     move.l    (a0),d0
  3835.     cmp.l    #$C80,d0
  3836.     blo.b    L486
  3837. L485
  3838. ;     PB_CHECK_FLUSH(ctx,PB)
  3839.     move.l    $8(a5),-(a7)
  3840.     jsr    _gl_flush_pb
  3841.     addq.w    #4,a7
  3842. L486
  3843.     addq.l    #1,d5
  3844. L487
  3845.     cmp.l    $10(a5),d5
  3846.     bls    L463
  3847. L488
  3848.     fmovem.x (a7)+,fp2/fp3/fp4
  3849.     movem.l    (a7)+,d2-d5/a2
  3850.     unlk    a5
  3851.     rts
  3852.  
  3853.     SECTION "_dist_atten_antialiased_rgba_points:0",CODE
  3854.  
  3855.  
  3856. ;static void dist_atten_antialiased_rgba_points( GLcontext *ctx,
  3857. _dist_atten_antialiased_rgba_points
  3858. L549    EQU    -$10C
  3859.     link    a5,#L549
  3860.     movem.l    d2-d5/a2,-(a7)
  3861.     fmovem.x fp2/fp3/fp4/fp5/fp6,-(a7)
  3862.     move.l    $C(a5),d0
  3863. L490
  3864. ;   struct vertex_buffer *VB = ctx->VB;
  3865.     move.l    $8(a5),a0
  3866.     add.l    #$E0C0,a0
  3867.     move.l    (a0),-4(a5)
  3868. ;   struct pixel_buffer *PB = ctx->PB;
  3869.     move.l    $8(a5),a0
  3870.     add.l    #$E0C4,a0
  3871.     move.l    (a0),a2
  3872. ;   psize=CLAMP(ctx->Point.Size,MIN_POINT_SIZE,MAX_POINT_SIZE);
  3873.     move.l    $8(a5),a1
  3874.     move.l    a1,a0
  3875.     add.l    #$D652,a0
  3876.     lea    (a0),a0
  3877.     fmove.s    2(a0),fp0
  3878.     fcmp.d    #$.3FF00000.00000000,fp0
  3879.     fboge.b    L492
  3880. L491
  3881.     fmove.d    #$.3FF00000.00000000,fp0
  3882.     bra.b    L496
  3883. L492
  3884.     move.l    $8(a5),a1
  3885.     move.l    a1,a0
  3886.     add.l    #$D652,a0
  3887.     lea    (a0),a0
  3888.     fmove.s    2(a0),fp0
  3889.     fcmp.d    #$.40240000.00000000,fp0
  3890.     fbole.b    L494
  3891. L493
  3892.     fmove.d    #$.40240000.00000000,fp0
  3893.     bra.b    L495
  3894. L494
  3895.     move.l    $8(a5),a1
  3896.     move.l    a1,a0
  3897.     add.l    #$D652,a0
  3898.     lea    (a0),a0
  3899.     fmove.s    2(a0),fp0
  3900. L495
  3901. L496
  3902.     fmove.s    fp0,-$28(a5)
  3903. ;   if (ctx->Texture.Enabled) 
  3904.     move.l    $8(a5),a1
  3905.     move.l    a1,a0
  3906.     add.l    #$D73C,a0
  3907.     lea    (a0),a0
  3908.     move.l    (a0),d1
  3909.     beq    L523
  3910. L497
  3911. ;      for (i=first;
  3912.     move.l    d0,d2
  3913.     bra    L521
  3914. L498
  3915. ;     if (VB->ClipMask[i]==0) 
  3916.     move.l    -4(a5),a1
  3917.     move.l    a1,a0
  3918.     add.l    #$CEC0,a0
  3919.     lea    (a0),a0
  3920.     add.l    d2,a0
  3921.     move.b    (a0),d0
  3922.     bne    L520
  3923. L499
  3924. ;        dsize=psize*dist_attenuation(ctx,VB->Eye[i]);
  3925.     move.l    -4(a5),a1
  3926.     lea    $1F80(a1),a0
  3927.     move.l    d2,d0
  3928.     asl.l    #4,d0
  3929.     add.l    d0,a0
  3930.     move.l    a0,-(a7)
  3931.     move.l    $8(a5),-(a7)
  3932.     jsr    _dist_attenuation__r
  3933.     addq.w    #$8,a7
  3934.     fmul.s    -$28(a5),fp0
  3935. ;        if(dsize>=ctx->Point.Threshold) 
  3936.     move.l    $8(a5),a1
  3937.     move.l    a1,a0
  3938.     add.l    #$D652,a0
  3939.     lea    (a0),a0
  3940.     fmove.s    $1A(a0),fp1
  3941.     fcmp.x    fp1,fp0
  3942.     fbolt.b    L504
  3943. L500
  3944. ;           radius=(MIN2(dsize,ctx->Point.MaxSize)*0.5F);
  3945.     move.l    $8(a5),a1
  3946.     move.l    a1,a0
  3947.     add.l    #$D652,a0
  3948.     lea    (a0),a0
  3949.     fmove.s    $16(a0),fp1
  3950.     fcmp.x    fp1,fp0
  3951.     fboge.b    L502
  3952. L501
  3953.     fmove.x    fp0,fp1
  3954.     bra.b    L503
  3955. L502
  3956.     move.l    $8(a5),a1
  3957.     move.l    a1,a0
  3958.     add.l    #$D652,a0
  3959.     lea    (a0),a0
  3960.     fmove.s    $16(a0),fp1
  3961. L503
  3962.     fmul.s    #$.3F000000,fp1
  3963. ;           alphaf=1.0;
  3964.     fmove.s    #$.3F800000,fp0
  3965.     bra    L508
  3966. L504
  3967. ;           radius=(MAX2(ctx->Point.Threshold,ctx->Point.MinSize)
  3968.     move.l    $8(a5),a1
  3969.     move.l    a1,a0
  3970.     add.l    #$D652,a0
  3971.     lea    (a0),a0
  3972.     fmove.s    $1A(a0),fp2
  3973.     move.l    $8(a5),a1
  3974.     move.l    a1,a0
  3975.     add.l    #$D652,a0
  3976.     lea    (a0),a0
  3977.     fmove.s    $12(a0),fp1
  3978.     fcmp.x    fp1,fp2
  3979.     fbole.b    L506
  3980. L505
  3981.     move.l    $8(a5),a1
  3982.     move.l    a1,a0
  3983.     add.l    #$D652,a0
  3984.     lea    (a0),a0
  3985.     fmove.s    $1A(a0),fp1
  3986.     bra.b    L507
  3987. L506
  3988.     move.l    $8(a5),a1
  3989.     move.l    a1,a0
  3990.     add.l    #$D652,a0
  3991.     lea    (a0),a0
  3992.     fmove.s    $12(a0),fp1
  3993. L507
  3994.     fmul.s    #$.3F000000,fp1
  3995. ;           dsize/=ctx->Point.Threshold;
  3996.     move.l    $8(a5),a1
  3997.     move.l    a1,a0
  3998.     add.l    #$D652,a0
  3999.     lea    (a0),a0
  4000.     fmove.s    $1A(a0),fp2
  4001.     fdiv.x    fp2,fp0
  4002. ;           alphaf=(dsize*dsize);
  4003.     fmove.x    fp0,fp2
  4004.     fmul.x    fp0,fp2
  4005.     fmove.x    fp2,fp0
  4006. L508
  4007. ;        rmin = radius - 0.7071F;
  4008.     fmove.x    fp1,fp3
  4009.     fsub.s    #$.3F350481,fp3
  4010. ;        rmax = radius + 0.7071F;
  4011.     fmove.x    fp1,fp2
  4012.     fadd.s    #$.3F350481,fp2
  4013. ;        rmin2 = rmin*rmin;
  4014.     fmove.x    fp3,fp4
  4015.     fmul.x    fp3,fp4
  4016.     fmove.x    fp4,fp3
  4017. ;        rmax2 = rmax*rmax;
  4018.     fmove.x    fp2,fp5
  4019.     fmul.x    fp2,fp5
  4020. ;        cscale = 256.0F / (rmax2-rmin2);
  4021.     fmove.x    fp5,fp4
  4022.     fsub.x    fp3,fp4
  4023.     fmove.s    #$.43800000,fp2
  4024.     fdiv.x    fp4,fp2
  4025.     fmove.x    fp2,fp4
  4026. ;        xmin = (GLint) (VB->Win[i][0] - radius);
  4027.     move.l    -4(a5),a1
  4028.     lea    $5E80(a1),a0
  4029.     move.l    d2,d0
  4030.     muls.l    #$C,d0
  4031.     add.l    d0,a0
  4032.     fmove.s    (a0),fp2
  4033.     fsub.x    fp1,fp2
  4034.     fmove.l    fp2,d0
  4035.     move.l    d0,-$34(a5)
  4036. ;        xmax = (GLint) (VB->Win[i][0] + radius);
  4037.     move.l    -4(a5),a1
  4038.     lea    $5E80(a1),a0
  4039.     move.l    d2,d0
  4040.     muls.l    #$C,d0
  4041.     add.l    d0,a0
  4042.     fmove.s    (a0),fp2
  4043.     fadd.x    fp1,fp2
  4044.     fmove.l    fp2,d0
  4045.     move.l    d0,-$3C(a5)
  4046. ;        ymin = (GLint) (VB->Win[i][1] - radius);
  4047.     move.l    -4(a5),a1
  4048.     lea    $5E80(a1),a0
  4049.     move.l    d2,d0
  4050.     muls.l    #$C,d0
  4051.     add.l    d0,a0
  4052.     addq.w    #4,a0
  4053.     fmove.s    (a0),fp2
  4054.     fsub.x    fp1,fp2
  4055.     fmove.l    fp2,d1
  4056. ;        ymax = (GLint) (VB->Win[i][1] + radius);
  4057.     move.l    -4(a5),a1
  4058.     lea    $5E80(a1),a0
  4059.     move.l    d2,d0
  4060.     muls.l    #$C,d0
  4061.     add.l    d0,a0
  4062.     addq.w    #4,a0
  4063.     fmove.s    (a0),fp2
  4064.     fadd.x    fp1,fp2
  4065.     fmove.l    fp2,d0
  4066.     move.l    d0,-$40(a5)
  4067. ;        z = (GLint) (VB->Win[i][2] + ctx->PointZoffset);
  4068.     move.l    -4(a5),a1
  4069.     lea    $5E80(a1),a0
  4070.     move.l    d2,d0
  4071.     muls.l    #$C,d0
  4072.     add.l    d0,a0
  4073.     addq.w    #$8,a0
  4074.     fmove.s    (a0),fp1
  4075.     move.l    $8(a5),a0
  4076.     add.l    #$E0A4,a0
  4077.     fmove.s    (a0),fp2
  4078.     fadd.x    fp2,fp1
  4079.     fmove.l    fp1,d0
  4080.     move.l    d0,-$4C(a5)
  4081. ;        red   = VB->Color[i][0];
  4082.     move.l    -4(a5),a1
  4083.     add.l    #$9D80,a1
  4084.     move.l    (a1),a0
  4085.     lea    0(a0,d2.l*4),a0
  4086.     move.b    (a0),d0
  4087.     and.l    #$FF,d0
  4088.     move.l    d0,-$50(a5)
  4089. ;        green = VB->Color[i][1];
  4090.     move.l    -4(a5),a1
  4091.     add.l    #$9D80,a1
  4092.     move.l    (a1),a0
  4093.     lea    0(a0,d2.l*4),a0
  4094.     addq.w    #1,a0
  4095.     move.b    (a0),d0
  4096.     and.l    #$FF,d0
  4097.     move.l    d0,-$54(a5)
  4098. ;        blue  = VB->Color[i][2];
  4099.     move.l    -4(a5),a1
  4100.     add.l    #$9D80,a1
  4101.     move.l    (a1),a0
  4102.     lea    0(a0,d2.l*4),a0
  4103.     addq.w    #2,a0
  4104.     move.b    (a0),d0
  4105.     and.l    #$FF,d0
  4106.     move.l    d0,-$58(a5)
  4107. ;        s = VB->TexCoord[i][0] / VB->TexCoord[i][3];
  4108.     move.l    -4(a5),a1
  4109.     move.l    a1,a0
  4110.     add.l    #$AF40,a0
  4111.     lea    (a0),a0
  4112.     move.l    d2,d0
  4113.     asl.l    #4,d0
  4114.     add.l    d0,a0
  4115.     move.l    (a0),-$60(a5)
  4116.     move.l    -4(a5),a1
  4117.     move.l    a1,a0
  4118.     add.l    #$AF40,a0
  4119.     lea    (a0),a0
  4120.     move.l    d2,d0
  4121.     asl.l    #4,d0
  4122.     add.l    d0,a0
  4123.     add.w    #$C,a0
  4124.     fmove.s    (a0),fp1
  4125.     fmove.s    -$60(a5),fp2
  4126.     fdiv.x    fp1,fp2
  4127.     fmove.s    fp2,-$60(a5)
  4128. ;        t = VB->TexCoord[i][1] / VB->TexCoord[i][3];
  4129.     move.l    -4(a5),a1
  4130.     move.l    a1,a0
  4131.     add.l    #$AF40,a0
  4132.     lea    (a0),a0
  4133.     move.l    d2,d0
  4134.     asl.l    #4,d0
  4135.     add.l    d0,a0
  4136.     addq.w    #4,a0
  4137.     move.l    (a0),-$64(a5)
  4138.     move.l    -4(a5),a1
  4139.     move.l    a1,a0
  4140.     add.l    #$AF40,a0
  4141.     lea    (a0),a0
  4142.     move.l    d2,d0
  4143.     asl.l    #4,d0
  4144.     add.l    d0,a0
  4145.     add.w    #$C,a0
  4146.     fmove.s    (a0),fp1
  4147.     fmove.s    -$64(a5),fp2
  4148.     fdiv.x    fp1,fp2
  4149.     fmove.s    fp2,-$64(a5)
  4150. ;        u = VB->TexCoord[i][2] / VB->TexCoord[i][3];
  4151.     move.l    -4(a5),a1
  4152.     move.l    a1,a0
  4153.     add.l    #$AF40,a0
  4154.     lea    (a0),a0
  4155.     move.l    d2,d0
  4156.     asl.l    #4,d0
  4157.     add.l    d0,a0
  4158.     addq.w    #$8,a0
  4159.     move.l    (a0),-$68(a5)
  4160.     move.l    -4(a5),a1
  4161.     move.l    a1,a0
  4162.     add.l    #$AF40,a0
  4163.     lea    (a0),a0
  4164.     move.l    d2,d0
  4165.     asl.l    #4,d0
  4166.     add.l    d0,a0
  4167.     add.w    #$C,a0
  4168.     fmove.s    (a0),fp1
  4169.     fmove.s    -$68(a5),fp2
  4170.     fdiv.x    fp1,fp2
  4171.     fmove.s    fp2,-$68(a5)
  4172. ;        for (y=ymin;
  4173.     move.l    d1,d3
  4174.     bra    L517
  4175. L509
  4176. ;           for (x=xmin;
  4177.     move.l    -$34(a5),d1
  4178.     bra    L515
  4179. L510
  4180. ;          GLfloat dx = x/*+0.5F*/ - VB->Win[i][0];
  4181.     fmove.l    d1,fp1
  4182.     move.l    -4(a5),a1
  4183.     lea    $5E80(a1),a0
  4184.     move.l    d2,d0
  4185.     muls.l    #$C,d0
  4186.     add.l    d0,a0
  4187.     fmove.s    (a0),fp2
  4188.     fsub.x    fp2,fp1
  4189. ;          GLfloat dy = y/*+0.5F*/ - VB->Win[i][1];
  4190.     fmove.l    d3,fp2
  4191.     move.l    -4(a5),a1
  4192.     lea    $5E80(a1),a0
  4193.     move.l    d2,d0
  4194.     muls.l    #$C,d0
  4195.     add.l    d0,a0
  4196.     addq.w    #4,a0
  4197.     move.l    (a0),-$C4(a5)
  4198.     fsub.s    -$C4(a5),fp2
  4199. ;          GLfloat dist2 = dx*dx + dy*dy;
  4200.     fmove.x    fp1,fp6
  4201.     fmul.x    fp1,fp6
  4202.     fmove.x    fp6,fp1
  4203.     fmove.x    fp2,fp6
  4204.     fmul.x    fp2,fp6
  4205.     fmove.x    fp6,fp2
  4206.     fadd.x    fp2,fp1
  4207. ;          if (dist2<rmax2) 
  4208.     fcmp.x    fp5,fp1
  4209.     fboge.b    L514
  4210. L511
  4211. ;             alpha = VB->Color[i][3];
  4212.     move.l    -4(a5),a1
  4213.     add.l    #$9D80,a1
  4214.     move.l    (a1),a0
  4215.     lea    0(a0,d2.l*4),a0
  4216.     addq.w    #3,a0
  4217.     move.b    (a0),d0
  4218.     and.l    #$FF,d0
  4219. ;             if (dist2>=rmin2) 
  4220.     fcmp.x    fp3,fp1
  4221.     fbolt.b    L513
  4222. L512
  4223. ;            GLint coverage = (GLint) (256.0F-(dist2-rmin2)*cscale);
  4224.     fsub.x    fp3,fp1
  4225.     fmul.x    fp4,fp1
  4226.     fmove.s    #$.43800000,fp2
  4227.     fsub.x    fp1,fp2
  4228.     fmove.x    fp2,fp1
  4229.     fmove.l    fp1,d4
  4230. ;            alpha = (alpha * coverage) >> 8;
  4231.     muls.l    d4,d0
  4232.     moveq    #$8,d4
  4233.     asr.l    d4,d0
  4234. L513
  4235. ;             alpha*=alphaf;
  4236.     fmove.l    d0,fp1
  4237.     fmul.x    fp0,fp1
  4238.     fmove.l    fp1,d0
  4239. ;t, u )
  4240.     move.l    a2,a0
  4241.     add.l    #$27D94,a0
  4242.     move.l    (a0),d4
  4243.     lea    0(a2,d4.l*4),a0
  4244.     move.l    d1,(a0)
  4245. ;t, u )
  4246.     lea    $4B00(a2),a0
  4247.     move.l    a2,a1
  4248.     add.l    #$27D94,a1
  4249.     move.l    (a1),d4
  4250.     lea    0(a0,d4.l*4),a0
  4251.     move.l    d3,(a0)
  4252. ;t, u )
  4253.     move.w    -$4A(a5),d5
  4254.     move.l    a2,a0
  4255.     add.l    #$9600,a0
  4256.     lea    (a0),a0
  4257.     move.l    a2,a1
  4258.     add.l    #$27D94,a1
  4259.     move.l    (a1),d4
  4260.     lea    0(a0,d4.l*2),a0
  4261.     move.w    d5,(a0)
  4262. ;t, u )
  4263.     move.b    -$4D(a5),d5
  4264.     move.l    a2,a0
  4265.     add.l    #$BB80,a0
  4266.     lea    (a0),a0
  4267.     move.l    a2,a1
  4268.     add.l    #$27D94,a1
  4269.     move.l    (a1),d4
  4270.     add.l    d4,a0
  4271.     move.b    d5,(a0)
  4272. ;t, u )
  4273.     move.b    -$51(a5),d5
  4274.     move.l    a2,a0
  4275.     add.l    #$CE40,a0
  4276.     lea    (a0),a0
  4277.     move.l    a2,a1
  4278.     add.l    #$27D94,a1
  4279.     move.l    (a1),d4
  4280.     add.l    d4,a0
  4281.     move.b    d5,(a0)
  4282. ;t, u )
  4283.     move.b    -$55(a5),d5
  4284.     move.l    a2,a0
  4285.     add.l    #$E100,a0
  4286.     lea    (a0),a0
  4287.     move.l    a2,a1
  4288.     add.l    #$27D94,a1
  4289.     move.l    (a1),d4
  4290.     add.l    d4,a0
  4291.     move.b    d5,(a0)
  4292. ;t, u )
  4293.     move.b    d0,d4
  4294.     move.l    a2,a0
  4295.     add.l    #$F3C0,a0
  4296.     lea    (a0),a0
  4297.     move.l    a2,a1
  4298.     add.l    #$27D94,a1
  4299.     move.l    (a1),d0
  4300.     add.l    d0,a0
  4301.     move.b    d4,(a0)
  4302. ;t, u )
  4303.     move.l    a2,a0
  4304.     add.l    #$15180,a0
  4305.     lea    (a0),a0
  4306.     move.l    a2,a1
  4307.     add.l    #$27D94,a1
  4308.     move.l    (a1),d0
  4309.     lea    0(a0,d0.l*4),a0
  4310.     move.l    -$60(a5),(a0)
  4311. ;t, u )
  4312.     move.l    a2,a0
  4313.     add.l    #$19C80,a0
  4314.     lea    (a0),a0
  4315.     move.l    a2,a1
  4316.     add.l    #$27D94,a1
  4317.     move.l    (a1),d0
  4318.     lea    0(a0,d0.l*4),a0
  4319.     move.l    -$64(a5),(a0)
  4320. ;t, u )
  4321.     move.l    a2,a0
  4322.     add.l    #$1E780,a0
  4323.     lea    (a0),a0
  4324.     move.l    a2,a1
  4325.     add.l    #$27D94,a1
  4326.     move.l    (a1),d0
  4327.     lea    0(a0,d0.l*4),a0
  4328.     move.l    -$68(a5),(a0)
  4329. ;t, u )
  4330.     move.l    a2,a0
  4331.     add.l    #$27D94,a0
  4332.     move.l    (a0),d0
  4333.     addq.l    #1,d0
  4334.     move.l    a2,a0
  4335.     add.l    #$27D94,a0
  4336.     move.l    d0,(a0)
  4337. L514
  4338.     addq.l    #1,d1
  4339. L515
  4340.     cmp.l    -$3C(a5),d1
  4341.     ble    L510
  4342. L516
  4343.     addq.l    #1,d3
  4344. L517
  4345.     cmp.l    -$40(a5),d3
  4346.     ble    L509
  4347. L518
  4348. ;        PB_CHECK_FLUSH(ctx,PB)
  4349.     move.l    a2,a0
  4350.     add.l    #$27D94,a0
  4351.     move.l    (a0),d0
  4352.     cmp.l    #$C80,d0
  4353.     blo.b    L520
  4354. L519
  4355. ;        PB_CHECK_FLUSH(ctx,PB)
  4356.     move.l    $8(a5),-(a7)
  4357.     jsr    _gl_flush_pb
  4358.     addq.w    #4,a7
  4359. L520
  4360.     addq.l    #1,d2
  4361. L521
  4362.     cmp.l    $10(a5),d2
  4363.     bls    L498
  4364. L522
  4365.     bra    L548
  4366. L523
  4367. ;      for (i=first;
  4368.     move.l    d0,d2
  4369.     bra    L547
  4370. L524
  4371. ;     if (VB->ClipMask[i]==0) 
  4372.     move.l    -4(a5),a1
  4373.     move.l    a1,a0
  4374.     add.l    #$CEC0,a0
  4375.     lea    (a0),a0
  4376.     add.l    d2,a0
  4377.     move.b    (a0),d0
  4378.     bne    L546
  4379. L525
  4380. ;        dsize=psize*dist_attenuation(ctx,VB->Eye[i]);
  4381.     move.l    -4(a5),a1
  4382.     lea    $1F80(a1),a0
  4383.     move.l    d2,d0
  4384.     asl.l    #4,d0
  4385.     add.l    d0,a0
  4386.     move.l    a0,-(a7)
  4387.     move.l    $8(a5),-(a7)
  4388.     jsr    _dist_attenuation__r
  4389.     addq.w    #$8,a7
  4390.     fmul.s    -$28(a5),fp0
  4391. ;        if(dsize>=ctx->Point.Threshold) 
  4392.     move.l    $8(a5),a1
  4393.     move.l    a1,a0
  4394.     add.l    #$D652,a0
  4395.     lea    (a0),a0
  4396.     fmove.s    $1A(a0),fp1
  4397.     fcmp.x    fp1,fp0
  4398.     fbolt.b    L530
  4399. L526
  4400. ;           radius=(MIN2(dsize,ctx->Point.MaxSize)*0.5F);
  4401.     move.l    $8(a5),a1
  4402.     move.l    a1,a0
  4403.     add.l    #$D652,a0
  4404.     lea    (a0),a0
  4405.     fmove.s    $16(a0),fp1
  4406.     fcmp.x    fp1,fp0
  4407.     fboge.b    L528
  4408. L527
  4409.     fmove.x    fp0,fp1
  4410.     bra.b    L529
  4411. L528
  4412.     move.l    $8(a5),a1
  4413.     move.l    a1,a0
  4414.     add.l    #$D652,a0
  4415.     lea    (a0),a0
  4416.     fmove.s    $16(a0),fp1
  4417. L529
  4418.     fmul.s    #$.3F000000,fp1
  4419. ;           alphaf=1.0;
  4420.     fmove.s    #$.3F800000,fp0
  4421.     bra    L534
  4422. L530
  4423. ;           radius=(MAX2(ctx->Point.Threshold,ctx->Point.MinSize)
  4424.     move.l    $8(a5),a1
  4425.     move.l    a1,a0
  4426.     add.l    #$D652,a0
  4427.     lea    (a0),a0
  4428.     fmove.s    $1A(a0),fp2
  4429.     move.l    $8(a5),a1
  4430.     move.l    a1,a0
  4431.     add.l    #$D652,a0
  4432.     lea    (a0),a0
  4433.     fmove.s    $12(a0),fp1
  4434.     fcmp.x    fp1,fp2
  4435.     fbole.b    L532
  4436. L531
  4437.     move.l    $8(a5),a1
  4438.     move.l    a1,a0
  4439.     add.l    #$D652,a0
  4440.     lea    (a0),a0
  4441.     fmove.s    $1A(a0),fp1
  4442.     bra.b    L533
  4443. L532
  4444.     move.l    $8(a5),a1
  4445.     move.l    a1,a0
  4446.     add.l    #$D652,a0
  4447.     lea    (a0),a0
  4448.     fmove.s    $12(a0),fp1
  4449. L533
  4450.     fmul.s    #$.3F000000,fp1
  4451. ;           dsize/=ctx->Point.Threshold;
  4452.     move.l    $8(a5),a1
  4453.     move.l    a1,a0
  4454.     add.l    #$D652,a0
  4455.     lea    (a0),a0
  4456.     fmove.s    $1A(a0),fp2
  4457.     fdiv.x    fp2,fp0
  4458. ;           alphaf=(dsize*dsize);
  4459.     fmove.x    fp0,fp2
  4460.     fmul.x    fp0,fp2
  4461.     fmove.x    fp2,fp0
  4462. L534
  4463. ;        rmin = radius - 0.7071F;
  4464.     fmove.x    fp1,fp3
  4465.     fsub.s    #$.3F350481,fp3
  4466. ;        rmax = radius + 0.7071F;
  4467.     fmove.x    fp1,fp2
  4468.     fadd.s    #$.3F350481,fp2
  4469. ;        rmin2 = rmin*rmin;
  4470.     fmove.x    fp3,fp4
  4471.     fmul.x    fp3,fp4
  4472.     fmove.x    fp4,fp3
  4473. ;        rmax2 = rmax*rmax;
  4474.     fmove.x    fp2,fp5
  4475.     fmul.x    fp2,fp5
  4476. ;        cscale = 256.0F / (rmax2-rmin2);
  4477.     fmove.x    fp5,fp4
  4478.     fsub.x    fp3,fp4
  4479.     fmove.s    #$.43800000,fp2
  4480.     fdiv.x    fp4,fp2
  4481.     fmove.x    fp2,fp4
  4482. ;        xmin = (GLint) (VB->Win[i][0] - radius);
  4483.     move.l    -4(a5),a1
  4484.     lea    $5E80(a1),a0
  4485.     move.l    d2,d0
  4486.     muls.l    #$C,d0
  4487.     add.l    d0,a0
  4488.     fmove.s    (a0),fp2
  4489.     fsub.x    fp1,fp2
  4490.     fmove.l    fp2,d0
  4491.     move.l    d0,-$34(a5)
  4492. ;        xmax = (GLint) (VB->Win[i][0] + radius);
  4493.     move.l    -4(a5),a1
  4494.     lea    $5E80(a1),a0
  4495.     move.l    d2,d0
  4496.     muls.l    #$C,d0
  4497.     add.l    d0,a0
  4498.     fmove.s    (a0),fp2
  4499.     fadd.x    fp1,fp2
  4500.     fmove.l    fp2,d0
  4501.     move.l    d0,-$3C(a5)
  4502. ;        ymin = (GLint) (VB->Win[i][1] - radius);
  4503.     move.l    -4(a5),a1
  4504.     lea    $5E80(a1),a0
  4505.     move.l    d2,d0
  4506.     muls.l    #$C,d0
  4507.     add.l    d0,a0
  4508.     addq.w    #4,a0
  4509.     fmove.s    (a0),fp2
  4510.     fsub.x    fp1,fp2
  4511.     fmove.l    fp2,d1
  4512. ;        ymax = (GLint) (VB->Win[i][1] + radius);
  4513.     move.l    -4(a5),a1
  4514.     lea    $5E80(a1),a0
  4515.     move.l    d2,d0
  4516.     muls.l    #$C,d0
  4517.     add.l    d0,a0
  4518.     addq.w    #4,a0
  4519.     fmove.s    (a0),fp2
  4520.     fadd.x    fp1,fp2
  4521.     fmove.l    fp2,d0
  4522.     move.l    d0,-$40(a5)
  4523. ;        z = (GLint) (VB->Win[i][2] + ctx->PointZoffset);
  4524.     move.l    -4(a5),a1
  4525.     lea    $5E80(a1),a0
  4526.     move.l    d2,d0
  4527.     muls.l    #$C,d0
  4528.     add.l    d0,a0
  4529.     addq.w    #$8,a0
  4530.     fmove.s    (a0),fp1
  4531.     move.l    $8(a5),a0
  4532.     add.l    #$E0A4,a0
  4533.     fmove.s    (a0),fp2
  4534.     fadd.x    fp2,fp1
  4535.     fmove.l    fp1,d0
  4536.     move.l    d0,-$4C(a5)
  4537. ;        red   = VB->Color[i][0];
  4538.     move.l    -4(a5),a1
  4539.     add.l    #$9D80,a1
  4540.     move.l    (a1),a0
  4541.     lea    0(a0,d2.l*4),a0
  4542.     move.b    (a0),d0
  4543.     and.l    #$FF,d0
  4544.     move.l    d0,-$50(a5)
  4545. ;        green = VB->Color[i][1];
  4546.     move.l    -4(a5),a1
  4547.     add.l    #$9D80,a1
  4548.     move.l    (a1),a0
  4549.     lea    0(a0,d2.l*4),a0
  4550.     addq.w    #1,a0
  4551.     move.b    (a0),d0
  4552.     and.l    #$FF,d0
  4553.     move.l    d0,-$54(a5)
  4554. ;        blue  = VB->Color[i][2];
  4555.     move.l    -4(a5),a1
  4556.     add.l    #$9D80,a1
  4557.     move.l    (a1),a0
  4558.     lea    0(a0,d2.l*4),a0
  4559.     addq.w    #2,a0
  4560.     move.b    (a0),d0
  4561.     and.l    #$FF,d0
  4562.     move.l    d0,-$58(a5)
  4563. ;        for (y=ymin;
  4564.     move.l    d1,d3
  4565.     bra    L543
  4566. L535
  4567. ;           for (x=xmin;
  4568.     move.l    -$34(a5),d1
  4569.     bra    L541
  4570. L536
  4571. ;          GLfloat dx = x/*+0.5F*/ - VB->Win[i][0];
  4572.     fmove.l    d1,fp1
  4573.     move.l    -4(a5),a1
  4574.     lea    $5E80(a1),a0
  4575.     move.l    d2,d0
  4576.     muls.l    #$C,d0
  4577.     add.l    d0,a0
  4578.     fmove.s    (a0),fp2
  4579.     fsub.x    fp2,fp1
  4580. ;          GLfloat dy = y/*+0.5F*/ - VB->Win[i][1];
  4581.     fmove.l    d3,fp2
  4582.     move.l    -4(a5),a1
  4583.     lea    $5E80(a1),a0
  4584.     move.l    d2,d0
  4585.     muls.l    #$C,d0
  4586.     add.l    d0,a0
  4587.     addq.w    #4,a0
  4588.     move.l    (a0),-$90(a5)
  4589.     fsub.s    -$90(a5),fp2
  4590. ;          GLfloat dist2 = dx*dx + dy*dy;
  4591.     fmove.x    fp1,fp6
  4592.     fmul.x    fp1,fp6
  4593.     fmove.x    fp6,fp1
  4594.     fmove.x    fp2,fp6
  4595.     fmul.x    fp2,fp6
  4596.     fmove.x    fp6,fp2
  4597.     fadd.x    fp2,fp1
  4598. ;          if (dist2<rmax2) 
  4599.     fcmp.x    fp5,fp1
  4600.     fboge.b    L540
  4601. L537
  4602. ;              alpha = VB->Color[i][3];
  4603.     move.l    -4(a5),a1
  4604.     add.l    #$9D80,a1
  4605.     move.l    (a1),a0
  4606.     lea    0(a0,d2.l*4),a0
  4607.     addq.w    #3,a0
  4608.     move.b    (a0),d0
  4609.     and.l    #$FF,d0
  4610. ;             if (dist2>=rmin2) 
  4611.     fcmp.x    fp3,fp1
  4612.     fbolt.b    L539
  4613. L538
  4614. ;            GLint coverage = (GLint) (256.0F-(dist2-rmin2)*cscale);
  4615.     fsub.x    fp3,fp1
  4616.     fmul.x    fp4,fp1
  4617.     fmove.s    #$.43800000,fp2
  4618.     fsub.x    fp1,fp2
  4619.     fmove.x    fp2,fp1
  4620.     fmove.l    fp1,d4
  4621. ;            alpha = (alpha * coverage) >> 8;
  4622.     muls.l    d4,d0
  4623.     moveq    #$8,d4
  4624.     asr.l    d4,d0
  4625. L539
  4626. ;             alpha*=alphaf;
  4627.     fmove.l    d0,fp1
  4628.     fmul.x    fp0,fp1
  4629.     fmove.l    fp1,d0
  4630. ;E_RGBA_PIXEL( PB,
  4631.     move.l    a2,a0
  4632.     add.l    #$27D94,a0
  4633.     move.l    (a0),d4
  4634.     lea    0(a2,d4.l*4),a0
  4635.     move.l    d1,(a0)
  4636. ;E_RGBA_PIXEL( PB,
  4637.     lea    $4B00(a2),a0
  4638.     move.l    a2,a1
  4639.     add.l    #$27D94,a1
  4640.     move.l    (a1),d4
  4641.     lea    0(a0,d4.l*4),a0
  4642.     move.l    d3,(a0)
  4643. ;E_RGBA_PIXEL( PB,
  4644.     move.w    -$4A(a5),d5
  4645.     move.l    a2,a0
  4646.     add.l    #$9600,a0
  4647.     lea    (a0),a0
  4648.     move.l    a2,a1
  4649.     add.l    #$27D94,a1
  4650.     move.l    (a1),d4
  4651.     lea    0(a0,d4.l*2),a0
  4652.     move.w    d5,(a0)
  4653. ;E_RGBA_PIXEL( PB,
  4654.     move.b    -$4D(a5),d5
  4655.     move.l    a2,a0
  4656.     add.l    #$BB80,a0
  4657.     lea    (a0),a0
  4658.     move.l    a2,a1
  4659.     add.l    #$27D94,a1
  4660.     move.l    (a1),d4
  4661.     add.l    d4,a0
  4662.     move.b    d5,(a0)
  4663. ;E_RGBA_PIXEL( PB,
  4664.     move.b    -$51(a5),d5
  4665.     move.l    a2,a0
  4666.     add.l    #$CE40,a0
  4667.     lea    (a0),a0
  4668.     move.l    a2,a1
  4669.     add.l    #$27D94,a1
  4670.     move.l    (a1),d4
  4671.     add.l    d4,a0
  4672.     move.b    d5,(a0)
  4673. ;E_RGBA_PIXEL( PB,
  4674.     move.b    -$55(a5),d5
  4675.     move.l    a2,a0
  4676.     add.l    #$E100,a0
  4677.     lea    (a0),a0
  4678.     move.l    a2,a1
  4679.     add.l    #$27D94,a1
  4680.     move.l    (a1),d4
  4681.     add.l    d4,a0
  4682.     move.b    d5,(a0)
  4683. ;E_RGBA_PIXEL( PB,
  4684.     move.b    d0,d4
  4685.     move.l    a2,a0
  4686.     add.l    #$F3C0,a0
  4687.     lea    (a0),a0
  4688.     move.l    a2,a1
  4689.     add.l    #$27D94,a1
  4690.     move.l    (a1),d0
  4691.     add.l    d0,a0
  4692.     move.b    d4,(a0)
  4693. ;E_RGBA_PIXEL( PB,
  4694.     move.l    a2,a0
  4695.     add.l    #$27D94,a0
  4696.     move.l    (a0),d0
  4697.     addq.l    #1,d0
  4698.     move.l    a2,a0
  4699.     add.l    #$27D94,a0
  4700.     move.l    d0,(a0)
  4701. L540
  4702.     addq.l    #1,d1
  4703. L541
  4704.     cmp.l    -$3C(a5),d1
  4705.     ble    L536
  4706. L542
  4707.     addq.l    #1,d3
  4708. L543
  4709.     cmp.l    -$40(a5),d3
  4710.     ble    L535
  4711. L544
  4712. ;        PB_CHECK_FLUSH(ctx,PB)
  4713.     move.l    a2,a0
  4714.     add.l    #$27D94,a0
  4715.     move.l    (a0),d0
  4716.     cmp.l    #$C80,d0
  4717.     blo.b    L546
  4718. L545
  4719. ;        PB_CHECK_FLUSH(ctx,PB)
  4720.     move.l    $8(a5),-(a7)
  4721.     jsr    _gl_flush_pb
  4722.     addq.w    #4,a7
  4723. L546
  4724.     addq.l    #1,d2
  4725. L547
  4726.     cmp.l    $10(a5),d2
  4727.     bls    L524
  4728. L548
  4729.     fmovem.x (a7)+,fp2/fp3/fp4/fp5/fp6
  4730.     movem.l    (a7)+,d2-d5/a2
  4731.     unlk    a5
  4732.     rts
  4733.  
  4734.     SECTION "_gl_set_point_function:0",CODE
  4735.  
  4736.  
  4737. ;void gl_set_point_function( GLcontext *ctx )
  4738.     XDEF    _gl_set_point_function
  4739. _gl_set_point_function
  4740.     move.l    4(a7),a0
  4741. L550
  4742. ;   GLboolean rgbmode = ctx->Visual->RGBAflag;
  4743.     move.l    $898(a0),a1
  4744.     move.b    (a1),d0
  4745. ;   if (ctx->RenderMode==GL_RENDER) 
  4746.     move.l    a0,a1
  4747.     add.l    #$E086,a1
  4748.     move.l    (a1),d1
  4749.     cmp.l    #$1C00,d1
  4750.     bne    L583
  4751. L551
  4752. ;      if (ctx->NoRaster) 
  4753.     move.l    a0,a1
  4754.     add.l    #$E0C8,a1
  4755.     move.b    (a1),d1
  4756.     beq.b    L553
  4757. L552
  4758. ;     ctx->Driver.PointsFunc = null_points;
  4759.     move.l    #_null_points,$92C(a0)
  4760.     rts
  4761. L553
  4762. ;      if (ctx->Driver.PointsFunc) 
  4763.     lea    $8A0(a0),a1
  4764.     move.l    $8C(a1),a1
  4765.     cmp.w    #0,a1
  4766.     beq.b    L555
  4767. L554
  4768. ;     ctx->Driver.PointsFunc = ctx->Driver.PointsFunc;
  4769.     lea    $8A0(a0),a1
  4770.     move.l    $8C(a1),a1
  4771.     move.l    a1,$92C(a0)
  4772.     bra    L582
  4773. L555
  4774. ;      else if (ctx->Point.Params[0]==1.0 && ctx->Point.Pa
  4775.     move.l    a0,a1
  4776.     add.l    #$D658,a1
  4777.     lea    (a1),a1
  4778.     fmove.s    (a1),fp0
  4779.     fcmp.d    #$.3FF00000.00000000,fp0
  4780.     fbne.b    L573
  4781. L556
  4782.     move.l    a0,a1
  4783.     add.l    #$D658,a1
  4784.     lea    (a1),a1
  4785.     addq.w    #4,a1
  4786.     fmove.s    (a1),fp0
  4787.     ftst.d    fp0
  4788.     fbne.b    L573
  4789. L557
  4790.     move.l    a0,a1
  4791.     add.l    #$D658,a1
  4792.     lea    (a1),a1
  4793.     addq.w    #$8,a1
  4794.     fmove.s    (a1),fp0
  4795.     ftst.d    fp0
  4796.     fbne.b    L573
  4797. L558
  4798. ;     if (ctx->Point.SmoothFlag && rgbmode) 
  4799.     move.l    a0,a1
  4800.     add.l    #$D652,a1
  4801.     lea    (a1),a1
  4802.     move.b    (a1),d1
  4803.     beq.b    L561
  4804. L559
  4805.     tst.b    d0
  4806.     beq.b    L561
  4807. L560
  4808. ;        ctx->Driver.PointsFunc = antialiased_rgba_points;
  4809.     move.l    #_antialiased_rgba_points,$92C(a0)
  4810.     bra.b    L572
  4811. L561
  4812. ;     else if (ctx->Texture.Enabled) 
  4813.     move.l    a0,a1
  4814.     add.l    #$D73C,a1
  4815.     lea    (a1),a1
  4816.     move.l    (a1),d1
  4817.     beq.b    L563
  4818. L562
  4819. ;        ctx->Driver.PointsFunc = textured_rgba_points;
  4820.     move.l    #_textured_rgba_points,$92C(a0)
  4821.     bra.b    L572
  4822. L563
  4823. ;     else if (ctx->Point.Size==1.0) 
  4824.     move.l    a0,a1
  4825.     add.l    #$D652,a1
  4826.     lea    (a1),a1
  4827.     fmove.s    2(a1),fp0
  4828.     fcmp.d    #$.3FF00000.00000000,fp0
  4829.     fbne.b    L568
  4830. L564
  4831. ;        ctx->Driver.PointsFunc = rgbmode ? (points_func)size1_rgba
  4832.     tst.b    d0
  4833.     beq.b    L566
  4834. L565
  4835.     move.l    #_size1_rgba_points,a1
  4836.     bra.b    L567
  4837. L566
  4838.     move.l    #_size1_ci_points,a1
  4839. L567
  4840.     move.l    a1,$92C(a0)
  4841.     bra.b    L572
  4842. L568
  4843. ;        ctx->Driver.PointsFunc = rgbmode ? (points_func)general_rg
  4844.     tst.b    d0
  4845.     beq.b    L570
  4846. L569
  4847.     move.l    #_general_rgba_points,a1
  4848.     bra.b    L571
  4849. L570
  4850.     move.l    #_general_ci_points,a1
  4851. L571
  4852.     move.l    a1,$92C(a0)
  4853. L572
  4854.     bra.b    L582
  4855. L573
  4856. ;      else if(ctx->Point.SmoothFlag && rgbmode) 
  4857.     move.l    a0,a1
  4858.     add.l    #$D652,a1
  4859.     lea    (a1),a1
  4860.     move.b    (a1),d1
  4861.     beq.b    L576
  4862. L574
  4863.     tst.b    d0
  4864.     beq.b    L576
  4865. L575
  4866. ;     ctx->Driver.PointsFunc = dist_atten_antialiased_rgba_points;
  4867.     move.l    #_dist_atten_antialiased_rgba_points,$92C(a0)
  4868.     bra.b    L582
  4869. L576
  4870. ;      else if (ctx->Texture.Enabled) 
  4871.     move.l    a0,a1
  4872.     add.l    #$D73C,a1
  4873.     lea    (a1),a1
  4874.     move.l    (a1),d1
  4875.     beq.b    L578
  4876. L577
  4877. ;     ctx->Driver.PointsFunc = dist_atten_textured_rgba_points;
  4878.     move.l    #_dist_atten_textured_rgba_points,$92C(a0)
  4879.     bra.b    L582
  4880. L578
  4881. ;     ctx->Driver.PointsFunc = rgbmode ? (points_func)dist_atten_gener
  4882.     tst.b    d0
  4883.     beq.b    L580
  4884. L579
  4885.     move.l    #_dist_atten_general_rgba_points,a1
  4886.     bra.b    L581
  4887. L580
  4888.     move.l    #_dist_atten_general_ci_points,a1
  4889. L581
  4890.     move.l    a1,$92C(a0)
  4891. L582
  4892.     bra.b    L586
  4893. L583
  4894. ;   else if (ctx->RenderMode==GL_FEEDBACK) 
  4895.     move.l    a0,a1
  4896.     add.l    #$E086,a1
  4897.     move.l    (a1),d0
  4898.     cmp.l    #$1C01,d0
  4899.     bne.b    L585
  4900. L584
  4901. ;      ctx->Driver.PointsFunc = feedback_points;
  4902.     move.l    #_feedback_points,$92C(a0)
  4903.     bra.b    L586
  4904. L585
  4905. ;      ctx->Driver.PointsFunc = select_points;
  4906.     move.l    #_select_points,$92C(a0)
  4907. L586
  4908.     rts
  4909.  
  4910.     END
  4911.