Quake-2

Quake 2 GPL Source Release
Log | Files | Refs

r_varsa.s (5313B)


      1 //
      2 // r_varsa.s
      3 //
      4 
      5 #include "qasm.h"
      6 #include "d_ifacea.h"
      7 
      8 #if id386
      9 
     10 	.data
     11 
     12 //-------------------------------------------------------
     13 // ASM-only variables
     14 //-------------------------------------------------------
     15 .globl	float_1, float_particle_z_clip, float_point5
     16 .globl	float_minus_1, float_0
     17 float_0:		.single	0.0
     18 float_1:		.single	1.0
     19 float_minus_1:	.single	-1.0
     20 float_particle_z_clip:	.single	PARTICLE_Z_CLIP
     21 float_point5:	.single	0.5
     22 
     23 .globl	fp_16, fp_64k, fp_1m, fp_64kx64k
     24 .globl	fp_1m_minus_1
     25 .globl	fp_8 
     26 fp_1m:			.single	1048576.0
     27 fp_1m_minus_1:	.single	1048575.0
     28 fp_64k:			.single	65536.0
     29 fp_8:			.single	8.0
     30 fp_16:			.single	16.0
     31 fp_64kx64k:		.long	0x4f000000	// (float)0x8000*0x10000
     32 
     33 
     34 .globl	FloatZero, Float2ToThe31nd, FloatMinus2ToThe31nd
     35 FloatZero:				.long	0
     36 Float2ToThe31nd:		.long	0x4f000000
     37 FloatMinus2ToThe31nd:	.long	0xcf000000
     38 
     39 .globl	C(r_bmodelactive)
     40 C(r_bmodelactive):	.long	0
     41 
     42 //-------------------------------------------------------
     43 // global refresh variables
     44 //-------------------------------------------------------
     45 
     46 // FIXME: put all refresh variables into one contiguous block. Make into one
     47 // big structure, like cl or sv?
     48 
     49 	.align	4
     50 .globl	C(d_sdivzstepu)
     51 .globl	C(d_tdivzstepu)
     52 .globl	C(d_zistepu)
     53 .globl	C(d_sdivzstepv)
     54 .globl	C(d_tdivzstepv)
     55 .globl	C(d_zistepv)
     56 .globl	C(d_sdivzorigin)
     57 .globl	C(d_tdivzorigin)
     58 .globl	C(d_ziorigin)
     59 C(d_sdivzstepu):	.single	0
     60 C(d_tdivzstepu):	.single	0
     61 C(d_zistepu):		.single	0
     62 C(d_sdivzstepv):	.single	0
     63 C(d_tdivzstepv):	.single	0
     64 C(d_zistepv):		.single	0
     65 C(d_sdivzorigin):	.single	0
     66 C(d_tdivzorigin):	.single	0
     67 C(d_ziorigin):		.single	0
     68 
     69 .globl	C(sadjust)
     70 .globl	C(tadjust)
     71 .globl	C(bbextents)
     72 .globl	C(bbextentt)
     73 C(sadjust):			.long	0
     74 C(tadjust):			.long	0
     75 C(bbextents):		.long	0
     76 C(bbextentt):		.long	0
     77 
     78 .globl	C(cacheblock)
     79 .globl	C(d_viewbuffer)
     80 .globl	C(cachewidth)
     81 .globl	C(d_pzbuffer)
     82 .globl	C(d_zrowbytes)
     83 .globl	C(d_zwidth)
     84 C(cacheblock):		.long	0
     85 C(cachewidth):		.long	0
     86 C(d_viewbuffer):	.long	0
     87 C(d_pzbuffer):		.long	0
     88 C(d_zrowbytes):		.long	0
     89 C(d_zwidth):		.long	0
     90 
     91 
     92 //-------------------------------------------------------
     93 // ASM-only variables
     94 //-------------------------------------------------------
     95 .globl	izi
     96 izi:			.long	0
     97 
     98 .globl	pbase, s, t, sfracf, tfracf, snext, tnext
     99 .globl	spancountminus1, zi16stepu, sdivz16stepu, tdivz16stepu
    100 .globl	zi8stepu, sdivz8stepu, tdivz8stepu, pz
    101 s:				.long	0
    102 t:				.long	0
    103 snext:			.long	0
    104 tnext:			.long	0
    105 sfracf:			.long	0
    106 tfracf:			.long	0
    107 pbase:			.long	0
    108 zi8stepu:		.long	0
    109 sdivz8stepu:	.long	0
    110 tdivz8stepu:	.long	0
    111 zi16stepu:		.long	0
    112 sdivz16stepu:	.long	0
    113 tdivz16stepu:	.long	0
    114 spancountminus1: .long	0
    115 pz:				.long	0
    116 
    117 .globl	izistep
    118 izistep:				.long	0
    119 
    120 //-------------------------------------------------------
    121 // local variables for d_draw16.s
    122 //-------------------------------------------------------
    123 
    124 .globl	reciprocal_table_16, entryvec_table_16
    125 // 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8, 1/9, 1/10, 1/11, 1/12, 1/13,
    126 // 1/14, and 1/15 in 0.32 form
    127 reciprocal_table_16:	.long	0x40000000, 0x2aaaaaaa, 0x20000000
    128 						.long	0x19999999, 0x15555555, 0x12492492
    129 						.long	0x10000000, 0xe38e38e, 0xccccccc, 0xba2e8ba
    130 						.long	0xaaaaaaa, 0x9d89d89, 0x9249249, 0x8888888
    131 
    132 #ifndef NeXT
    133 	.extern Entry2_16
    134 	.extern Entry3_16
    135 	.extern Entry4_16
    136 	.extern Entry5_16
    137 	.extern Entry6_16
    138 	.extern Entry7_16
    139 	.extern Entry8_16
    140 	.extern Entry9_16
    141 	.extern Entry10_16
    142 	.extern Entry11_16
    143 	.extern Entry12_16
    144 	.extern Entry13_16
    145 	.extern Entry14_16
    146 	.extern Entry15_16
    147 	.extern Entry16_16
    148 #endif
    149 
    150 entryvec_table_16:	.long	0, Entry2_16, Entry3_16, Entry4_16
    151 					.long	Entry5_16, Entry6_16, Entry7_16, Entry8_16
    152 					.long	Entry9_16, Entry10_16, Entry11_16, Entry12_16
    153 					.long	Entry13_16, Entry14_16, Entry15_16, Entry16_16
    154 
    155 //-------------------------------------------------------
    156 // local variables for d_parta.s
    157 //-------------------------------------------------------
    158 .globl	DP_Count, DP_u, DP_v, DP_32768, DP_Color, DP_Pix, DP_EntryTable
    159 DP_Count:		.long	0
    160 DP_u:			.long	0
    161 DP_v:			.long	0
    162 DP_32768:		.single	32768.0
    163 DP_Color:		.long	0
    164 DP_Pix:			.long	0
    165 
    166 
    167 #if 0
    168 	.extern DP_1x1
    169 	.extern DP_2x2
    170 	.extern DP_3x3
    171 	.extern DP_4x4
    172 
    173 DP_EntryTable:	.long	DP_1x1, DP_2x2, DP_3x3, DP_4x4
    174 #endif
    175 
    176 //
    177 // advancetable is 8 bytes, but points to the middle of that range so negative
    178 // offsets will work
    179 //
    180 .globl	advancetable, sstep, tstep, pspantemp, counttemp, jumptemp
    181 advancetable:	.long	0, 0
    182 sstep:			.long	0
    183 tstep:			.long	0
    184 
    185 pspantemp:		.long	0
    186 counttemp:		.long	0
    187 jumptemp:		.long	0
    188 
    189 // 1/2, 1/3, 1/4, 1/5, 1/6, and 1/7 in 0.32 form
    190 .globl	reciprocal_table, entryvec_table
    191 reciprocal_table:	.long	0x40000000, 0x2aaaaaaa, 0x20000000
    192 					.long	0x19999999, 0x15555555, 0x12492492
    193 
    194 #if 0
    195 	.extern Entry2_8
    196 	.extern Entry3_8
    197 	.extern Entry4_8
    198 	.extern Entry5_8
    199 	.extern Entry6_8
    200 	.extern Entry7_8
    201 	.extern Entry8_8
    202 
    203 entryvec_table:	.long	0, Entry2_8, Entry3_8, Entry4_8
    204 				.long	Entry5_8, Entry6_8, Entry7_8, Entry8_8
    205 #endif
    206 
    207 #ifndef NeXT
    208 	.extern Spr8Entry2_8
    209 	.extern Spr8Entry3_8
    210 	.extern Spr8Entry4_8
    211 	.extern Spr8Entry5_8
    212 	.extern Spr8Entry6_8
    213 	.extern Spr8Entry7_8
    214 	.extern Spr8Entry8_8
    215 #endif
    216 	
    217 .globl spr8entryvec_table
    218 spr8entryvec_table:	.long	0, Spr8Entry2_8, Spr8Entry3_8, Spr8Entry4_8
    219 					.long	Spr8Entry5_8, Spr8Entry6_8, Spr8Entry7_8, Spr8Entry8_8
    220 
    221 #endif	// id386
    222 
    223