summaryrefslogtreecommitdiff
path: root/util/mkelfImage/kunzip_src/arch/alpha/lib/start.S
blob: a89f4ca6de4331716f6f3464e94aef024a6393bf (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
.set noat
.set noreorder
.text

__original_registers:
	.quad 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

__entry:
	.quad entry

.globl __start
__start:
	br $27, __save_registers
__save_registers:
	lda $27, (__original_registers - __save_registers)($27)
	stq $0,    0($27)
	stq $1,    8($27)
	stq $2,   16($27)
	stq $3,   24($27)
	stq $4,   32($27)
	stq $5,   40($27)
	stq $6,   48($27)
	stq $7,   56($27)
	stq $8,   64($27)
	stq $9,   72($27)
	stq $10,  80($27)
	stq $11,  88($27)
	stq $12,  96($27)
	stq $13, 104($27)
	stq $14, 112($27)
	stq $15, 120($27)
	stq $16, 128($27)
	stq $17, 136($27)
	stq $18, 144($27)
	stq $19, 152($27)
	stq $20, 160($27)
	stq $21, 168($27)
	stq $22, 176($27)
	stq $23, 184($27)
	stq $24, 192($27)
	stq $25, 200($27)
	stq $26, 208($27)
	stq $28, 224($27)
	stq $29, 232($27)
	stq $30, 240($27)

__normal_start:
	ldgp $29, (__normal_start - __original_registers)($27)
	lda  $30, _estack
	jsr  $26, kunzip

.globl jmp_to_program_entry
jmp_to_program_entry:
	br   $27, __restore_registers
__restore_registers:
	lda  $27,(__original_registers - __restore_registers)($27)
	stq  $16, (__entry - __original_registers)($27)
	ldq $0,    0($27)
	ldq $1,    8($27)
	ldq $2,   16($27)
	ldq $3,   24($27)
	ldq $4,   32($27)
	ldq $5,   40($27)
	ldq $6,   48($27)
	ldq $7,   56($27)
	ldq $8,   64($27)
	ldq $9,   72($27)
	ldq $10,  80($27)
	ldq $11,  88($27)
	ldq $12,  96($27)
	ldq $13, 104($27)
	ldq $14, 112($27)
	ldq $15, 120($27)
	ldq $16, 128($27)
	ldq $17, 136($27)
	ldq $18, 144($27)
	ldq $19, 152($27)
	ldq $20, 160($27)
	ldq $21, 168($27)
	ldq $22, 176($27)
	ldq $23, 184($27)
	ldq $24, 192($27)
	ldq $25, 200($27)
	ldq $26, 208($27)
	ldq $28, 224($27)
	ldq $29, 232($27)
	ldq $30, 240($27)
	ldq $27, (__entry - __original_registers)($27)
	jsr $31, ($27)