mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-11-03 23:54:33 +01:00 
			
		
		
		
	symbols in assembler sources. Added to corresponding system variables or typed constants a public name 'operatingsystem_XXX' alias and used that alias in assembler source. git-svn-id: trunk@18943 -
		
			
				
	
	
		
			444 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			ActionScript
		
	
	
	
	
	
			
		
		
	
	
			444 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			ActionScript
		
	
	
	
	
	
	.file	"crt0.c"
 | 
						|
gcc2_compiled.:
 | 
						|
	.globl __progname
 | 
						|
	.section	".data"	# .rodata
 | 
						|
	.align 2
 | 
						|
.LC0:
 | 
						|
	.string	""
 | 
						|
	.section	".sdata","aw"
 | 
						|
	.align 2
 | 
						|
	.type	 __progname,@object
 | 
						|
	.size	 __progname,4
 | 
						|
__progname:
 | 
						|
.LCP0:
 | 
						|
	.long (.LC0)@fixup
 | 
						|
	.section	".fixup","aw"
 | 
						|
	.align 2
 | 
						|
	.long	.LCP0
 | 
						|
	.previous
 | 
						|
	.globl __ps_strings
 | 
						|
	.align 2
 | 
						|
	.type	 __ps_strings,@object
 | 
						|
	.size	 __ps_strings,4
 | 
						|
__ps_strings:
 | 
						|
	.long 0
 | 
						|
	.weak _DYNAMIC
 | 
						|
	.weak _SDA_BASE_
 | 
						|
	.weak _SDA2_BASE_
 | 
						|
	.section	".got2","aw"
 | 
						|
.LCTOC1 = .+32768
 | 
						|
.LC1 = .-.LCTOC1
 | 
						|
	.long __progname
 | 
						|
.LC2 = .-.LCTOC1
 | 
						|
	.long environ
 | 
						|
.LC3 = .-.LCTOC1
 | 
						|
	.long __ps_strings
 | 
						|
.LC4 = .-.LCTOC1
 | 
						|
	.long _DYNAMIC
 | 
						|
.LC5 = .-.LCTOC1
 | 
						|
	.long _fini
 | 
						|
	.section	".text"
 | 
						|
	.align 2
 | 
						|
	.globl _start
 | 
						|
.LCL0:
 | 
						|
	.long .LCTOC1-.LCF0
 | 
						|
	.type	 _start,@function
 | 
						|
_start:
 | 
						|
	stwu 1,-48(1)
 | 
						|
	mflr 0
 | 
						|
	stw 24,16(1)
 | 
						|
	stw 25,20(1)
 | 
						|
	stw 26,24(1)
 | 
						|
	stw 27,28(1)
 | 
						|
	stw 28,32(1)
 | 
						|
	stw 29,36(1)
 | 
						|
	stw 30,40(1)
 | 
						|
	stw 31,44(1)
 | 
						|
	stw 0,52(1)
 | 
						|
	bl .LCF0
 | 
						|
.LCF0:
 | 
						|
	mflr 30
 | 
						|
	lwz 0,(.LCL0-.LCF0)(30)
 | 
						|
	add 30,0,30
 | 
						|
	mr 27,4
 | 
						|
	mr 24,3
 | 
						|
	mr 28,5
 | 
						|
	mr 25,6
 | 
						|
	mr 26,7
 | 
						|
	mr 29,8
 | 
						|
	lis %r13,_SDA_BASE_@ha;addi %r13,%r13,_SDA_BASE_@l;lis %r2,_SDA2_BASE_@ha;addi %r2,%r2,_SDA2_BASE_@l
 | 
						|
	lwz 31,0(27)
 | 
						|
	cmpwi 0,31,0
 | 
						|
	bc 12,2,.L7
 | 
						|
	mr 3,31
 | 
						|
	li 4,47
 | 
						|
	bl _strrchr@local
 | 
						|
	lwz 9,.LC1(30)
 | 
						|
	cmpwi 0,3,0
 | 
						|
	stw 3,0(9)
 | 
						|
	bc 4,2,.L8
 | 
						|
	stw 31,0(9)
 | 
						|
	b .L12
 | 
						|
.L8:
 | 
						|
	addi 0,3,1
 | 
						|
	stw 0,0(9)
 | 
						|
.L12:
 | 
						|
.L7:
 | 
						|
	lwz 31,.LC2(30)
 | 
						|
	cmpwi 0,29,0
 | 
						|
	stw 28,0(31)
 | 
						|
	bc 12,2,.L10
 | 
						|
	lwz 9,.LC3(30)
 | 
						|
	stw 29,0(9)
 | 
						|
.L10:
 | 
						|
	lwz 0,.LC4(30)
 | 
						|
	cmpwi 0,0,0
 | 
						|
	bc 12,2,.L11
 | 
						|
	mr 3,26
 | 
						|
	mr 4,25
 | 
						|
	bl _rtld_setup@plt
 | 
						|
.L11:
 | 
						|
	lwz 3,.LC5(30)
 | 
						|
	bl atexit@plt
 | 
						|
	bl _init@plt
 | 
						|
	lwz 5,0(31)
 | 
						|
	mr 3,24
 | 
						|
	mr 4,27
 | 
						|
 | 
						|
        lis     11,operatingsystem_parameter_argc@ha
 | 
						|
        stw     3,operatingsystem_parameter_argc@l(11);
 | 
						|
        lis     11,operatingsystem_parameter_argv@ha
 | 
						|
        stw     4,operatingsystem_parameter_argv@l(11); 
 | 
						|
        
 | 
						|
        lis     11,operatingsystem_parameter_envp@ha
 | 
						|
        stw     5,operatingsystem_parameter_envp@l(11); 
 | 
						|
	mtlr    0
 | 
						|
	bl main@plt
 | 
						|
 | 
						|
_haltproc:
 | 
						|
        lis     3,operatingsystem_result@h
 | 
						|
        stw     3,operatingsystem_result@l(3)
 | 
						|
	bl exit@plt
 | 
						|
.Lfe1:
 | 
						|
	.size	 _start,.Lfe1-_start
 | 
						|
	.section .ident ; .asciz "$NetBSD: crt0.c,v 1.22 2002/05/09 20:32:59 matt Exp $" ; .text
 | 
						|
	.align 2
 | 
						|
	.type	 _strrchr,@function
 | 
						|
_strrchr:
 | 
						|
	rlwinm 4,4,0,0xff
 | 
						|
	li 10,0
 | 
						|
.L14:
 | 
						|
	lbz 0,0(3)
 | 
						|
	xor 9,0,4
 | 
						|
	neg 9,9
 | 
						|
	srawi 9,9,31
 | 
						|
	andc 11,3,9
 | 
						|
	cmpwi 0,0,0
 | 
						|
	and 9,10,9
 | 
						|
	or 10,9,11
 | 
						|
	addi 3,3,1
 | 
						|
	bc 4,2,.L14
 | 
						|
	mr 3,10
 | 
						|
	blr
 | 
						|
.Lfe2:
 | 
						|
	.size	 _strrchr,.Lfe2-_strrchr
 | 
						|
	.section	".data"	# .rodata
 | 
						|
	.align 2
 | 
						|
.LC6:
 | 
						|
	.string	"Corrupt Obj_Entry pointer in GOT\n"
 | 
						|
	.align 2
 | 
						|
.LC8:
 | 
						|
	.string	"Dynamic linker version mismatch\n"
 | 
						|
	.section	".got2","aw"
 | 
						|
.LC7 = .-.LCTOC1
 | 
						|
	.long .LC6
 | 
						|
.LC9 = .-.LCTOC1
 | 
						|
	.long .LC8
 | 
						|
	.section	".text"
 | 
						|
	.align 2
 | 
						|
	.globl _rtld_setup
 | 
						|
.LCL1:
 | 
						|
	.long .LCTOC1-.LCF1
 | 
						|
	.type	 _rtld_setup,@function
 | 
						|
_rtld_setup:
 | 
						|
	stwu 1,-32(1)
 | 
						|
	mflr 0
 | 
						|
	stw 29,20(1)
 | 
						|
	stw 30,24(1)
 | 
						|
	stw 31,28(1)
 | 
						|
	stw 0,36(1)
 | 
						|
	bl .LCF1
 | 
						|
.LCF1:
 | 
						|
	mflr 30
 | 
						|
	lwz 0,(.LCL1-.LCF1)(30)
 | 
						|
	add 30,0,30
 | 
						|
	mr. 31,4
 | 
						|
	mr 29,3
 | 
						|
	bc 12,2,.L22
 | 
						|
	lwz 9,0(31)
 | 
						|
	lis 0,0xd550
 | 
						|
	ori 0,0,47226
 | 
						|
	cmpw 0,9,0
 | 
						|
	bc 12,2,.L21
 | 
						|
.L22:
 | 
						|
	lwz 6,.LC7(30)
 | 
						|
	li 3,0
 | 
						|
	li 4,4
 | 
						|
	li 5,2
 | 
						|
	li 7,33
 | 
						|
	crxor 6,6,6
 | 
						|
	bl __syscall@plt
 | 
						|
	li 3,0
 | 
						|
	li 4,1
 | 
						|
	li 5,1
 | 
						|
	crxor 6,6,6
 | 
						|
	bl __syscall@plt
 | 
						|
.L21:
 | 
						|
	lwz 0,4(31)
 | 
						|
	cmpwi 0,0,1
 | 
						|
	bc 12,2,.L27
 | 
						|
	lwz 6,.LC9(30)
 | 
						|
	li 3,0
 | 
						|
	li 4,4
 | 
						|
	li 5,2
 | 
						|
	li 7,32
 | 
						|
	crxor 6,6,6
 | 
						|
	bl __syscall@plt
 | 
						|
	li 3,0
 | 
						|
	li 4,1
 | 
						|
	li 5,1
 | 
						|
	crxor 6,6,6
 | 
						|
	bl __syscall@plt
 | 
						|
.L27:
 | 
						|
	mr 3,29
 | 
						|
	bl atexit@plt
 | 
						|
	lwz 0,36(1)
 | 
						|
	mtlr 0
 | 
						|
	lwz 29,20(1)
 | 
						|
	lwz 30,24(1)
 | 
						|
	lwz 31,28(1)
 | 
						|
	la 1,32(1)
 | 
						|
	blr
 | 
						|
.Lfe3:
 | 
						|
	.size	 _rtld_setup,.Lfe3-_rtld_setup
 | 
						|
	.weak dlopen ; dlopen = _dlopen
 | 
						|
	.weak dlclose ; dlclose = _dlclose
 | 
						|
	.weak dlsym ; dlsym = _dlsym
 | 
						|
	.weak dlerror ; dlerror = _dlerror
 | 
						|
	.weak dladdr ; dladdr = _dladdr
 | 
						|
	.section	".got2","aw"
 | 
						|
.LC10 = .-.LCTOC1
 | 
						|
	.long __mainprog_obj
 | 
						|
	.section	".text"
 | 
						|
	.align 2
 | 
						|
	.globl _dlopen
 | 
						|
.LCL2:
 | 
						|
	.long .LCTOC1-.LCF2
 | 
						|
	.type	 _dlopen,@function
 | 
						|
_dlopen:
 | 
						|
	stwu 1,-16(1)
 | 
						|
	mflr 0
 | 
						|
	stw 30,8(1)
 | 
						|
	stw 31,12(1)
 | 
						|
	stw 0,20(1)
 | 
						|
	bl .LCF2
 | 
						|
.LCF2:
 | 
						|
	mflr 30
 | 
						|
	lwz 0,(.LCL2-.LCF2)(30)
 | 
						|
	add 30,0,30
 | 
						|
	lwz 9,.LC10(30)
 | 
						|
	lwz 9,0(9)
 | 
						|
	cmpwi 0,9,0
 | 
						|
	bc 12,2,.L33
 | 
						|
	lwz 0,140(9)
 | 
						|
	mtlr 0
 | 
						|
	blrl
 | 
						|
	b .L34
 | 
						|
.L33:
 | 
						|
	li 3,0
 | 
						|
.L34:
 | 
						|
	lwz 0,20(1)
 | 
						|
	mtlr 0
 | 
						|
	lwz 30,8(1)
 | 
						|
	lwz 31,12(1)
 | 
						|
	la 1,16(1)
 | 
						|
	blr
 | 
						|
.Lfe4:
 | 
						|
	.size	 _dlopen,.Lfe4-_dlopen
 | 
						|
	.section	".got2","aw"
 | 
						|
.LC11 = .-.LCTOC1
 | 
						|
	.long __mainprog_obj
 | 
						|
	.section	".text"
 | 
						|
	.align 2
 | 
						|
	.globl _dlclose
 | 
						|
.LCL3:
 | 
						|
	.long .LCTOC1-.LCF3
 | 
						|
	.type	 _dlclose,@function
 | 
						|
_dlclose:
 | 
						|
	stwu 1,-16(1)
 | 
						|
	mflr 0
 | 
						|
	stw 30,8(1)
 | 
						|
	stw 31,12(1)
 | 
						|
	stw 0,20(1)
 | 
						|
	bl .LCF3
 | 
						|
.LCF3:
 | 
						|
	mflr 30
 | 
						|
	lwz 0,(.LCL3-.LCF3)(30)
 | 
						|
	add 30,0,30
 | 
						|
	lwz 9,.LC11(30)
 | 
						|
	lwz 9,0(9)
 | 
						|
	cmpwi 0,9,0
 | 
						|
	bc 12,2,.L36
 | 
						|
	lwz 0,152(9)
 | 
						|
	mtlr 0
 | 
						|
	blrl
 | 
						|
	b .L37
 | 
						|
.L36:
 | 
						|
	li 3,-1
 | 
						|
.L37:
 | 
						|
	lwz 0,20(1)
 | 
						|
	mtlr 0
 | 
						|
	lwz 30,8(1)
 | 
						|
	lwz 31,12(1)
 | 
						|
	la 1,16(1)
 | 
						|
	blr
 | 
						|
.Lfe5:
 | 
						|
	.size	 _dlclose,.Lfe5-_dlclose
 | 
						|
	.section	".got2","aw"
 | 
						|
.LC12 = .-.LCTOC1
 | 
						|
	.long __mainprog_obj
 | 
						|
	.section	".text"
 | 
						|
	.align 2
 | 
						|
	.globl _dlsym
 | 
						|
.LCL4:
 | 
						|
	.long .LCTOC1-.LCF4
 | 
						|
	.type	 _dlsym,@function
 | 
						|
_dlsym:
 | 
						|
	stwu 1,-16(1)
 | 
						|
	mflr 0
 | 
						|
	stw 30,8(1)
 | 
						|
	stw 31,12(1)
 | 
						|
	stw 0,20(1)
 | 
						|
	bl .LCF4
 | 
						|
.LCF4:
 | 
						|
	mflr 30
 | 
						|
	lwz 0,(.LCL4-.LCF4)(30)
 | 
						|
	add 30,0,30
 | 
						|
	lwz 9,.LC12(30)
 | 
						|
	lwz 9,0(9)
 | 
						|
	cmpwi 0,9,0
 | 
						|
	bc 12,2,.L39
 | 
						|
	lwz 0,144(9)
 | 
						|
	mtlr 0
 | 
						|
	blrl
 | 
						|
	b .L40
 | 
						|
.L39:
 | 
						|
	li 3,0
 | 
						|
.L40:
 | 
						|
	lwz 0,20(1)
 | 
						|
	mtlr 0
 | 
						|
	lwz 30,8(1)
 | 
						|
	lwz 31,12(1)
 | 
						|
	la 1,16(1)
 | 
						|
	blr
 | 
						|
.Lfe6:
 | 
						|
	.size	 _dlsym,.Lfe6-_dlsym
 | 
						|
	.section	".data"	# .rodata
 | 
						|
	.align 2
 | 
						|
.LC14:
 | 
						|
	.string	"Dynamic linker interface not available"
 | 
						|
	.section	".got2","aw"
 | 
						|
.LC13 = .-.LCTOC1
 | 
						|
	.long __mainprog_obj
 | 
						|
.LC15 = .-.LCTOC1
 | 
						|
	.long .LC14
 | 
						|
	.section	".text"
 | 
						|
	.align 2
 | 
						|
	.globl _dlerror
 | 
						|
.LCL5:
 | 
						|
	.long .LCTOC1-.LCF5
 | 
						|
	.type	 _dlerror,@function
 | 
						|
_dlerror:
 | 
						|
	stwu 1,-16(1)
 | 
						|
	mflr 0
 | 
						|
	stw 30,8(1)
 | 
						|
	stw 31,12(1)
 | 
						|
	stw 0,20(1)
 | 
						|
	bl .LCF5
 | 
						|
.LCF5:
 | 
						|
	mflr 30
 | 
						|
	lwz 0,(.LCL5-.LCF5)(30)
 | 
						|
	add 30,0,30
 | 
						|
	lwz 9,.LC13(30)
 | 
						|
	lwz 9,0(9)
 | 
						|
	cmpwi 0,9,0
 | 
						|
	bc 12,2,.L42
 | 
						|
	lwz 0,148(9)
 | 
						|
	mtlr 0
 | 
						|
	blrl
 | 
						|
	b .L43
 | 
						|
.L42:
 | 
						|
	lwz 3,.LC15(30)
 | 
						|
.L43:
 | 
						|
	lwz 0,20(1)
 | 
						|
	mtlr 0
 | 
						|
	lwz 30,8(1)
 | 
						|
	lwz 31,12(1)
 | 
						|
	la 1,16(1)
 | 
						|
	blr
 | 
						|
.Lfe7:
 | 
						|
	.size	 _dlerror,.Lfe7-_dlerror
 | 
						|
	.section	".got2","aw"
 | 
						|
.LC16 = .-.LCTOC1
 | 
						|
	.long __mainprog_obj
 | 
						|
	.section	".text"
 | 
						|
	.align 2
 | 
						|
	.globl _dladdr
 | 
						|
.LCL6:
 | 
						|
	.long .LCTOC1-.LCF6
 | 
						|
	.type	 _dladdr,@function
 | 
						|
_dladdr:
 | 
						|
	stwu 1,-16(1)
 | 
						|
	mflr 0
 | 
						|
	stw 30,8(1)
 | 
						|
	stw 31,12(1)
 | 
						|
	stw 0,20(1)
 | 
						|
	bl .LCF6
 | 
						|
.LCF6:
 | 
						|
	mflr 30
 | 
						|
	lwz 0,(.LCL6-.LCF6)(30)
 | 
						|
	add 30,0,30
 | 
						|
	lwz 9,.LC16(30)
 | 
						|
	lwz 9,0(9)
 | 
						|
	cmpwi 0,9,0
 | 
						|
	bc 12,2,.L45
 | 
						|
	lwz 0,156(9)
 | 
						|
	mtlr 0
 | 
						|
	blrl
 | 
						|
	b .L46
 | 
						|
.L45:
 | 
						|
	li 3,-1
 | 
						|
.L46:
 | 
						|
	lwz 0,20(1)
 | 
						|
	mtlr 0
 | 
						|
	lwz 30,8(1)
 | 
						|
	lwz 31,12(1)
 | 
						|
	la 1,16(1)
 | 
						|
	blr
 | 
						|
 | 
						|
.Lfe8:
 | 
						|
	.size	 _dladdr,.Lfe8-_dladdr
 | 
						|
	.comm	environ,4,4
 | 
						|
	.comm	__mainprog_obj,4,4
 | 
						|
	.ident	"GCC: (GNU) 2.95.3 20010315 (release) (NetBSD nb3)"
 | 
						|
 | 
						|
      .section ".data"
 | 
						|
      .globl  __data_start
 | 
						|
__data_start:
 | 
						|
data_start:
 | 
						|
        .globl  ___fpc_brk_addr         /* heap management */
 | 
						|
        .type   ___fpc_brk_addr,@object
 | 
						|
        .size   ___fpc_brk_addr,4
 | 
						|
___fpc_brk_addr: 
 | 
						|
        .long   0
 |