Welcome to mirror list, hosted at ThFree Co, Russian Federation.

crt0.S « sysmec « sys « libc « newlib - cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: ca7c88fe6e4277e42ce9948c01372b4bcd5b7762 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#ifdef __mn10300__
	.section .text
	.global	_start
_start:
	mov _stack-8,a0		# Load up the stack pointer
	mov a0,sp

	mov _edata,a0		# Get the start/end of bss
	mov _end,a1

	cmp a0,a1		# If no bss, then do nothing
	beq .L0

	clr d0			# clear d0

.L1:
	movbu d0,(a0)		# Clear a byte and bump pointer
	inc a0
	cmp a0,a1
	bne .L1

.L0:
	call ___main,[],0	# Call __main to run ctors/dtors
	clr d0
	clr d1
	mov d0,(4,sp)
	call _main,[],0		# Call main program
	call _exit,[],0		# All done, no need to return or
				# deallocate our stack.

	.section ._stack
_stack:	.long 	1
#else
	.section .text
	.global	_start
_start:
	mov _stack-4,a3		# Load up the stack pointer and allocate
				# our current frame.

	mov _edata,a0		# Get the start/end of bss
	mov _end,a1

	cmp a0,a1		# If no bss, then do nothing
	beqx .L0

	sub d0,d0		# clear d0

.L1:
	movb d0,(a0)		# Clear a byte and bump pointer
	add 1,a0
	cmp a0,a1
	bnex .L1

.L0:
	jsr ___main
	sub d0,d0
	mov d0,d1
	mov d0,(a3)
	jsr _main		# Call main program
	jmp _exit		# All done, no need to return or
				# deallocate our stack.

	.section ._stack
_stack:	.long 	1
#endif