Mesa: Makefiles

git-svn-id: svn://kolibrios.org@4632 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Sergey Semyonov (Serge) 2014-03-12 11:41:21 +00:00
parent 7bf3b20fcc
commit d2cab8fdd5
19 changed files with 1291 additions and 703 deletions

View File

@ -28,7 +28,7 @@ MESA_DEFS+= -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDI
EGL_DEFS = -DHAVE_DRM_PLATFORM -D__unix__ -DMESA_EGL_NO_X11_HEADERS -D_EGL_BUILT_IN_DRIVER_DRI2
SUBDIRS = src/egl src/glsl
SUBDIRS = src/egl src/glsl src/mapi src/mesa
# targets

View File

@ -0,0 +1,125 @@
CC = gcc
SRC_DIR:=$(SDK_DIR)/sources
MESA_SRC:= $(SRC_DIR)/Mesa/src
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
CFLAGS_OPT+= -fomit-frame-pointer -mno-ms-bitfields
CFLAGS = -c $(CFLAGS_OPT)
INC_MESA:= -I$(SRC_DIR)/newlib/include -I$(SRC_DIR)/Mesa/include
INC_MESA+= -I./src -I$(MESA_SRC)/glsl -I$(MESA_SRC)/mesa -I$(MESA_SRC)/mapi
MESA_DEFS= -DMESA_DLL -DBUILD_GL32 -DMAPI_MODE_UTIL -DMAPI_TABLE_NUM_STATIC=87 -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_SSE_ASM -DMAPI_TABLE_NUM_DYNAMIC=256
MESA_DEFS+= -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_VERSION=\"9.2.5\" -DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\"
MESA_DEFS+= -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"9.2.5\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
MESA_DEFS+= -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
GLSL_SRC = \
glcpp/glcpp-lex.c \
glcpp/glcpp-parse.c \
glcpp/pp.c \
ast_array_index.cpp \
ast_expr.cpp \
ast_function.cpp \
ast_to_hir.cpp \
ast_type.cpp \
builtin_function.cpp \
builtin_types.cpp \
builtin_variables.cpp \
glsl_lexer.cpp \
glsl_parser.cpp \
glsl_parser_extras.cpp \
glsl_symbol_table.cpp \
glsl_types.cpp \
hir_field_selection.cpp \
ir.cpp \
ir_basic_block.cpp \
ir_builder.cpp \
ir_clone.cpp \
ir_constant_expression.cpp \
ir_expression_flattening.cpp \
ir_function.cpp \
ir_function_can_inline.cpp \
ir_function_detect_recursion.cpp\
ir_hierarchical_visitor.cpp \
ir_hv_accept.cpp \
ir_import_prototypes.cpp \
ir_print_visitor.cpp \
ir_reader.cpp \
ir_rvalue_visitor.cpp \
ir_set_program_inouts.cpp \
ir_validate.cpp \
ir_variable_refcount.cpp \
link_functions.cpp \
link_interface_blocks.cpp \
link_uniform_block_active_visitor.cpp \
link_uniform_blocks.cpp \
link_uniform_initializers.cpp \
link_uniforms.cpp \
link_varyings.cpp \
linker.cpp \
loop_analysis.cpp \
loop_controls.cpp \
loop_unroll.cpp \
lower_clip_distance.cpp \
lower_discard.cpp \
lower_discard_flow.cpp \
lower_if_to_cond_assign.cpp \
lower_instructions.cpp \
lower_jumps.cpp \
lower_mat_op_to_vec.cpp \
lower_named_interface_blocks.cpp\
lower_noise.cpp \
lower_output_reads.cpp \
lower_packed_varyings.cpp \
lower_packing_builtins.cpp \
lower_texture_projection.cpp \
lower_ubo_reference.cpp \
lower_variable_index_to_cond_assign.cpp \
lower_vec_index_to_cond_assign.cpp \
lower_vec_index_to_swizzle.cpp \
lower_vector.cpp \
lower_vector_insert.cpp \
opt_algebraic.cpp \
opt_array_splitting.cpp \
opt_constant_folding.cpp \
opt_constant_propagation.cpp \
opt_constant_variable.cpp \
opt_copy_propagation.cpp \
opt_copy_propagation_elements.cpp \
opt_dead_builtin_varyings.cpp \
opt_dead_code.cpp \
opt_dead_code_local.cpp \
opt_dead_functions.cpp \
opt_flatten_nested_if_blocks.cpp\
opt_flip_matrices.cpp \
opt_function_inlining.cpp \
opt_if_simplification.cpp \
opt_noop_swizzle.cpp \
opt_redundant_jumps.cpp \
opt_structure_splitting.cpp \
opt_swizzle_swizzle.cpp \
opt_tree_grafting.cpp \
ralloc.c \
s_expression.cpp \
strtod.c \
$(NULL)
GLSL_OBJS = $(patsubst %.cpp, %.o, $(patsubst %.c, %.o, $(GLSL_SRC)))
# targets
all: libglsl.a
libglsl.a : $(GLSL_OBJS) Makefile
ar cvrs libglsl.a $(GLSL_OBJS)
mv -f libglsl.a $(SDK_DIR)/lib
%.o : %.c Makefile
$(CC) $(CFLAGS) -std=c99 $(MESA_DEFS) $(INC_MESA) -o $@ $<
%.o : %.cpp Makefile
$(CC) $(CFLAGS) $(MESA_DEFS) $(INC_MESA) -o $@ $<

View File

@ -0,0 +1,58 @@
CC = gcc
SRC_DIR:=$(SDK_DIR)/sources
MESA_SRC:= $(SRC_DIR)/Mesa/src
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
CFLAGS_OPT+= -fomit-frame-pointer -mno-ms-bitfields
CFLAGS = -c $(CFLAGS_OPT)
LD = ld
LDFLAGS = -nostdlib -shared -s --image-base 0 -T $(SRC_DIR)/newlib/dll.lds --out-implib libGL.dll.a -e _DllStartup
STRIP = $(PREFIX)strip
INC_MESA:= -I$(SRC_DIR)/newlib/include -I$(SRC_DIR)/Mesa/include
INC_MESA+= -I./src -I$(MESA_SRC)/glsl -I$(MESA_SRC)/mesa -I$(MESA_SRC)/mapi
LIBPATH:= -L$(SDK_DIR)/lib
LIBS:= -ldll -ldrm.dll -lc.dll -lgcc
MESA_DEFS= -DMESA_DLL -DBUILD_GL32 -DMAPI_MODE_UTIL -DMAPI_TABLE_NUM_STATIC=87 -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_SSE_ASM -DMAPI_TABLE_NUM_DYNAMIC=256
MESA_DEFS+= -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_VERSION=\"9.2.5\" -DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\"
MESA_DEFS+= -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"9.2.5\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
MESA_DEFS+= -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -D_GLAPI_DLL_EXPORTS
LIBGL_SRC = \
glapi/glapi.c \
glapi/glapi_dispatch.c \
glapi/glapi_entrypoint.c \
glapi/glapi_getproc.c \
glapi/glapi_nop.c \
glapi/glapi_x86.S \
u_current.c \
u_execmem.c \
$(NULL)
LIBGL_OBJS = $(patsubst %.c, %.o, $(patsubst %.S, %.o, $(LIBGL_SRC)))
# targets
all: libGL.dll
libGL.dll: $(LIBGL_OBJS) Makefile
$(LD) $(LDFLAGS) $(LIBPATH) -o $@ $(LIBGL_OBJS) $(LIBS)
$(STRIP) $@
mv -f $@ $(SDK_DIR)/bin
mv -f libGL.dll.a $(SDK_DIR)/lib
%.o : %.c Makefile
$(CC) $(CFLAGS) -std=c99 $(MESA_DEFS) $(INC_MESA) -o $@ $<
%.o : %.S Makefile
$(CC) -c -save-temps -U_WIN32 -I $(MESA_SRC)/mesa -o $@ $<

View File

@ -0,0 +1,395 @@
CC = gcc
SRC_DIR:=$(SDK_DIR)/sources
MESA_SRC:= $(SRC_DIR)/Mesa/src
CFLAGS_OPT = -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -U_MSC_VER -Os
CFLAGS_OPT+= -fomit-frame-pointer -mno-ms-bitfields -save-temps
CFLAGS = -c $(CFLAGS_OPT)
LD = ld
LDFLAGS = -nostdlib -shared -s --image-base 0 -T $(SRC_DIR)/newlib/dll.lds -e _DllStartup
STRIP = $(PREFIX)strip
INC_MESA:= -I$(SRC_DIR)/newlib/include -I$(SRC_DIR)/Mesa/include
INC_MESA+= -I./ -I$(MESA_SRC)/glsl -I$(MESA_SRC)/mesa -I$(MESA_SRC)/mapi
INC_MESA+= -I$(SRC_DIR)/libdrm -I$(MESA_SRC) -I$(SRC_DIR)/expat/lib
INC_I965:= -I$(SRC_DIR)/libdrm/intel -I$(SRC_DIR)/libdrm/include/drm -I$(MESA_SRC)/mesa/drivers/dri/common
LIBPATH:= -L$(SDK_DIR)/lib
LIBS:= -ldll -lglsl -lGL.dll -lsupc++ -lgcc_eh -ldrm.dll -lexpat -lc.dll -lgcc
MESA_DEFS= -DMESA_DLL -DBUILD_GL32 -DMAPI_MODE_UTIL -DMAPI_TABLE_NUM_STATIC=87 -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_SSE_ASM -DMAPI_TABLE_NUM_DYNAMIC=256
MESA_DEFS+= -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_VERSION=\"9.2.5\" -DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\"
MESA_DEFS+= -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"9.2.5\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
MESA_DEFS+= -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -D_GLAPI_DLL_EXPORTS
MAIN_SRC = \
drivers/common/driverfuncs.c \
drivers/common/meta.c \
drivers/dri/common/dri_util.c \
drivers/dri/common/utils.c \
drivers/dri/common/xmlconfig.c \
main/accum.c \
main/api_arrayelt.c \
main/api_exec.c \
main/api_loopback.c \
main/api_validate.c \
main/arbprogram.c \
main/arrayobj.c \
main/atifragshader.c \
main/attrib.c \
main/blend.c \
main/bufferobj.c \
main/buffers.c \
main/clear.c \
main/clip.c \
main/colortab.c \
main/condrender.c \
main/context.c \
main/convolve.c \
main/cpuinfo.c \
main/debug.c \
main/depth.c \
main/dlist.c \
main/drawpix.c \
main/drawtex.c \
main/enable.c \
main/enums.c \
main/errors.c \
main/es1_conversion.c \
main/eval.c \
main/execmem.c \
main/extensions.c \
main/ff_fragment_shader.cpp \
main/fbobject.c \
main/feedback.c \
main/ffvertex_prog.c \
main/fog.c \
main/format_pack.c \
main/format_unpack.c \
main/formatquery.c \
main/formats.c \
main/framebuffer.c \
main/get.c \
main/getstring.c \
main/glformats.c \
main/hash.c \
main/hash_table.c \
main/hint.c \
main/histogram.c \
main/image.c \
main/imports.c \
main/light.c \
main/lines.c \
main/matrix.c \
main/mipmap.c \
main/mm.c \
main/multisample.c \
main/pack.c \
main/pbo.c \
main/pixel.c \
main/pixelstore.c \
main/pixeltransfer.c \
main/points.c \
main/polygon.c \
main/querymatrix.c \
main/queryobj.c \
main/rastpos.c \
main/readpix.c \
main/remap.c \
main/renderbuffer.c \
main/samplerobj.c \
main/scissor.c \
main/set.c \
main/shader_query.c \
main/shaderapi.c \
main/shaderobj.c \
main/shared.c \
main/state.c \
main/stencil.c \
main/syncobj.c \
main/texcompress.c \
main/texcompress_cpal.c \
main/texcompress_etc.c \
main/texcompress_fxt1.c \
main/texcompress_rgtc.c \
main/texcompress_s3tc.c \
main/texenv.c \
main/texformat.c \
main/texgen.c \
main/texgetimage.c \
main/teximage.c \
main/texobj.c \
main/texparam.c \
main/texstate.c \
main/texstorage.c \
main/texstore.c \
main/texturebarrier.c \
main/transformfeedback.c \
main/uniform_query.cpp \
main/uniforms.c \
main/varray.c \
main/version.c \
main/viewport.c \
main/vtxfmt.c \
math/m_debug_clip.c \
math/m_debug_norm.c \
math/m_debug_xform.c \
math/m_eval.c \
math/m_matrix.c \
math/m_translate.c \
math/m_vector.c \
math/m_xform.c \
program/arbprogparse.c \
program/ir_to_mesa.cpp \
program/lex.yy.c \
program/prog_cache.c \
program/prog_execute.c \
program/prog_hash_table.c \
program/prog_instruction.c \
program/prog_noise.c \
program/prog_opt_constant_fold.c\
program/prog_optimize.c \
program/prog_parameter.c \
program/prog_parameter_layout.c \
program/prog_print.c \
program/prog_statevars.c \
program/program.c \
program/program_parse.tab.c \
program/program_parse_extra.c \
program/programopt.c \
program/register_allocate.c \
program/sampler.cpp \
program/string_to_uint_map.cpp \
program/symbol_table.c \
swrast/s_aaline.c \
swrast/s_aatriangle.c \
swrast/s_alpha.c \
swrast/s_atifragshader.c \
swrast/s_bitmap.c \
swrast/s_blend.c \
swrast/s_blit.c \
swrast/s_clear.c \
swrast/s_context.c \
swrast/s_copypix.c \
swrast/s_depth.c \
swrast/s_drawpix.c \
swrast/s_feedback.c \
swrast/s_fog.c \
swrast/s_fragprog.c \
swrast/s_lines.c \
swrast/s_logic.c \
swrast/s_masking.c \
swrast/s_points.c \
swrast/s_renderbuffer.c \
swrast/s_span.c \
swrast/s_stencil.c \
swrast/s_texcombine.c \
swrast/s_texfetch.c \
swrast/s_texfilter.c \
swrast/s_texrender.c \
swrast/s_texture.c \
swrast/s_triangle.c \
swrast/s_zoom.c \
swrast_setup/ss_context.c \
swrast_setup/ss_triangle.c \
tnl/t_context.c \
tnl/t_draw.c \
tnl/t_pipeline.c \
tnl/t_rasterpos.c \
tnl/t_vb_fog.c \
tnl/t_vb_light.c \
tnl/t_vb_normals.c \
tnl/t_vb_points.c \
tnl/t_vb_program.c \
tnl/t_vb_render.c \
tnl/t_vb_texgen.c \
tnl/t_vb_texmat.c \
tnl/t_vb_vertex.c \
tnl/t_vertex.c \
tnl/t_vertex_generic.c \
tnl/t_vertex_sse.c \
tnl/t_vp_build.c \
vbo/vbo_context.c \
vbo/vbo_exec.c \
vbo/vbo_exec_api.c \
vbo/vbo_exec_array.c \
vbo/vbo_exec_draw.c \
vbo/vbo_exec_eval.c \
vbo/vbo_noop.c \
vbo/vbo_primitive_restart.c \
vbo/vbo_rebase.c \
vbo/vbo_save.c \
vbo/vbo_save_api.c \
vbo/vbo_save_draw.c \
vbo/vbo_save_loopback.c \
vbo/vbo_split.c \
vbo/vbo_split_copy.c \
vbo/vbo_split_inplace.c \
x86/common_x86.c \
x86/common_x86_asm.S \
x86/mmx_blend.S \
x86/read_rgba_span_x86.S \
x86/rtasm/x86sse.c \
x86/sse.c \
x86/sse_normal.S \
x86/sse_xform1.S \
x86/sse_xform2.S \
x86/sse_xform3.S \
x86/sse_xform4.S \
x86/x86_cliptest.S \
x86/x86_xform.c \
x86/x86_xform2.S \
x86/x86_xform3.S \
x86/x86_xform4.S \
$(NULL)
I965_SRC = \
drivers/dri/i965/intel_batchbuffer.c \
drivers/dri/i965/intel_blit.c \
drivers/dri/i965/intel_buffer_objects.c \
drivers/dri/i965/intel_buffers.c \
drivers/dri/i965/intel_context.c \
drivers/dri/i965/intel_extensions.c \
drivers/dri/i965/intel_fbo.c \
drivers/dri/i965/intel_mipmap_tree.c \
drivers/dri/i965/intel_regions.c \
drivers/dri/i965/intel_resolve_map.c \
drivers/dri/i965/intel_screen.c \
drivers/dri/i965/intel_pixel.c \
drivers/dri/i965/intel_pixel_bitmap.c \
drivers/dri/i965/intel_pixel_copy.c \
drivers/dri/i965/intel_pixel_draw.c \
drivers/dri/i965/intel_pixel_read.c \
drivers/dri/i965/intel_state.c \
drivers/dri/i965/intel_syncobj.c \
drivers/dri/i965/intel_tex.c \
drivers/dri/i965/intel_tex_copy.c \
drivers/dri/i965/intel_tex_image.c \
drivers/dri/i965/intel_tex_subimage.c \
drivers/dri/i965/intel_tex_validate.c \
drivers/dri/i965/brw_blorp.cpp \
drivers/dri/i965/brw_blorp_blit.cpp \
drivers/dri/i965/brw_blorp_clear.cpp \
drivers/dri/i965/brw_cc.c \
drivers/dri/i965/brw_cfg.cpp \
drivers/dri/i965/brw_clear.c \
drivers/dri/i965/brw_clip.c \
drivers/dri/i965/brw_clip_line.c \
drivers/dri/i965/brw_clip_point.c \
drivers/dri/i965/brw_clip_state.c \
drivers/dri/i965/brw_clip_tri.c \
drivers/dri/i965/brw_clip_unfilled.c \
drivers/dri/i965/brw_clip_util.c \
drivers/dri/i965/brw_context.c \
drivers/dri/i965/brw_cubemap_normalize.cpp \
drivers/dri/i965/brw_curbe.c \
drivers/dri/i965/brw_disasm.c \
drivers/dri/i965/brw_draw.c \
drivers/dri/i965/brw_draw_upload.c \
drivers/dri/i965/brw_eu.c \
drivers/dri/i965/brw_eu_compact.c \
drivers/dri/i965/brw_eu_emit.c \
drivers/dri/i965/brw_eu_util.c \
drivers/dri/i965/brw_fs.cpp \
drivers/dri/i965/brw_fs_channel_expressions.cpp \
drivers/dri/i965/brw_fs_copy_propagation.cpp \
drivers/dri/i965/brw_fs_cse.cpp \
drivers/dri/i965/brw_fs_emit.cpp \
drivers/dri/i965/brw_fs_fp.cpp \
drivers/dri/i965/brw_fs_live_variables.cpp \
drivers/dri/i965/brw_fs_reg_allocate.cpp \
drivers/dri/i965/brw_fs_vector_splitting.cpp \
drivers/dri/i965/brw_fs_visitor.cpp \
drivers/dri/i965/brw_gs.c \
drivers/dri/i965/brw_gs_emit.c \
drivers/dri/i965/brw_gs_state.c \
drivers/dri/i965/brw_lower_texture_gradients.cpp \
drivers/dri/i965/brw_misc_state.c \
drivers/dri/i965/brw_program.c \
drivers/dri/i965/brw_primitive_restart.c\
drivers/dri/i965/brw_queryobj.c \
drivers/dri/i965/brw_schedule_instructions.cpp \
drivers/dri/i965/brw_sf.c \
drivers/dri/i965/brw_sf_emit.c \
drivers/dri/i965/brw_sf_state.c \
drivers/dri/i965/brw_shader.cpp \
drivers/dri/i965/brw_state_batch.c \
drivers/dri/i965/brw_state_cache.c \
drivers/dri/i965/brw_state_dump.c \
drivers/dri/i965/brw_state_upload.c \
drivers/dri/i965/brw_surface_formats.c \
drivers/dri/i965/brw_tex.c \
drivers/dri/i965/brw_tex_layout.c \
drivers/dri/i965/brw_urb.c \
drivers/dri/i965/brw_util.c \
drivers/dri/i965/brw_vec4.cpp \
drivers/dri/i965/brw_vec4_copy_propagation.cpp \
drivers/dri/i965/brw_vec4_emit.cpp \
drivers/dri/i965/brw_vec4_live_variables.cpp \
drivers/dri/i965/brw_vec4_reg_allocate.cpp \
drivers/dri/i965/brw_vec4_visitor.cpp \
drivers/dri/i965/brw_vec4_vp.cpp \
drivers/dri/i965/brw_vs.c \
drivers/dri/i965/brw_vs_state.c \
drivers/dri/i965/brw_vs_surface_state.c \
drivers/dri/i965/brw_vtbl.c \
drivers/dri/i965/brw_wm.c \
drivers/dri/i965/brw_wm_iz.cpp \
drivers/dri/i965/brw_wm_sampler_state.c \
drivers/dri/i965/brw_wm_state.c \
drivers/dri/i965/brw_wm_surface_state.c \
drivers/dri/i965/gen6_blorp.cpp \
drivers/dri/i965/gen6_cc.c \
drivers/dri/i965/gen6_clip_state.c \
drivers/dri/i965/gen6_depthstencil.c \
drivers/dri/i965/gen6_gs_state.c \
drivers/dri/i965/gen6_multisample_state.c \
drivers/dri/i965/gen6_queryobj.c \
drivers/dri/i965/gen6_sampler_state.c \
drivers/dri/i965/gen6_scissor_state.c \
drivers/dri/i965/gen6_sf_state.c \
drivers/dri/i965/gen6_sol.c \
drivers/dri/i965/gen6_urb.c \
drivers/dri/i965/gen6_viewport_state.c \
drivers/dri/i965/gen6_vs_state.c \
drivers/dri/i965/gen6_wm_state.c \
drivers/dri/i965/gen7_blorp.cpp \
drivers/dri/i965/gen7_clip_state.c \
drivers/dri/i965/gen7_disable.c \
drivers/dri/i965/gen7_misc_state.c \
drivers/dri/i965/gen7_sampler_state.c \
drivers/dri/i965/gen7_sf_state.c \
drivers/dri/i965/gen7_sol_state.c \
drivers/dri/i965/gen7_urb.c \
drivers/dri/i965/gen7_viewport_state.c \
drivers/dri/i965/gen7_vs_state.c \
drivers/dri/i965/gen7_wm_state.c \
drivers/dri/i965/gen7_wm_surface_state.c\
$(NULL)
MESA_OBJS = $(patsubst %.c, %.o, $(patsubst %.S, %.o, $(patsubst %.cpp, %.o, $(MAIN_SRC))))
I965_OBJS = $(patsubst %.c, %.o, $(patsubst %.cpp, %.o, $(I965_SRC)))
# targets
all: i965_dri.drv
i965_dri.drv: $(I965_OBJS) $(MESA_OBJS) dri.def Makefile
$(LD) $(LDFLAGS) $(LIBPATH) -o $@ $(I965_OBJS) $(MESA_OBJS) dri.def $(LIBS)
$(STRIP) $@
mv -f $@ $(SDK_DIR)/bin
%.o : %.c Makefile
$(CC) $(CFLAGS) -std=c99 $(MESA_DEFS) $(INC_MESA) $(INC_I965) -o $@ $<
%.o : %.S Makefile
$(CC) -c -save-temps -U_WIN32 -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_SSE_ASM -I $(MESA_SRC)/mesa -o $@ $<
%.o : %.cpp Makefile
$(CC) $(CFLAGS) $(MESA_DEFS) $(INC_MESA) $(INC_I965) -o $@ $<

View File

@ -0,0 +1,4 @@
VERSION 6.5
EXPORTS
DllStartup
__driDriverExtensions

View File

@ -1,127 +1,127 @@
i965_INCLUDES = \
$(MESA_TOP)/src \
$(MESA_TOP)/src/mesa/drivers/dri/intel
i965_FILES = \
intel_batchbuffer.c \
intel_blit.c \
intel_buffer_objects.c \
intel_buffers.c \
intel_context.c \
intel_extensions.c \
intel_fbo.c \
intel_mipmap_tree.c \
intel_regions.c \
intel_resolve_map.c \
intel_screen.c \
intel_pixel.c \
intel_pixel_bitmap.c \
intel_pixel_copy.c \
intel_pixel_draw.c \
intel_pixel_read.c \
intel_state.c \
intel_syncobj.c \
intel_tex.c \
intel_tex_copy.c \
intel_tex_image.c \
intel_tex_subimage.c \
intel_tex_validate.c \
brw_blorp.cpp \
brw_blorp_blit.cpp \
brw_blorp_clear.cpp \
brw_cc.c \
brw_cfg.cpp \
brw_clear.c \
brw_clip.c \
brw_clip_line.c \
brw_clip_point.c \
brw_clip_state.c \
brw_clip_tri.c \
brw_clip_unfilled.c \
brw_clip_util.c \
brw_context.c \
brw_cubemap_normalize.cpp \
brw_curbe.c \
brw_disasm.c \
brw_draw.c \
brw_draw_upload.c \
brw_eu.c \
brw_eu_compact.c \
brw_eu_emit.c \
brw_eu_util.c \
brw_fs.cpp \
brw_fs_channel_expressions.cpp \
brw_fs_copy_propagation.cpp \
brw_fs_cse.cpp \
brw_fs_emit.cpp \
brw_fs_fp.cpp \
brw_fs_live_variables.cpp \
brw_fs_reg_allocate.cpp \
brw_fs_vector_splitting.cpp \
brw_fs_visitor.cpp \
brw_gs.c \
brw_gs_emit.c \
brw_gs_state.c \
brw_lower_texture_gradients.cpp \
brw_misc_state.c \
brw_program.c \
brw_primitive_restart.c \
brw_queryobj.c \
brw_schedule_instructions.cpp \
brw_sf.c \
brw_sf_emit.c \
brw_sf_state.c \
brw_shader.cpp \
brw_state_batch.c \
brw_state_cache.c \
brw_state_dump.c \
brw_state_upload.c \
brw_surface_formats.c \
brw_tex.c \
brw_tex_layout.c \
brw_urb.c \
brw_util.c \
brw_vec4.cpp \
brw_vec4_copy_propagation.cpp \
brw_vec4_emit.cpp \
brw_vec4_live_variables.cpp \
brw_vec4_reg_allocate.cpp \
brw_vec4_visitor.cpp \
brw_vec4_vp.cpp \
brw_vs.c \
brw_vs_state.c \
brw_vs_surface_state.c \
brw_vtbl.c \
brw_wm.c \
brw_wm_iz.cpp \
brw_wm_sampler_state.c \
brw_wm_state.c \
brw_wm_surface_state.c \
gen6_blorp.cpp \
gen6_cc.c \
gen6_clip_state.c \
gen6_depthstencil.c \
gen6_gs_state.c \
gen6_multisample_state.c \
gen6_queryobj.c \
gen6_sampler_state.c \
gen6_scissor_state.c \
gen6_sf_state.c \
gen6_sol.c \
gen6_urb.c \
gen6_viewport_state.c \
gen6_vs_state.c \
gen6_wm_state.c \
gen7_blorp.cpp \
gen7_clip_state.c \
gen7_disable.c \
gen7_misc_state.c \
gen7_sampler_state.c \
gen7_sf_state.c \
gen7_sol_state.c \
gen7_urb.c \
gen7_viewport_state.c \
gen7_vs_state.c \
gen7_wm_state.c \
gen7_wm_surface_state.c \
$()
i965_INCLUDES = \
$(MESA_TOP)/src \
$(MESA_TOP)/src/mesa/drivers/dri/intel
i965_FILES = \
intel_batchbuffer.c \
intel_blit.c \
intel_buffer_objects.c \
intel_buffers.c \
intel_context.c \
intel_extensions.c \
intel_fbo.c \
intel_mipmap_tree.c \
intel_regions.c \
intel_resolve_map.c \
intel_screen.c \
intel_pixel.c \
intel_pixel_bitmap.c \
intel_pixel_copy.c \
intel_pixel_draw.c \
intel_pixel_read.c \
intel_state.c \
intel_syncobj.c \
intel_tex.c \
intel_tex_copy.c \
intel_tex_image.c \
intel_tex_subimage.c \
intel_tex_validate.c \
brw_blorp.cpp \
brw_blorp_blit.cpp \
brw_blorp_clear.cpp \
brw_cc.c \
brw_cfg.cpp \
brw_clear.c \
brw_clip.c \
brw_clip_line.c \
brw_clip_point.c \
brw_clip_state.c \
brw_clip_tri.c \
brw_clip_unfilled.c \
brw_clip_util.c \
brw_context.c \
brw_cubemap_normalize.cpp \
brw_curbe.c \
brw_disasm.c \
brw_draw.c \
brw_draw_upload.c \
brw_eu.c \
brw_eu_compact.c \
brw_eu_emit.c \
brw_eu_util.c \
brw_fs.cpp \
brw_fs_channel_expressions.cpp \
brw_fs_copy_propagation.cpp \
brw_fs_cse.cpp \
brw_fs_emit.cpp \
brw_fs_fp.cpp \
brw_fs_live_variables.cpp \
brw_fs_reg_allocate.cpp \
brw_fs_vector_splitting.cpp \
brw_fs_visitor.cpp \
brw_gs.c \
brw_gs_emit.c \
brw_gs_state.c \
brw_lower_texture_gradients.cpp \
brw_misc_state.c \
brw_program.c \
brw_primitive_restart.c \
brw_queryobj.c \
brw_schedule_instructions.cpp \
brw_sf.c \
brw_sf_emit.c \
brw_sf_state.c \
brw_shader.cpp \
brw_state_batch.c \
brw_state_cache.c \
brw_state_dump.c \
brw_state_upload.c \
brw_surface_formats.c \
brw_tex.c \
brw_tex_layout.c \
brw_urb.c \
brw_util.c \
brw_vec4.cpp \
brw_vec4_copy_propagation.cpp \
brw_vec4_emit.cpp \
brw_vec4_live_variables.cpp \
brw_vec4_reg_allocate.cpp \
brw_vec4_visitor.cpp \
brw_vec4_vp.cpp \
brw_vs.c \
brw_vs_state.c \
brw_vs_surface_state.c \
brw_vtbl.c \
brw_wm.c \
brw_wm_iz.cpp \
brw_wm_sampler_state.c \
brw_wm_state.c \
brw_wm_surface_state.c \
gen6_blorp.cpp \
gen6_cc.c \
gen6_clip_state.c \
gen6_depthstencil.c \
gen6_gs_state.c \
gen6_multisample_state.c \
gen6_queryobj.c \
gen6_sampler_state.c \
gen6_scissor_state.c \
gen6_sf_state.c \
gen6_sol.c \
gen6_urb.c \
gen6_viewport_state.c \
gen6_vs_state.c \
gen6_wm_state.c \
gen7_blorp.cpp \
gen7_clip_state.c \
gen7_disable.c \
gen7_misc_state.c \
gen7_sampler_state.c \
gen7_sf_state.c \
gen7_sol_state.c \
gen7_urb.c \
gen7_viewport_state.c \
gen7_vs_state.c \
gen7_wm_state.c \
gen7_wm_surface_state.c \
$()

View File

@ -66,6 +66,7 @@ intelGetString(struct gl_context * ctx, GLenum name)
const struct brw_context *const brw = brw_context(ctx);
const char *chipset;
static char buffer[128];
static char driver_name[] = "i965_dri.drv";
switch (name) {
case GL_VENDOR:
@ -85,6 +86,9 @@ intelGetString(struct gl_context * ctx, GLenum name)
(void) driGetRendererString(buffer, chipset, 0);
return (GLubyte *) buffer;
case 0x1F04: /* GL_DRIVER_NAME */
return (GLubyte*)driver_name;
default:
return NULL;
}

View File

@ -1189,6 +1189,8 @@ __DRIconfig **intelInitScreen2(__DRIscreen *psp)
{
struct intel_screen *intelScreen;
printf("mesa-9.2.5-i965_dri build %s %s\n", __DATE__, __TIME__);
if (psp->dri2.loader->base.version <= 2 ||
psp->dri2.loader->getBuffersWithFormat == NULL) {
fprintf(stderr,

View File

@ -46,9 +46,9 @@
SEG_TEXT
ALIGNTEXT4
GLOBL GLNAME(__mesa_x86_has_cpuid)
HIDDEN(__mesa_x86_has_cpuid)
GLNAME(__mesa_x86_has_cpuid):
GLOBL GLNAME(_mesa_x86_has_cpuid)
HIDDEN(_mesa_x86_has_cpuid)
GLNAME(_mesa_x86_has_cpuid):
/* Test for the CPUID command. If the ID Flag bit in EFLAGS
* (bit 21) is writable, the CPUID command is present */
@ -70,9 +70,9 @@ GLNAME(__mesa_x86_has_cpuid):
ALIGNTEXT4
GLOBL GLNAME(__mesa_x86_cpuid)
HIDDEN(__mesa_x86_cpuid)
GLNAME(__mesa_x86_cpuid):
GLOBL GLNAME(_mesa_x86_cpuid)
HIDDEN(_mesa_x86_cpuid)
GLNAME(_mesa_x86_cpuid):
MOV_L (REGOFF(4, ESP), EAX) /* cpuid op */
PUSH_L (EDI)
@ -94,9 +94,9 @@ GLNAME(__mesa_x86_cpuid):
RET
ALIGNTEXT4
GLOBL GLNAME(__mesa_x86_cpuid_eax)
HIDDEN(__mesa_x86_cpuid_eax)
GLNAME(__mesa_x86_cpuid_eax):
GLOBL GLNAME(_mesa_x86_cpuid_eax)
HIDDEN(_mesa_x86_cpuid_eax)
GLNAME(_mesa_x86_cpuid_eax):
MOV_L (REGOFF(4, ESP), EAX) /* cpuid op */
PUSH_L (EBX)
@ -107,9 +107,9 @@ GLNAME(__mesa_x86_cpuid_eax):
RET
ALIGNTEXT4
GLOBL GLNAME(__mesa_x86_cpuid_ebx)
HIDDEN(__mesa_x86_cpuid_ebx)
GLNAME(__mesa_x86_cpuid_ebx):
GLOBL GLNAME(_mesa_x86_cpuid_ebx)
HIDDEN(_mesa_x86_cpuid_ebx)
GLNAME(_mesa_x86_cpuid_ebx):
MOV_L (REGOFF(4, ESP), EAX) /* cpuid op */
PUSH_L (EBX)
@ -121,9 +121,9 @@ GLNAME(__mesa_x86_cpuid_ebx):
RET
ALIGNTEXT4
GLOBL GLNAME(__mesa_x86_cpuid_ecx)
HIDDEN(__mesa_x86_cpuid_ecx)
GLNAME(__mesa_x86_cpuid_ecx):
GLOBL GLNAME(_mesa_x86_cpuid_ecx)
HIDDEN(_mesa_x86_cpuid_ecx)
GLNAME(_mesa_x86_cpuid_ecx):
MOV_L (REGOFF(4, ESP), EAX) /* cpuid op */
PUSH_L (EBX)
@ -135,9 +135,9 @@ GLNAME(__mesa_x86_cpuid_ecx):
RET
ALIGNTEXT4
GLOBL GLNAME(__mesa_x86_cpuid_edx)
HIDDEN(__mesa_x86_cpuid_edx)
GLNAME(__mesa_x86_cpuid_edx):
GLOBL GLNAME(_mesa_x86_cpuid_edx)
HIDDEN(_mesa_x86_cpuid_edx)
GLNAME(_mesa_x86_cpuid_edx):
MOV_L (REGOFF(4, ESP), EAX) /* cpuid op */
PUSH_L (EBX)
@ -161,9 +161,9 @@ GLNAME(__mesa_x86_cpuid_edx):
* See freedesktop.org bug #1709 for more info.
*/
ALIGNTEXT4
GLOBL GLNAME( __mesa_test_os_sse_support )
HIDDEN(__mesa_test_os_sse_support)
GLNAME( __mesa_test_os_sse_support ):
GLOBL GLNAME( _mesa_test_os_sse_support )
HIDDEN(_mesa_test_os_sse_support)
GLNAME( _mesa_test_os_sse_support ):
XORPS ( XMM0, XMM0 )
@ -176,9 +176,9 @@ GLNAME( __mesa_test_os_sse_support ):
* otherwise this could kill the client application.
*/
ALIGNTEXT4
GLOBL GLNAME( __mesa_test_os_sse_exception_support )
HIDDEN(__mesa_test_os_sse_exception_support)
GLNAME( __mesa_test_os_sse_exception_support ):
GLOBL GLNAME( _mesa_test_os_sse_exception_support )
HIDDEN(_mesa_test_os_sse_exception_support)
GLNAME( _mesa_test_os_sse_exception_support ):
PUSH_L ( EBP )
MOV_L ( ESP, EBP )

View File

@ -12,9 +12,9 @@
*
*/
ALIGNTEXT16
GLOBL GLNAME( TAG(__mesa_mmx_blend) )
HIDDEN( TAG(__mesa_mmx_blend) )
GLNAME( TAG(__mesa_mmx_blend) ):
GLOBL GLNAME( TAG(_mesa_mmx_blend) )
HIDDEN( TAG(_mesa_mmx_blend) )
GLNAME( TAG(_mesa_mmx_blend) ):
PUSH_L ( EBP )
MOV_L ( ESP, EBP )

View File

@ -44,9 +44,9 @@
ALIGNTEXT16
GLOBL GLNAME(__mesa_sse_transform_rescale_normals_no_rot)
HIDDEN(__mesa_sse_transform_rescale_normals_no_rot)
GLNAME(__mesa_sse_transform_rescale_normals_no_rot):
GLOBL GLNAME(_mesa_sse_transform_rescale_normals_no_rot)
HIDDEN(_mesa_sse_transform_rescale_normals_no_rot)
GLNAME(_mesa_sse_transform_rescale_normals_no_rot):
#define FRAME_OFFSET 8
PUSH_L ( ESI )
@ -106,9 +106,9 @@ LLBL(K_G3TRNNRR_finish):
ALIGNTEXT16
GLOBL GLNAME(__mesa_sse_transform_rescale_normals)
HIDDEN(__mesa_sse_transform_rescale_normals)
GLNAME(__mesa_sse_transform_rescale_normals):
GLOBL GLNAME(_mesa_sse_transform_rescale_normals)
HIDDEN(_mesa_sse_transform_rescale_normals)
GLNAME(_mesa_sse_transform_rescale_normals):
#define FRAME_OFFSET 8
PUSH_L ( ESI )
@ -199,9 +199,9 @@ LLBL(K_G3TRNR_finish):
ALIGNTEXT16
GLOBL GLNAME(__mesa_sse_transform_normals_no_rot)
HIDDEN(__mesa_sse_transform_normals_no_rot)
GLNAME(__mesa_sse_transform_normals_no_rot):
GLOBL GLNAME(_mesa_sse_transform_normals_no_rot)
HIDDEN(_mesa_sse_transform_normals_no_rot)
GLNAME(_mesa_sse_transform_normals_no_rot):
#define FRAME_OFFSET 8
PUSH_L ( ESI )

View File

@ -43,9 +43,9 @@
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points1_general)
HIDDEN( __mesa_sse_transform_points1_general )
GLNAME( __mesa_sse_transform_points1_general ):
GLOBL GLNAME(_mesa_sse_transform_points1_general)
HIDDEN( _mesa_sse_transform_points1_general )
GLNAME( _mesa_sse_transform_points1_general ):
#define FRAME_OFFSET 8
PUSH_L ( ESI )
@ -100,9 +100,9 @@ LLBL(K_GTP1GR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points1_identity)
HIDDEN(__mesa_sse_transform_points1_identity)
GLNAME( __mesa_sse_transform_points1_identity ):
GLOBL GLNAME(_mesa_sse_transform_points1_identity)
HIDDEN(_mesa_sse_transform_points1_identity)
GLNAME( _mesa_sse_transform_points1_identity ):
#define FRAME_OFFSET 8
PUSH_L ( ESI )
@ -152,9 +152,9 @@ LLBL(K_GTP1IR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points1_3d_no_rot)
HIDDEN(__mesa_sse_transform_points1_3d_no_rot)
GLNAME(__mesa_sse_transform_points1_3d_no_rot):
GLOBL GLNAME(_mesa_sse_transform_points1_3d_no_rot)
HIDDEN(_mesa_sse_transform_points1_3d_no_rot)
GLNAME(_mesa_sse_transform_points1_3d_no_rot):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -213,9 +213,9 @@ LLBL(K_GTP13DNRR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points1_perspective)
HIDDEN(__mesa_sse_transform_points1_perspective)
GLNAME(__mesa_sse_transform_points1_perspective):
GLOBL GLNAME(_mesa_sse_transform_points1_perspective)
HIDDEN(_mesa_sse_transform_points1_perspective)
GLNAME(_mesa_sse_transform_points1_perspective):
#define FRAME_OFFSET 8
PUSH_L ( ESI )
@ -272,9 +272,9 @@ LLBL(K_GTP13PR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points1_2d)
HIDDEN(__mesa_sse_transform_points1_2d)
GLNAME(__mesa_sse_transform_points1_2d):
GLOBL GLNAME(_mesa_sse_transform_points1_2d)
HIDDEN(_mesa_sse_transform_points1_2d)
GLNAME(_mesa_sse_transform_points1_2d):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -327,9 +327,9 @@ LLBL(K_GTP13P2DR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points1_2d_no_rot)
HIDDEN(__mesa_sse_transform_points1_2d_no_rot)
GLNAME(__mesa_sse_transform_points1_2d_no_rot):
GLOBL GLNAME(_mesa_sse_transform_points1_2d_no_rot)
HIDDEN(_mesa_sse_transform_points1_2d_no_rot)
GLNAME(_mesa_sse_transform_points1_2d_no_rot):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -384,9 +384,9 @@ LLBL(K_GTP13P2DNRR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points1_3d)
HIDDEN(__mesa_sse_transform_points1_3d)
GLNAME(__mesa_sse_transform_points1_3d):
GLOBL GLNAME(_mesa_sse_transform_points1_3d)
HIDDEN(_mesa_sse_transform_points1_3d)
GLNAME(_mesa_sse_transform_points1_3d):
#define FRAME_OFFSET 8
PUSH_L( ESI )

View File

@ -43,9 +43,9 @@
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points2_general)
HIDDEN (__mesa_sse_transform_points2_general)
GLNAME( __mesa_sse_transform_points2_general ):
GLOBL GLNAME(_mesa_sse_transform_points2_general)
HIDDEN (_mesa_sse_transform_points2_general)
GLNAME( _mesa_sse_transform_points2_general ):
#define FRAME_OFFSET 8
PUSH_L ( ESI )
@ -104,9 +104,9 @@ LLBL(K_GTP2GR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points2_identity)
HIDDEN(__mesa_sse_transform_points2_identity)
GLNAME( __mesa_sse_transform_points2_identity ):
GLOBL GLNAME(_mesa_sse_transform_points2_identity)
HIDDEN(_mesa_sse_transform_points2_identity)
GLNAME( _mesa_sse_transform_points2_identity ):
#define FRAME_OFFSET 8
PUSH_L ( ESI )
@ -157,9 +157,9 @@ LLBL(K_GTP2IR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points2_3d_no_rot)
HIDDEN(__mesa_sse_transform_points2_3d_no_rot)
GLNAME(__mesa_sse_transform_points2_3d_no_rot):
GLOBL GLNAME(_mesa_sse_transform_points2_3d_no_rot)
HIDDEN(_mesa_sse_transform_points2_3d_no_rot)
GLNAME(_mesa_sse_transform_points2_3d_no_rot):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -218,9 +218,9 @@ LLBL(K_GTP23DNRR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points2_perspective)
HIDDEN(__mesa_sse_transform_points2_perspective)
GLNAME(__mesa_sse_transform_points2_perspective):
GLOBL GLNAME(_mesa_sse_transform_points2_perspective)
HIDDEN(_mesa_sse_transform_points2_perspective)
GLNAME(_mesa_sse_transform_points2_perspective):
#define FRAME_OFFSET 8
PUSH_L ( ESI )
@ -277,9 +277,9 @@ LLBL(K_GTP23PR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points2_2d)
HIDDEN(__mesa_sse_transform_points2_2d)
GLNAME(__mesa_sse_transform_points2_2d):
GLOBL GLNAME(_mesa_sse_transform_points2_2d)
HIDDEN(_mesa_sse_transform_points2_2d)
GLNAME(_mesa_sse_transform_points2_2d):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -340,9 +340,9 @@ LLBL(K_GTP23P2DR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points2_2d_no_rot)
HIDDEN(__mesa_sse_transform_points2_2d_no_rot)
GLNAME(__mesa_sse_transform_points2_2d_no_rot):
GLOBL GLNAME(_mesa_sse_transform_points2_2d_no_rot)
HIDDEN(_mesa_sse_transform_points2_2d_no_rot)
GLNAME(_mesa_sse_transform_points2_2d_no_rot):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -397,9 +397,9 @@ LLBL(K_GTP23P2DNRR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points2_3d)
HIDDEN(__mesa_sse_transform_points2_3d)
GLNAME(__mesa_sse_transform_points2_3d):
GLOBL GLNAME(_mesa_sse_transform_points2_3d)
HIDDEN(_mesa_sse_transform_points2_3d)
GLNAME(_mesa_sse_transform_points2_3d):
#define FRAME_OFFSET 8
PUSH_L( ESI )

View File

@ -43,9 +43,9 @@
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points3_general)
HIDDEN(__mesa_sse_transform_points3_general)
GLNAME( __mesa_sse_transform_points3_general ):
GLOBL GLNAME(_mesa_sse_transform_points3_general)
HIDDEN(_mesa_sse_transform_points3_general)
GLNAME( _mesa_sse_transform_points3_general ):
#define FRAME_OFFSET 8
PUSH_L ( ESI )
@ -113,9 +113,9 @@ LLBL(K_GTPGR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points3_identity)
HIDDEN(__mesa_sse_transform_points3_identity)
GLNAME( __mesa_sse_transform_points3_identity ):
GLOBL GLNAME(_mesa_sse_transform_points3_identity)
HIDDEN(_mesa_sse_transform_points3_identity)
GLNAME( _mesa_sse_transform_points3_identity ):
#define FRAME_OFFSET 8
PUSH_L ( ESI )
@ -168,9 +168,9 @@ LLBL(K_GTPIR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points3_3d_no_rot)
HIDDEN(__mesa_sse_transform_points3_3d_no_rot)
GLNAME(__mesa_sse_transform_points3_3d_no_rot):
GLOBL GLNAME(_mesa_sse_transform_points3_3d_no_rot)
HIDDEN(_mesa_sse_transform_points3_3d_no_rot)
GLNAME(_mesa_sse_transform_points3_3d_no_rot):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -236,9 +236,9 @@ LLBL(K_GTP3DNRR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points3_perspective)
HIDDEN(__mesa_sse_transform_points3_perspective)
GLNAME(__mesa_sse_transform_points3_perspective):
GLOBL GLNAME(_mesa_sse_transform_points3_perspective)
HIDDEN(_mesa_sse_transform_points3_perspective)
GLNAME(_mesa_sse_transform_points3_perspective):
#define FRAME_OFFSET 8
PUSH_L ( ESI )
@ -309,9 +309,9 @@ LLBL(K_GTP3PR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points3_2d)
HIDDEN(__mesa_sse_transform_points3_2d)
GLNAME(__mesa_sse_transform_points3_2d):
GLOBL GLNAME(_mesa_sse_transform_points3_2d)
HIDDEN(_mesa_sse_transform_points3_2d)
GLNAME(_mesa_sse_transform_points3_2d):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -374,9 +374,9 @@ LLBL(K_GTP3P2DR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points3_2d_no_rot)
HIDDEN(__mesa_sse_transform_points3_2d_no_rot)
GLNAME(__mesa_sse_transform_points3_2d_no_rot):
GLOBL GLNAME(_mesa_sse_transform_points3_2d_no_rot)
HIDDEN(_mesa_sse_transform_points3_2d_no_rot)
GLNAME(_mesa_sse_transform_points3_2d_no_rot):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -435,9 +435,9 @@ LLBL(K_GTP3P2DNRR_finish):
ALIGNTEXT4
GLOBL GLNAME(__mesa_sse_transform_points3_3d)
HIDDEN(__mesa_sse_transform_points3_3d)
GLNAME(__mesa_sse_transform_points3_3d):
GLOBL GLNAME(_mesa_sse_transform_points3_3d)
HIDDEN(_mesa_sse_transform_points3_3d)
GLNAME(_mesa_sse_transform_points3_3d):
#define FRAME_OFFSET 8
PUSH_L( ESI )

View File

@ -40,9 +40,9 @@
ALIGNTEXT16
GLOBL GLNAME( __mesa_sse_transform_points4_general )
HIDDEN(__mesa_sse_transform_points4_general)
GLNAME( __mesa_sse_transform_points4_general ):
GLOBL GLNAME( _mesa_sse_transform_points4_general )
HIDDEN(_mesa_sse_transform_points4_general)
GLNAME( _mesa_sse_transform_points4_general ):
PUSH_L( ESI )
PUSH_L( EDI )
@ -112,9 +112,9 @@ LLBL( sse_general_done ):
ALIGNTEXT4
GLOBL GLNAME( __mesa_sse_transform_points4_3d )
HIDDEN(__mesa_sse_transform_points4_3d)
GLNAME( __mesa_sse_transform_points4_3d ):
GLOBL GLNAME( _mesa_sse_transform_points4_3d )
HIDDEN(_mesa_sse_transform_points4_3d)
GLNAME( _mesa_sse_transform_points4_3d ):
PUSH_L( ESI )
PUSH_L( EDI )

View File

@ -1,407 +1,407 @@
/*
* Mesa 3-D graphics library
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* NOTE: Avoid using spaces in between '(' ')' and arguments, especially
* with macros like CONST, LLBL that expand to CONCAT(...). Putting spaces
* in there will break the build on some platforms.
*/
#include "assyntax.h"
#include "matypes.h"
#include "clip_args.h"
#define SRC0 REGOFF(0, ESI)
#define SRC1 REGOFF(4, ESI)
#define SRC2 REGOFF(8, ESI)
#define SRC3 REGOFF(12, ESI)
#define DST0 REGOFF(0, EDI)
#define DST1 REGOFF(4, EDI)
#define DST2 REGOFF(8, EDI)
#define DST3 REGOFF(12, EDI)
#define MAT0 REGOFF(0, EDX)
#define MAT1 REGOFF(4, EDX)
#define MAT2 REGOFF(8, EDX)
#define MAT3 REGOFF(12, EDX)
/*
* Table for clip test.
*
* bit6 = SRC3 < 0
* bit5 = SRC2 < 0
* bit4 = abs(S(2)) > abs(S(3))
* bit3 = SRC1 < 0
* bit2 = abs(S(1)) > abs(S(3))
* bit1 = SRC0 < 0
* bit0 = abs(S(0)) > abs(S(3))
*/
SEG_DATA
clip_table:
D_BYTE 0x00, 0x01, 0x00, 0x02, 0x04, 0x05, 0x04, 0x06
D_BYTE 0x00, 0x01, 0x00, 0x02, 0x08, 0x09, 0x08, 0x0a
D_BYTE 0x20, 0x21, 0x20, 0x22, 0x24, 0x25, 0x24, 0x26
D_BYTE 0x20, 0x21, 0x20, 0x22, 0x28, 0x29, 0x28, 0x2a
D_BYTE 0x00, 0x01, 0x00, 0x02, 0x04, 0x05, 0x04, 0x06
D_BYTE 0x00, 0x01, 0x00, 0x02, 0x08, 0x09, 0x08, 0x0a
D_BYTE 0x10, 0x11, 0x10, 0x12, 0x14, 0x15, 0x14, 0x16
D_BYTE 0x10, 0x11, 0x10, 0x12, 0x18, 0x19, 0x18, 0x1a
D_BYTE 0x3f, 0x3d, 0x3f, 0x3e, 0x37, 0x35, 0x37, 0x36
D_BYTE 0x3f, 0x3d, 0x3f, 0x3e, 0x3b, 0x39, 0x3b, 0x3a
D_BYTE 0x2f, 0x2d, 0x2f, 0x2e, 0x27, 0x25, 0x27, 0x26
D_BYTE 0x2f, 0x2d, 0x2f, 0x2e, 0x2b, 0x29, 0x2b, 0x2a
D_BYTE 0x3f, 0x3d, 0x3f, 0x3e, 0x37, 0x35, 0x37, 0x36
D_BYTE 0x3f, 0x3d, 0x3f, 0x3e, 0x3b, 0x39, 0x3b, 0x3a
D_BYTE 0x1f, 0x1d, 0x1f, 0x1e, 0x17, 0x15, 0x17, 0x16
D_BYTE 0x1f, 0x1d, 0x1f, 0x1e, 0x1b, 0x19, 0x1b, 0x1a
SEG_TEXT
/*
* _mesa_x86_cliptest_points4
*
* AL: ormask
* AH: andmask
* EBX: temp0
* ECX: temp1
* EDX: clipmask[]
* ESI: clip[]
* EDI: proj[]
* EBP: temp2
*/
#if defined(__ELF__) && defined(__PIC__) && defined(GNU_ASSEMBLER) && !defined(ELFPIC)
#define ELFPIC
#endif
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_cliptest_points4 )
HIDDEN(__mesa_x86_cliptest_points4)
GLNAME( __mesa_x86_cliptest_points4 ):
#ifdef ELFPIC
#define FRAME_OFFSET 20
#else
#define FRAME_OFFSET 16
#endif
PUSH_L( ESI )
PUSH_L( EDI )
PUSH_L( EBP )
PUSH_L( EBX )
#ifdef ELFPIC
/* store pointer to clip_table on stack */
CALL( LLBL(ctp4_get_eip) )
ADD_L( CONST(_GLOBAL_OFFSET_TABLE_), EBX )
MOV_L( REGOFF(clip_table@GOT, EBX), EBX )
PUSH_L( EBX )
JMP( LLBL(ctp4_clip_table_ready) )
LLBL(ctp4_get_eip):
/* store eip in ebx */
MOV_L( REGIND(ESP), EBX )
RET
LLBL(ctp4_clip_table_ready):
#endif
MOV_L( ARG_SOURCE, ESI )
MOV_L( ARG_DEST, EDI )
MOV_L( ARG_CLIP, EDX )
MOV_L( ARG_OR, EBX )
MOV_L( ARG_AND, EBP )
MOV_L( REGOFF(V4F_STRIDE, ESI), EAX )
MOV_L( REGOFF(V4F_COUNT, ESI), ECX )
MOV_L( REGOFF(V4F_START, ESI), ESI )
OR_L( CONST(VEC_SIZE_4), REGOFF(V4F_FLAGS, EDI) )
MOV_L( EAX, ARG_SOURCE ) /* put stride in ARG_SOURCE */
MOV_L( CONST(4), REGOFF(V4F_SIZE, EDI) )
MOV_L( ECX, REGOFF(V4F_COUNT, EDI) )
MOV_L( REGOFF(V4F_START, EDI), EDI )
ADD_L( EDX, ECX )
MOV_L( ECX, ARG_CLIP ) /* put clipmask + count in ARG_CLIP */
CMP_L( ECX, EDX )
MOV_B( REGIND(EBX), AL )
MOV_B( REGIND(EBP), AH )
JZ( LLBL(ctp4_finish) )
ALIGNTEXT16
LLBL(ctp4_top):
FLD1 /* F3 */
FDIV_S( SRC3 ) /* GH: don't care about div-by-zero */
MOV_L( SRC3, EBP )
MOV_L( SRC2, EBX )
XOR_L( ECX, ECX )
ADD_L( EBP, EBP ) /* ebp = abs(S(3))*2 ; carry = sign of S(3) */
ADC_L( ECX, ECX )
ADD_L( EBX, EBX ) /* ebx = abs(S(2))*2 ; carry = sign of S(2) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(2))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
MOV_L( SRC1, EBX )
ADD_L( EBX, EBX ) /* ebx = abs(S(1))*2 ; carry = sign of S(1) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(1))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
MOV_L( SRC0, EBX )
ADD_L( EBX, EBX ) /* ebx = abs(S(0))*2 ; carry = sign of S(0) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(0))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
#ifdef ELFPIC
MOV_L( REGIND(ESP), EBP ) /* clip_table */
MOV_B( REGBI(EBP, ECX), CL )
#else
MOV_B( REGOFF(clip_table,ECX), CL )
#endif
OR_B( CL, AL )
AND_B( CL, AH )
TEST_B( CL, CL )
MOV_B( CL, REGIND(EDX) )
JZ( LLBL(ctp4_proj) )
LLBL(ctp4_noproj):
FSTP( ST(0) ) /* */
MOV_L( CONST(0), DST0 )
MOV_L( CONST(0), DST1 )
MOV_L( CONST(0), DST2 )
MOV_L( CONST(0x3f800000), DST3 )
JMP( LLBL(ctp4_next) )
LLBL(ctp4_proj):
FLD_S( SRC0 ) /* F0 F3 */
FMUL2( ST(1), ST0 )
FLD_S( SRC1 ) /* F1 F0 F3 */
FMUL2( ST(2), ST0 )
FLD_S( SRC2 ) /* F2 F1 F0 F3 */
FMUL2( ST(3), ST0 )
FXCH( ST(2) ) /* F0 F1 F2 F3 */
FSTP_S( DST0 ) /* F1 F2 F3 */
FSTP_S( DST1 ) /* F2 F3 */
FSTP_S( DST2 ) /* F3 */
FSTP_S( DST3 ) /* */
LLBL(ctp4_next):
INC_L( EDX )
ADD_L( CONST(16), EDI )
ADD_L( ARG_SOURCE, ESI )
CMP_L( EDX, ARG_CLIP )
JNZ( LLBL(ctp4_top) )
MOV_L( ARG_OR, ECX )
MOV_L( ARG_AND, EDX )
MOV_B( AL, REGIND(ECX) )
MOV_B( AH, REGIND(EDX) )
LLBL(ctp4_finish):
MOV_L( ARG_DEST, EAX )
#ifdef ELFPIC
POP_L( ESI ) /* discard ptr to clip_table */
#endif
POP_L( EBX )
POP_L( EBP )
POP_L( EDI )
POP_L( ESI )
RET
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_cliptest_points4_np )
HIDDEN(__mesa_x86_cliptest_points4_np)
GLNAME( __mesa_x86_cliptest_points4_np ):
#ifdef ELFPIC
#define FRAME_OFFSET 20
#else
#define FRAME_OFFSET 16
#endif
PUSH_L( ESI )
PUSH_L( EDI )
PUSH_L( EBP )
PUSH_L( EBX )
#ifdef ELFPIC
/* store pointer to clip_table on stack */
CALL( LLBL(ctp4_np_get_eip) )
ADD_L( CONST(_GLOBAL_OFFSET_TABLE_), EBX )
MOV_L( REGOFF(clip_table@GOT, EBX), EBX )
PUSH_L( EBX )
JMP( LLBL(ctp4_np_clip_table_ready) )
LLBL(ctp4_np_get_eip):
/* store eip in ebx */
MOV_L( REGIND(ESP), EBX )
RET
LLBL(ctp4_np_clip_table_ready):
#endif
MOV_L( ARG_SOURCE, ESI )
/* slot */
MOV_L( ARG_CLIP, EDX )
MOV_L( ARG_OR, EBX )
MOV_L( ARG_AND, EBP )
MOV_L( REGOFF(V4F_STRIDE, ESI), EAX )
MOV_L( REGOFF(V4F_COUNT, ESI), ECX )
MOV_L( REGOFF(V4F_START, ESI), ESI )
MOV_L( EAX, ARG_DEST ) /* put stride in ARG_DEST */
ADD_L( EDX, ECX )
MOV_L( ECX, EDI ) /* put clipmask + count in EDI */
CMP_L( ECX, EDX )
MOV_B( REGIND(EBX), AL )
MOV_B( REGIND(EBP), AH )
JZ( LLBL(ctp4_np_finish) )
ALIGNTEXT16
LLBL(ctp4_np_top):
MOV_L( SRC3, EBP )
MOV_L( SRC2, EBX )
XOR_L( ECX, ECX )
ADD_L( EBP, EBP ) /* ebp = abs(S(3))*2 ; carry = sign of S(3) */
ADC_L( ECX, ECX )
ADD_L( EBX, EBX ) /* ebx = abs(S(2))*2 ; carry = sign of S(2) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(2))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
MOV_L( SRC1, EBX )
ADD_L( EBX, EBX ) /* ebx = abs(S(1))*2 ; carry = sign of S(1) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(1))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
MOV_L( SRC0, EBX )
ADD_L( EBX, EBX ) /* ebx = abs(S(0))*2 ; carry = sign of S(0) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(0))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
#ifdef ELFPIC
MOV_L( REGIND(ESP), EBP ) /* clip_table */
MOV_B( REGBI(EBP, ECX), CL )
#else
MOV_B( REGOFF(clip_table,ECX), CL )
#endif
OR_B( CL, AL )
AND_B( CL, AH )
TEST_B( CL, CL )
MOV_B( CL, REGIND(EDX) )
INC_L( EDX )
/* slot */
ADD_L( ARG_DEST, ESI )
CMP_L( EDX, EDI )
JNZ( LLBL(ctp4_np_top) )
MOV_L( ARG_OR, ECX )
MOV_L( ARG_AND, EDX )
MOV_B( AL, REGIND(ECX) )
MOV_B( AH, REGIND(EDX) )
LLBL(ctp4_np_finish):
MOV_L( ARG_SOURCE, EAX )
#ifdef ELFPIC
POP_L( ESI ) /* discard ptr to clip_table */
#endif
POP_L( EBX )
POP_L( EBP )
POP_L( EDI )
POP_L( ESI )
RET
#if defined (__ELF__) && defined (__linux__)
.section .note.GNU-stack,"",%progbits
#endif
/*
* Mesa 3-D graphics library
*
* Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
/*
* NOTE: Avoid using spaces in between '(' ')' and arguments, especially
* with macros like CONST, LLBL that expand to CONCAT(...). Putting spaces
* in there will break the build on some platforms.
*/
#include "assyntax.h"
#include "matypes.h"
#include "clip_args.h"
#define SRC0 REGOFF(0, ESI)
#define SRC1 REGOFF(4, ESI)
#define SRC2 REGOFF(8, ESI)
#define SRC3 REGOFF(12, ESI)
#define DST0 REGOFF(0, EDI)
#define DST1 REGOFF(4, EDI)
#define DST2 REGOFF(8, EDI)
#define DST3 REGOFF(12, EDI)
#define MAT0 REGOFF(0, EDX)
#define MAT1 REGOFF(4, EDX)
#define MAT2 REGOFF(8, EDX)
#define MAT3 REGOFF(12, EDX)
/*
* Table for clip test.
*
* bit6 = SRC3 < 0
* bit5 = SRC2 < 0
* bit4 = abs(S(2)) > abs(S(3))
* bit3 = SRC1 < 0
* bit2 = abs(S(1)) > abs(S(3))
* bit1 = SRC0 < 0
* bit0 = abs(S(0)) > abs(S(3))
*/
SEG_DATA
clip_table:
D_BYTE 0x00, 0x01, 0x00, 0x02, 0x04, 0x05, 0x04, 0x06
D_BYTE 0x00, 0x01, 0x00, 0x02, 0x08, 0x09, 0x08, 0x0a
D_BYTE 0x20, 0x21, 0x20, 0x22, 0x24, 0x25, 0x24, 0x26
D_BYTE 0x20, 0x21, 0x20, 0x22, 0x28, 0x29, 0x28, 0x2a
D_BYTE 0x00, 0x01, 0x00, 0x02, 0x04, 0x05, 0x04, 0x06
D_BYTE 0x00, 0x01, 0x00, 0x02, 0x08, 0x09, 0x08, 0x0a
D_BYTE 0x10, 0x11, 0x10, 0x12, 0x14, 0x15, 0x14, 0x16
D_BYTE 0x10, 0x11, 0x10, 0x12, 0x18, 0x19, 0x18, 0x1a
D_BYTE 0x3f, 0x3d, 0x3f, 0x3e, 0x37, 0x35, 0x37, 0x36
D_BYTE 0x3f, 0x3d, 0x3f, 0x3e, 0x3b, 0x39, 0x3b, 0x3a
D_BYTE 0x2f, 0x2d, 0x2f, 0x2e, 0x27, 0x25, 0x27, 0x26
D_BYTE 0x2f, 0x2d, 0x2f, 0x2e, 0x2b, 0x29, 0x2b, 0x2a
D_BYTE 0x3f, 0x3d, 0x3f, 0x3e, 0x37, 0x35, 0x37, 0x36
D_BYTE 0x3f, 0x3d, 0x3f, 0x3e, 0x3b, 0x39, 0x3b, 0x3a
D_BYTE 0x1f, 0x1d, 0x1f, 0x1e, 0x17, 0x15, 0x17, 0x16
D_BYTE 0x1f, 0x1d, 0x1f, 0x1e, 0x1b, 0x19, 0x1b, 0x1a
SEG_TEXT
/*
* _mesa_x86_cliptest_points4
*
* AL: ormask
* AH: andmask
* EBX: temp0
* ECX: temp1
* EDX: clipmask[]
* ESI: clip[]
* EDI: proj[]
* EBP: temp2
*/
#if defined(__ELF__) && defined(__PIC__) && defined(GNU_ASSEMBLER) && !defined(ELFPIC)
#define ELFPIC
#endif
ALIGNTEXT16
GLOBL GLNAME( _mesa_x86_cliptest_points4 )
HIDDEN(_mesa_x86_cliptest_points4)
GLNAME( _mesa_x86_cliptest_points4 ):
#ifdef ELFPIC
#define FRAME_OFFSET 20
#else
#define FRAME_OFFSET 16
#endif
PUSH_L( ESI )
PUSH_L( EDI )
PUSH_L( EBP )
PUSH_L( EBX )
#ifdef ELFPIC
/* store pointer to clip_table on stack */
CALL( LLBL(ctp4_get_eip) )
ADD_L( CONST(_GLOBAL_OFFSET_TABLE_), EBX )
MOV_L( REGOFF(clip_table@GOT, EBX), EBX )
PUSH_L( EBX )
JMP( LLBL(ctp4_clip_table_ready) )
LLBL(ctp4_get_eip):
/* store eip in ebx */
MOV_L( REGIND(ESP), EBX )
RET
LLBL(ctp4_clip_table_ready):
#endif
MOV_L( ARG_SOURCE, ESI )
MOV_L( ARG_DEST, EDI )
MOV_L( ARG_CLIP, EDX )
MOV_L( ARG_OR, EBX )
MOV_L( ARG_AND, EBP )
MOV_L( REGOFF(V4F_STRIDE, ESI), EAX )
MOV_L( REGOFF(V4F_COUNT, ESI), ECX )
MOV_L( REGOFF(V4F_START, ESI), ESI )
OR_L( CONST(VEC_SIZE_4), REGOFF(V4F_FLAGS, EDI) )
MOV_L( EAX, ARG_SOURCE ) /* put stride in ARG_SOURCE */
MOV_L( CONST(4), REGOFF(V4F_SIZE, EDI) )
MOV_L( ECX, REGOFF(V4F_COUNT, EDI) )
MOV_L( REGOFF(V4F_START, EDI), EDI )
ADD_L( EDX, ECX )
MOV_L( ECX, ARG_CLIP ) /* put clipmask + count in ARG_CLIP */
CMP_L( ECX, EDX )
MOV_B( REGIND(EBX), AL )
MOV_B( REGIND(EBP), AH )
JZ( LLBL(ctp4_finish) )
ALIGNTEXT16
LLBL(ctp4_top):
FLD1 /* F3 */
FDIV_S( SRC3 ) /* GH: don't care about div-by-zero */
MOV_L( SRC3, EBP )
MOV_L( SRC2, EBX )
XOR_L( ECX, ECX )
ADD_L( EBP, EBP ) /* ebp = abs(S(3))*2 ; carry = sign of S(3) */
ADC_L( ECX, ECX )
ADD_L( EBX, EBX ) /* ebx = abs(S(2))*2 ; carry = sign of S(2) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(2))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
MOV_L( SRC1, EBX )
ADD_L( EBX, EBX ) /* ebx = abs(S(1))*2 ; carry = sign of S(1) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(1))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
MOV_L( SRC0, EBX )
ADD_L( EBX, EBX ) /* ebx = abs(S(0))*2 ; carry = sign of S(0) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(0))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
#ifdef ELFPIC
MOV_L( REGIND(ESP), EBP ) /* clip_table */
MOV_B( REGBI(EBP, ECX), CL )
#else
MOV_B( REGOFF(clip_table,ECX), CL )
#endif
OR_B( CL, AL )
AND_B( CL, AH )
TEST_B( CL, CL )
MOV_B( CL, REGIND(EDX) )
JZ( LLBL(ctp4_proj) )
LLBL(ctp4_noproj):
FSTP( ST(0) ) /* */
MOV_L( CONST(0), DST0 )
MOV_L( CONST(0), DST1 )
MOV_L( CONST(0), DST2 )
MOV_L( CONST(0x3f800000), DST3 )
JMP( LLBL(ctp4_next) )
LLBL(ctp4_proj):
FLD_S( SRC0 ) /* F0 F3 */
FMUL2( ST(1), ST0 )
FLD_S( SRC1 ) /* F1 F0 F3 */
FMUL2( ST(2), ST0 )
FLD_S( SRC2 ) /* F2 F1 F0 F3 */
FMUL2( ST(3), ST0 )
FXCH( ST(2) ) /* F0 F1 F2 F3 */
FSTP_S( DST0 ) /* F1 F2 F3 */
FSTP_S( DST1 ) /* F2 F3 */
FSTP_S( DST2 ) /* F3 */
FSTP_S( DST3 ) /* */
LLBL(ctp4_next):
INC_L( EDX )
ADD_L( CONST(16), EDI )
ADD_L( ARG_SOURCE, ESI )
CMP_L( EDX, ARG_CLIP )
JNZ( LLBL(ctp4_top) )
MOV_L( ARG_OR, ECX )
MOV_L( ARG_AND, EDX )
MOV_B( AL, REGIND(ECX) )
MOV_B( AH, REGIND(EDX) )
LLBL(ctp4_finish):
MOV_L( ARG_DEST, EAX )
#ifdef ELFPIC
POP_L( ESI ) /* discard ptr to clip_table */
#endif
POP_L( EBX )
POP_L( EBP )
POP_L( EDI )
POP_L( ESI )
RET
ALIGNTEXT16
GLOBL GLNAME( _mesa_x86_cliptest_points4_np )
HIDDEN(_mesa_x86_cliptest_points4_np)
GLNAME( _mesa_x86_cliptest_points4_np ):
#ifdef ELFPIC
#define FRAME_OFFSET 20
#else
#define FRAME_OFFSET 16
#endif
PUSH_L( ESI )
PUSH_L( EDI )
PUSH_L( EBP )
PUSH_L( EBX )
#ifdef ELFPIC
/* store pointer to clip_table on stack */
CALL( LLBL(ctp4_np_get_eip) )
ADD_L( CONST(_GLOBAL_OFFSET_TABLE_), EBX )
MOV_L( REGOFF(clip_table@GOT, EBX), EBX )
PUSH_L( EBX )
JMP( LLBL(ctp4_np_clip_table_ready) )
LLBL(ctp4_np_get_eip):
/* store eip in ebx */
MOV_L( REGIND(ESP), EBX )
RET
LLBL(ctp4_np_clip_table_ready):
#endif
MOV_L( ARG_SOURCE, ESI )
/* slot */
MOV_L( ARG_CLIP, EDX )
MOV_L( ARG_OR, EBX )
MOV_L( ARG_AND, EBP )
MOV_L( REGOFF(V4F_STRIDE, ESI), EAX )
MOV_L( REGOFF(V4F_COUNT, ESI), ECX )
MOV_L( REGOFF(V4F_START, ESI), ESI )
MOV_L( EAX, ARG_DEST ) /* put stride in ARG_DEST */
ADD_L( EDX, ECX )
MOV_L( ECX, EDI ) /* put clipmask + count in EDI */
CMP_L( ECX, EDX )
MOV_B( REGIND(EBX), AL )
MOV_B( REGIND(EBP), AH )
JZ( LLBL(ctp4_np_finish) )
ALIGNTEXT16
LLBL(ctp4_np_top):
MOV_L( SRC3, EBP )
MOV_L( SRC2, EBX )
XOR_L( ECX, ECX )
ADD_L( EBP, EBP ) /* ebp = abs(S(3))*2 ; carry = sign of S(3) */
ADC_L( ECX, ECX )
ADD_L( EBX, EBX ) /* ebx = abs(S(2))*2 ; carry = sign of S(2) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(2))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
MOV_L( SRC1, EBX )
ADD_L( EBX, EBX ) /* ebx = abs(S(1))*2 ; carry = sign of S(1) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(1))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
MOV_L( SRC0, EBX )
ADD_L( EBX, EBX ) /* ebx = abs(S(0))*2 ; carry = sign of S(0) */
ADC_L( ECX, ECX )
CMP_L( EBX, EBP ) /* carry = abs(S(0))*2 > abs(S(3))*2 */
ADC_L( ECX, ECX )
#ifdef ELFPIC
MOV_L( REGIND(ESP), EBP ) /* clip_table */
MOV_B( REGBI(EBP, ECX), CL )
#else
MOV_B( REGOFF(clip_table,ECX), CL )
#endif
OR_B( CL, AL )
AND_B( CL, AH )
TEST_B( CL, CL )
MOV_B( CL, REGIND(EDX) )
INC_L( EDX )
/* slot */
ADD_L( ARG_DEST, ESI )
CMP_L( EDX, EDI )
JNZ( LLBL(ctp4_np_top) )
MOV_L( ARG_OR, ECX )
MOV_L( ARG_AND, EDX )
MOV_B( AL, REGIND(ECX) )
MOV_B( AH, REGIND(EDX) )
LLBL(ctp4_np_finish):
MOV_L( ARG_SOURCE, EAX )
#ifdef ELFPIC
POP_L( ESI ) /* discard ptr to clip_table */
#endif
POP_L( EBX )
POP_L( EBP )
POP_L( EDI )
POP_L( ESI )
RET
#if defined (__ELF__) && defined (__linux__)
.section .note.GNU-stack,"",%progbits
#endif

View File

@ -65,9 +65,9 @@
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points2_general )
HIDDEN(__mesa_x86_transform_points2_general)
GLNAME( __mesa_x86_transform_points2_general ):
GLOBL GLNAME( _mesa_x86_transform_points2_general )
HIDDEN(_mesa_x86_transform_points2_general)
GLNAME( _mesa_x86_transform_points2_general ):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -156,9 +156,9 @@ LLBL(x86_p2_gr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points2_perspective )
HIDDEN(__mesa_x86_transform_points2_perspective)
GLNAME( __mesa_x86_transform_points2_perspective ):
GLOBL GLNAME( _mesa_x86_transform_points2_perspective )
HIDDEN(_mesa_x86_transform_points2_perspective)
GLNAME( _mesa_x86_transform_points2_perspective ):
#define FRAME_OFFSET 12
PUSH_L( ESI )
@ -222,9 +222,9 @@ LLBL(x86_p2_pr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points2_3d )
HIDDEN(__mesa_x86_transform_points2_3d)
GLNAME( __mesa_x86_transform_points2_3d ):
GLOBL GLNAME( _mesa_x86_transform_points2_3d )
HIDDEN(_mesa_x86_transform_points2_3d)
GLNAME( _mesa_x86_transform_points2_3d ):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -304,9 +304,9 @@ LLBL(x86_p2_3dr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points2_3d_no_rot )
HIDDEN(__mesa_x86_transform_points2_3d_no_rot)
GLNAME( __mesa_x86_transform_points2_3d_no_rot ):
GLOBL GLNAME( _mesa_x86_transform_points2_3d_no_rot )
HIDDEN(_mesa_x86_transform_points2_3d_no_rot)
GLNAME( _mesa_x86_transform_points2_3d_no_rot ):
#define FRAME_OFFSET 12
PUSH_L( ESI )
@ -374,9 +374,9 @@ LLBL(x86_p2_3dnrr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points2_2d )
HIDDEN(__mesa_x86_transform_points2_2d)
GLNAME( __mesa_x86_transform_points2_2d ):
GLOBL GLNAME( _mesa_x86_transform_points2_2d )
HIDDEN(_mesa_x86_transform_points2_2d)
GLNAME( _mesa_x86_transform_points2_2d ):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -447,9 +447,9 @@ LLBL(x86_p2_2dr_done):
ALIGNTEXT4
GLOBL GLNAME( __mesa_x86_transform_points2_2d_no_rot )
HIDDEN(__mesa_x86_transform_points2_2d_no_rot)
GLNAME( __mesa_x86_transform_points2_2d_no_rot ):
GLOBL GLNAME( _mesa_x86_transform_points2_2d_no_rot )
HIDDEN(_mesa_x86_transform_points2_2d_no_rot)
GLNAME( _mesa_x86_transform_points2_2d_no_rot ):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -512,9 +512,9 @@ LLBL(x86_p2_2dnrr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points2_identity )
HIDDEN(__mesa_x86_transform_points2_identity)
GLNAME( __mesa_x86_transform_points2_identity ):
GLOBL GLNAME( _mesa_x86_transform_points2_identity )
HIDDEN(_mesa_x86_transform_points2_identity)
GLNAME( _mesa_x86_transform_points2_identity ):
#define FRAME_OFFSET 12
PUSH_L( ESI )

View File

@ -65,9 +65,9 @@
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points3_general )
HIDDEN(__mesa_x86_transform_points3_general)
GLNAME( __mesa_x86_transform_points3_general ):
GLOBL GLNAME( _mesa_x86_transform_points3_general )
HIDDEN(_mesa_x86_transform_points3_general)
GLNAME( _mesa_x86_transform_points3_general ):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -172,9 +172,9 @@ LLBL(x86_p3_gr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points3_perspective )
HIDDEN(__mesa_x86_transform_points3_perspective)
GLNAME( __mesa_x86_transform_points3_perspective ):
GLOBL GLNAME( _mesa_x86_transform_points3_perspective )
HIDDEN(_mesa_x86_transform_points3_perspective)
GLNAME( _mesa_x86_transform_points3_perspective ):
#define FRAME_OFFSET 12
PUSH_L( ESI )
@ -253,9 +253,9 @@ LLBL(x86_p3_pr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points3_3d )
HIDDEN(__mesa_x86_transform_points3_3d)
GLNAME( __mesa_x86_transform_points3_3d ):
GLOBL GLNAME( _mesa_x86_transform_points3_3d )
HIDDEN(_mesa_x86_transform_points3_3d)
GLNAME( _mesa_x86_transform_points3_3d ):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -347,9 +347,9 @@ LLBL(x86_p3_3dr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points3_3d_no_rot )
HIDDEN(__mesa_x86_transform_points3_3d_no_rot)
GLNAME( __mesa_x86_transform_points3_3d_no_rot ):
GLOBL GLNAME( _mesa_x86_transform_points3_3d_no_rot )
HIDDEN(_mesa_x86_transform_points3_3d_no_rot)
GLNAME( _mesa_x86_transform_points3_3d_no_rot ):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -420,9 +420,9 @@ LLBL(x86_p3_3dnrr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points3_2d )
HIDDEN(__mesa_x86_transform_points3_2d)
GLNAME( __mesa_x86_transform_points3_2d ):
GLOBL GLNAME( _mesa_x86_transform_points3_2d )
HIDDEN(_mesa_x86_transform_points3_2d)
GLNAME( _mesa_x86_transform_points3_2d ):
#define FRAME_OFFSET 12
PUSH_L( ESI )
@ -498,9 +498,9 @@ LLBL(x86_p3_2dr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points3_2d_no_rot )
HIDDEN(__mesa_x86_transform_points3_2d_no_rot)
GLNAME( __mesa_x86_transform_points3_2d_no_rot ):
GLOBL GLNAME( _mesa_x86_transform_points3_2d_no_rot )
HIDDEN(_mesa_x86_transform_points3_2d_no_rot)
GLNAME( _mesa_x86_transform_points3_2d_no_rot ):
#define FRAME_OFFSET 12
PUSH_L( ESI )
@ -569,9 +569,9 @@ LLBL(x86_p3_2dnrr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points3_identity )
HIDDEN(__mesa_x86_transform_points3_identity)
GLNAME(__mesa_x86_transform_points3_identity ):
GLOBL GLNAME( _mesa_x86_transform_points3_identity )
HIDDEN(_mesa_x86_transform_points3_identity)
GLNAME(_mesa_x86_transform_points3_identity ):
#define FRAME_OFFSET 16
PUSH_L( ESI )

View File

@ -65,9 +65,9 @@
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points4_general )
HIDDEN(__mesa_x86_transform_points4_general)
GLNAME( __mesa_x86_transform_points4_general ):
GLOBL GLNAME( _mesa_x86_transform_points4_general )
HIDDEN(_mesa_x86_transform_points4_general)
GLNAME( _mesa_x86_transform_points4_general ):
#define FRAME_OFFSET 8
PUSH_L( ESI )
@ -179,9 +179,9 @@ LLBL(x86_p4_gr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points4_perspective )
HIDDEN(__mesa_x86_transform_points4_perspective)
GLNAME( __mesa_x86_transform_points4_perspective ):
GLOBL GLNAME( _mesa_x86_transform_points4_perspective )
HIDDEN(_mesa_x86_transform_points4_perspective)
GLNAME( _mesa_x86_transform_points4_perspective ):
#define FRAME_OFFSET 12
PUSH_L( ESI )
@ -262,9 +262,9 @@ LLBL(x86_p4_pr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points4_3d )
HIDDEN(__mesa_x86_transform_points4_3d)
GLNAME( __mesa_x86_transform_points4_3d ):
GLOBL GLNAME( _mesa_x86_transform_points4_3d )
HIDDEN(_mesa_x86_transform_points4_3d)
GLNAME( _mesa_x86_transform_points4_3d ):
#define FRAME_OFFSET 12
PUSH_L( ESI )
@ -365,9 +365,9 @@ LLBL(x86_p4_3dr_done):
ALIGNTEXT16
GLOBL GLNAME(__mesa_x86_transform_points4_3d_no_rot)
HIDDEN(__mesa_x86_transform_points4_3d_no_rot)
GLNAME(__mesa_x86_transform_points4_3d_no_rot):
GLOBL GLNAME(_mesa_x86_transform_points4_3d_no_rot)
HIDDEN(_mesa_x86_transform_points4_3d_no_rot)
GLNAME(_mesa_x86_transform_points4_3d_no_rot):
#define FRAME_OFFSET 12
PUSH_L( ESI )
@ -446,9 +446,9 @@ LLBL(x86_p4_3dnrr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points4_2d )
HIDDEN(__mesa_x86_transform_points4_2d)
GLNAME( __mesa_x86_transform_points4_2d ):
GLOBL GLNAME( _mesa_x86_transform_points4_2d )
HIDDEN(_mesa_x86_transform_points4_2d)
GLNAME( _mesa_x86_transform_points4_2d ):
#define FRAME_OFFSET 16
PUSH_L( ESI )
@ -532,9 +532,9 @@ LLBL(x86_p4_2dr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points4_2d_no_rot )
HIDDEN(__mesa_x86_transform_points4_2d_no_rot)
GLNAME( __mesa_x86_transform_points4_2d_no_rot ):
GLOBL GLNAME( _mesa_x86_transform_points4_2d_no_rot )
HIDDEN(_mesa_x86_transform_points4_2d_no_rot)
GLNAME( _mesa_x86_transform_points4_2d_no_rot ):
#define FRAME_OFFSET 16
PUSH_L( ESI )
@ -610,9 +610,9 @@ LLBL(x86_p4_2dnrr_done):
ALIGNTEXT16
GLOBL GLNAME( __mesa_x86_transform_points4_identity )
HIDDEN(__mesa_x86_transform_points4_identity)
GLNAME( __mesa_x86_transform_points4_identity ):
GLOBL GLNAME( _mesa_x86_transform_points4_identity )
HIDDEN(_mesa_x86_transform_points4_identity)
GLNAME( _mesa_x86_transform_points4_identity ):
#define FRAME_OFFSET 12
PUSH_L( ESI )