⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glapi_x86-64.s

📁 这是一个开放源代码的与WINNT/WIN2K/WIN2003兼容的操作系统
💻 S
📖 第 1 页 / 共 5 页
字号:
/* DO NOT EDIT - This file generated automatically by gl_x86-64_asm.py (from Mesa) script */

/*
 * (C) Copyright IBM Corporation 2005
 * 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, sub license,
 * 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 (including the next
 * paragraph) 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 NON-INFRINGEMENT.  IN NO EVENT SHALL
 * IBM,
 * AND/OR THEIR SUPPLIERS 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.
 */

/* If we build with gcc's -fvisibility=hidden flag, we'll need to change
 * the symbol visibility mode to 'default'.
 */
#if defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 303
#  pragma GCC visibility push(default)
#  define HIDDEN(x) .hidden x
#else
#  define HIDDEN(x)
#endif

#if defined(PTHREADS) || defined(USE_XTHREADS) || defined(SOLARIS_THREADS) || defined(WIN32_THREADS) || defined(BEOS_THREADS)
#  define THREADS
#endif

	.text

#ifdef GLX_USE_TLS

	.globl _x86_64_get_get_dispatch; HIDDEN(_x86_64_get_get_dispatch)
_x86_64_get_get_dispatch:
	lea	_x86_64_get_dispatch(%rip), %rax
	ret

	.p2align	4,,15
_x86_64_get_dispatch:
	movq	_glapi_tls_Dispatch@GOTTPOFF(%rip), %rax
	movq	%fs:(%rax), %rax
	ret
	.size	_x86_64_get_dispatch, .-_x86_64_get_dispatch

#elif defined(PTHREADS)

	.extern	_glapi_Dispatch
	.extern	_gl_DispatchTSD
	.extern	pthread_getspecific

	.p2align	4,,15
_x86_64_get_dispatch:
	movq	_gl_DispatchTSD(%rip), %rdi
	jmp	pthread_getspecific@PLT

#elif defined(THREADS)

	.extern	_glapi_get_dispatch

#endif

	.p2align	4,,15
	.globl	glNewList
	.type	glNewList, @function
glNewList:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	0(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	pushq	%rsi
	pushq	%rbp
	call	_x86_64_get_dispatch@PLT
	popq	%rbp
	popq	%rsi
	popq	%rdi
	movq	(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	0(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	pushq	%rsi
	pushq	%rbp
	call	_glapi_get_dispatch
	popq	%rbp
	popq	%rsi
	popq	%rdi
	movq	0(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glNewList, .-glNewList

	.p2align	4,,15
	.globl	glEndList
	.type	glEndList, @function
glEndList:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	8(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rbp
	call	_x86_64_get_dispatch@PLT
	popq	%rbp
	movq	8(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	8(%rax), %r11
	jmp	*%r11
1:
	pushq	%rbp
	call	_glapi_get_dispatch
	popq	%rbp
	movq	8(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glEndList, .-glEndList

	.p2align	4,,15
	.globl	glCallList
	.type	glCallList, @function
glCallList:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	16(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	call	_x86_64_get_dispatch@PLT
	popq	%rdi
	movq	16(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	16(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	call	_glapi_get_dispatch
	popq	%rdi
	movq	16(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glCallList, .-glCallList

	.p2align	4,,15
	.globl	glCallLists
	.type	glCallLists, @function
glCallLists:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	24(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	pushq	%rsi
	pushq	%rdx
	call	_x86_64_get_dispatch@PLT
	popq	%rdx
	popq	%rsi
	popq	%rdi
	movq	24(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	24(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	pushq	%rsi
	pushq	%rdx
	call	_glapi_get_dispatch
	popq	%rdx
	popq	%rsi
	popq	%rdi
	movq	24(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glCallLists, .-glCallLists

	.p2align	4,,15
	.globl	glDeleteLists
	.type	glDeleteLists, @function
glDeleteLists:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	32(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	pushq	%rsi
	pushq	%rbp
	call	_x86_64_get_dispatch@PLT
	popq	%rbp
	popq	%rsi
	popq	%rdi
	movq	32(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	32(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	pushq	%rsi
	pushq	%rbp
	call	_glapi_get_dispatch
	popq	%rbp
	popq	%rsi
	popq	%rdi
	movq	32(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glDeleteLists, .-glDeleteLists

	.p2align	4,,15
	.globl	glGenLists
	.type	glGenLists, @function
glGenLists:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	40(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	call	_x86_64_get_dispatch@PLT
	popq	%rdi
	movq	40(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	40(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	call	_glapi_get_dispatch
	popq	%rdi
	movq	40(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glGenLists, .-glGenLists

	.p2align	4,,15
	.globl	glListBase
	.type	glListBase, @function
glListBase:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	48(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	call	_x86_64_get_dispatch@PLT
	popq	%rdi
	movq	48(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	48(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	call	_glapi_get_dispatch
	popq	%rdi
	movq	48(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glListBase, .-glListBase

	.p2align	4,,15
	.globl	glBegin
	.type	glBegin, @function
glBegin:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	56(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	call	_x86_64_get_dispatch@PLT
	popq	%rdi
	movq	56(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	56(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	call	_glapi_get_dispatch
	popq	%rdi
	movq	56(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glBegin, .-glBegin

	.p2align	4,,15
	.globl	glBitmap
	.type	glBitmap, @function
glBitmap:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	64(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	subq	$56, %rsp
	movq	%rdi, (%rsp)
	movq	%rsi, 8(%rsp)
	movq	%xmm0, 16(%rsp)
	movq	%xmm1, 24(%rsp)
	movq	%xmm2, 32(%rsp)
	movq	%xmm3, 40(%rsp)
	movq	%rdx, 48(%rsp)
	call	_x86_64_get_dispatch@PLT
	movq	48(%rsp), %rdx
	movq	40(%rsp), %xmm3
	movq	32(%rsp), %xmm2
	movq	24(%rsp), %xmm1
	movq	16(%rsp), %xmm0
	movq	8(%rsp), %rsi
	movq	(%rsp), %rdi
	addq	$56, %rsp
	movq	64(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	64(%rax), %r11
	jmp	*%r11
1:
	subq	$56, %rsp
	movq	%rdi, (%rsp)
	movq	%rsi, 8(%rsp)
	movq	%xmm0, 16(%rsp)
	movq	%xmm1, 24(%rsp)
	movq	%xmm2, 32(%rsp)
	movq	%xmm3, 40(%rsp)
	movq	%rdx, 48(%rsp)
	call	_glapi_get_dispatch
	movq	48(%rsp), %rdx
	movq	40(%rsp), %xmm3
	movq	32(%rsp), %xmm2
	movq	24(%rsp), %xmm1
	movq	16(%rsp), %xmm0
	movq	8(%rsp), %rsi
	movq	(%rsp), %rdi
	addq	$56, %rsp
	movq	64(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glBitmap, .-glBitmap

	.p2align	4,,15
	.globl	glColor3b
	.type	glColor3b, @function
glColor3b:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	72(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	pushq	%rsi
	pushq	%rdx
	call	_x86_64_get_dispatch@PLT
	popq	%rdx
	popq	%rsi
	popq	%rdi
	movq	72(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	72(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	pushq	%rsi
	pushq	%rdx
	call	_glapi_get_dispatch
	popq	%rdx
	popq	%rsi
	popq	%rdi
	movq	72(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glColor3b, .-glColor3b

	.p2align	4,,15
	.globl	glColor3bv
	.type	glColor3bv, @function
glColor3bv:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	80(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	call	_x86_64_get_dispatch@PLT
	popq	%rdi
	movq	80(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	80(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	call	_glapi_get_dispatch
	popq	%rdi
	movq	80(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glColor3bv, .-glColor3bv

	.p2align	4,,15
	.globl	glColor3d
	.type	glColor3d, @function
glColor3d:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	88(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	subq	$24, %rsp
	movq	%xmm0, (%rsp)
	movq	%xmm1, 8(%rsp)
	movq	%xmm2, 16(%rsp)
	call	_x86_64_get_dispatch@PLT
	movq	16(%rsp), %xmm2
	movq	8(%rsp), %xmm1
	movq	(%rsp), %xmm0
	addq	$24, %rsp
	movq	88(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	88(%rax), %r11
	jmp	*%r11
1:
	subq	$24, %rsp
	movq	%xmm0, (%rsp)
	movq	%xmm1, 8(%rsp)
	movq	%xmm2, 16(%rsp)
	call	_glapi_get_dispatch
	movq	16(%rsp), %xmm2
	movq	8(%rsp), %xmm1
	movq	(%rsp), %xmm0
	addq	$24, %rsp
	movq	88(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glColor3d, .-glColor3d

	.p2align	4,,15
	.globl	glColor3dv
	.type	glColor3dv, @function
glColor3dv:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	96(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	call	_x86_64_get_dispatch@PLT
	popq	%rdi
	movq	96(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	96(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	call	_glapi_get_dispatch
	popq	%rdi
	movq	96(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glColor3dv, .-glColor3dv

	.p2align	4,,15
	.globl	glColor3f
	.type	glColor3f, @function
glColor3f:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	104(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	subq	$24, %rsp
	movq	%xmm0, (%rsp)
	movq	%xmm1, 8(%rsp)
	movq	%xmm2, 16(%rsp)
	call	_x86_64_get_dispatch@PLT
	movq	16(%rsp), %xmm2
	movq	8(%rsp), %xmm1
	movq	(%rsp), %xmm0
	addq	$24, %rsp
	movq	104(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	104(%rax), %r11
	jmp	*%r11
1:
	subq	$24, %rsp
	movq	%xmm0, (%rsp)
	movq	%xmm1, 8(%rsp)
	movq	%xmm2, 16(%rsp)
	call	_glapi_get_dispatch
	movq	16(%rsp), %xmm2
	movq	8(%rsp), %xmm1
	movq	(%rsp), %xmm0
	addq	$24, %rsp
	movq	104(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glColor3f, .-glColor3f

	.p2align	4,,15
	.globl	glColor3fv
	.type	glColor3fv, @function
glColor3fv:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	112(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	call	_x86_64_get_dispatch@PLT
	popq	%rdi
	movq	112(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	112(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	call	_glapi_get_dispatch
	popq	%rdi
	movq	112(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glColor3fv, .-glColor3fv

	.p2align	4,,15
	.globl	glColor3i
	.type	glColor3i, @function
glColor3i:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	120(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	pushq	%rsi
	pushq	%rdx
	call	_x86_64_get_dispatch@PLT
	popq	%rdx
	popq	%rsi
	popq	%rdi
	movq	120(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	120(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	pushq	%rsi
	pushq	%rdx
	call	_glapi_get_dispatch
	popq	%rdx
	popq	%rsi
	popq	%rdi
	movq	120(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glColor3i, .-glColor3i

	.p2align	4,,15
	.globl	glColor3iv
	.type	glColor3iv, @function
glColor3iv:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	128(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	call	_x86_64_get_dispatch@PLT
	popq	%rdi
	movq	128(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	128(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi
	call	_glapi_get_dispatch
	popq	%rdi
	movq	128(%rax), %r11
	jmp	*%r11
#endif /* defined(GLX_USE_TLS) */
	.size	glColor3iv, .-glColor3iv

	.p2align	4,,15
	.globl	glColor3s
	.type	glColor3s, @function
glColor3s:
#if defined(GLX_USE_TLS)
	call	_x86_64_get_dispatch@PLT
	movq	136(%rax), %r11
	jmp	*%r11
#elif defined(PTHREADS)
	pushq	%rdi
	pushq	%rsi
	pushq	%rdx
	call	_x86_64_get_dispatch@PLT
	popq	%rdx
	popq	%rsi
	popq	%rdi
	movq	136(%rax), %r11
	jmp	*%r11
#else
	movq	_glapi_Dispatch(%rip), %rax
	testq	%rax, %rax
	je	1f
	movq	136(%rax), %r11
	jmp	*%r11
1:
	pushq	%rdi

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -