Newer
Older
ubixos / lib / csu / amd64 / gcrt1.s
	.text
	.file	"/ubixos/usr/src/lib/csu/amd64/crt1.c"
                                        # Start of file scope inline assembly
	.ident	"$FreeBSD: releng/11.1/lib/csu/amd64/crt1.c 292000 2015-12-08 19:32:58Z emaste $"
	.ident	"$FreeBSD: releng/11.1/lib/csu/common/crtbrand.c 321309 2017-07-20 23:39:50Z gjb $"
	.ident	"$FreeBSD: releng/11.1/lib/csu/common/ignore_init.c 245133 2013-01-07 17:58:27Z kib $"

                                        # End of file scope inline assembly
	.globl	_start
	.p2align	4, 0x90
	.type	_start,@function
_start:                                 # @_start
	.cfi_startproc
# BB#0:
	pushq	%rbp
.Lcfi0:
	.cfi_def_cfa_offset 16
.Lcfi1:
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
.Lcfi2:
	.cfi_def_cfa_register %rbp
	pushq	%r15
	pushq	%r14
	pushq	%r13
	pushq	%r12
	pushq	%rbx
	pushq	%rax
.Lcfi3:
	.cfi_offset %rbx, -56
.Lcfi4:
	.cfi_offset %r12, -48
.Lcfi5:
	.cfi_offset %r13, -40
.Lcfi6:
	.cfi_offset %r14, -32
.Lcfi7:
	.cfi_offset %r15, -24
	movq	%rdi, %r14
	movq	(%r14), %r15
	movslq	%r15d, %rax
	leaq	16(%r14,%rax,8), %r13
	cmpq	$0, environ(%rip)
	jne	.LBB0_2
# BB#1:
	movq	%r13, environ(%rip)
.LBB0_2:
	addq	$8, %r14
	testl	%r15d, %r15d
	jle	.LBB0_9
# BB#3:
	movq	(%r14), %rax
	testq	%rax, %rax
	jne	.LBB0_4
	jmp	.LBB0_9
	.p2align	4, 0x90
.LBB0_8:                                #   in Loop: Header=BB0_4 Depth=1
	incq	%rax
.LBB0_4:                                # =>This Loop Header: Depth=1
                                        #     Child Loop BB0_5 Depth 2
	movq	%rax, __progname(%rip)
	jmp	.LBB0_5
	.p2align	4, 0x90
.LBB0_7:                                #   in Loop: Header=BB0_5 Depth=2
	incq	%rax
.LBB0_5:                                #   Parent Loop BB0_4 Depth=1
                                        # =>  This Inner Loop Header: Depth=2
	movzbl	(%rax), %ecx
	cmpb	$47, %cl
	je	.LBB0_8
# BB#6:                                 #   in Loop: Header=BB0_5 Depth=2
	testb	%cl, %cl
	jne	.LBB0_7
.LBB0_9:
	movl	$_DYNAMIC, %eax
	testq	%rax, %rax
	je	.LBB0_11
# BB#10:
	movq	%rsi, %rdi
	callq	atexit
	jmp	.LBB0_12
.LBB0_11:
	callq	_init_tls
.LBB0_12:
	movl	$_mcleanup, %edi
	callq	atexit
	movl	$eprol, %edi
	movl	$etext, %esi
	callq	monstartup
	#APP
eprol:
	#NO_APP
	movl	$_DYNAMIC, %eax
	testq	%rax, %rax
	jne	.LBB0_23
# BB#13:
	movl	$finalizer, %edi
	callq	atexit
	movl	$__preinit_array_start, %eax
	movl	$__preinit_array_end, %ecx
	subq	%rax, %rcx
	movq	%rcx, %rax
	sarq	$63, %rax
	shrq	$61, %rax
	addq	%rcx, %rax
	sarq	$3, %rax
	je	.LBB0_18
# BB#14:
	xorl	%r12d, %r12d
	movl	$__preinit_array_start, %eax
	movl	$__preinit_array_end, %ecx
	subq	%rax, %rcx
	movq	%rcx, %rbx
	sarq	$63, %rbx
	shrq	$61, %rbx
	addq	%rcx, %rbx
	sarq	$3, %rbx
	.p2align	4, 0x90
.LBB0_15:                               # =>This Inner Loop Header: Depth=1
	movq	__preinit_array_start(,%r12,8), %rax
	cmpq	$2, %rax
	jb	.LBB0_17
# BB#16:                                #   in Loop: Header=BB0_15 Depth=1
	movl	%r15d, %edi
	movq	%r14, %rsi
	movq	%r13, %rdx
	callq	*%rax
.LBB0_17:                               #   in Loop: Header=BB0_15 Depth=1
	incq	%r12
	cmpq	%rbx, %r12
	jb	.LBB0_15
.LBB0_18:
	callq	_init
	movl	$__init_array_start, %eax
	movl	$__init_array_end, %ecx
	subq	%rax, %rcx
	movq	%rcx, %rax
	sarq	$63, %rax
	shrq	$61, %rax
	addq	%rcx, %rax
	sarq	$3, %rax
	je	.LBB0_23
# BB#19:
	xorl	%ebx, %ebx
	movl	$__init_array_start, %eax
	movl	$__init_array_end, %ecx
	subq	%rax, %rcx
	movq	%rcx, %r12
	sarq	$63, %r12
	shrq	$61, %r12
	addq	%rcx, %r12
	sarq	$3, %r12
	.p2align	4, 0x90
.LBB0_20:                               # =>This Inner Loop Header: Depth=1
	movq	__init_array_start(,%rbx,8), %rax
	cmpq	$2, %rax
	jb	.LBB0_22
# BB#21:                                #   in Loop: Header=BB0_20 Depth=1
	movl	%r15d, %edi
	movq	%r14, %rsi
	movq	%r13, %rdx
	callq	*%rax
.LBB0_22:                               #   in Loop: Header=BB0_20 Depth=1
	incq	%rbx
	cmpq	%r12, %rbx
	jb	.LBB0_20
.LBB0_23:
	movl	%r15d, %edi
	movq	%r14, %rsi
	movq	%r13, %rdx
	callq	main
	movl	%eax, %edi
	callq	exit
.Lfunc_end0:
	.size	_start, .Lfunc_end0-_start
	.cfi_endproc

	.p2align	4, 0x90
	.type	finalizer,@function
finalizer:                              # @finalizer
	.cfi_startproc
# BB#0:
	pushq	%rbp
.Lcfi8:
	.cfi_def_cfa_offset 16
.Lcfi9:
	.cfi_offset %rbp, -16
	movq	%rsp, %rbp
.Lcfi10:
	.cfi_def_cfa_register %rbp
	pushq	%rbx
	pushq	%rax
.Lcfi11:
	.cfi_offset %rbx, -24
	movl	$__fini_array_start, %eax
	movl	$__fini_array_end, %ecx
	subq	%rax, %rcx
	movq	%rcx, %rax
	sarq	$63, %rax
	shrq	$61, %rax
	addq	%rcx, %rax
	sarq	$3, %rax
	je	.LBB1_4
# BB#1:
	movl	$__fini_array_start, %eax
	movl	$__fini_array_end, %ecx
	subq	%rax, %rcx
	movq	%rcx, %rbx
	sarq	$63, %rbx
	shrq	$61, %rbx
	addq	%rcx, %rbx
	sarq	$3, %rbx
	.p2align	4, 0x90
.LBB1_2:                                # =>This Inner Loop Header: Depth=1
	movq	__fini_array_start-8(,%rbx,8), %rax
	decq	%rbx
	cmpq	$1, %rax
	jbe	.LBB1_3
# BB#5:                                 #   in Loop: Header=BB1_2 Depth=1
	callq	*%rax
.LBB1_3:                                #   in Loop: Header=BB1_2 Depth=1
	testq	%rbx, %rbx
	jne	.LBB1_2
.LBB1_4:
	addq	$8, %rsp
	popq	%rbx
	popq	%rbp
	jmp	_fini                   # TAILCALL
.Lfunc_end1:
	.size	finalizer, .Lfunc_end1-finalizer
	.cfi_endproc

	.type	abitag,@object          # @abitag
	.section	.note.tag,"a",@note
	.p2align	2
abitag:
	.long	8                       # 0x8
	.long	4                       # 0x4
	.long	1                       # 0x1
	.asciz	"FreeBSD"
	.long	1101001                 # 0x10ccc9
	.size	abitag, 24

	.type	.L.str,@object          # @.str
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str:
	.zero	1
	.size	.L.str, 1

	.type	__progname,@object      # @__progname
	.data
	.globl	__progname
	.p2align	3
__progname:
	.quad	.L.str
	.size	__progname, 8

	.type	crt_noinit_tag,@object  # @crt_noinit_tag
	.section	.note.tag,"a",@note
	.p2align	2
crt_noinit_tag:
	.long	8                       # 0x8
	.long	4                       # 0x4
	.long	2                       # 0x2
	.asciz	"FreeBSD"
	.long	0                       # 0x0
	.size	crt_noinit_tag, 24

	.type	environ,@object         # @environ
	.comm	environ,8,8
	.hidden	__preinit_array_end
	.hidden	__preinit_array_start
	.hidden	__init_array_end
	.hidden	__init_array_start
	.hidden	__fini_array_end
	.hidden	__fini_array_start
	.hidden	_init
	.hidden	_fini
	.weak	_DYNAMIC

	.ident	"FreeBSD clang version 4.0.0 (tags/RELEASE_400/final 297347) (based on LLVM 4.0.0)"
	.section	".note.GNU-stack","",@progbits