6b13f685e
김민수
BSP 최초 추가
|
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
#include <asm/assembly.h>
#include <asm/asm-offsets.h>
#include <asm/unistd.h>
#include <asm/errno.h>
#include <linux/linkage.h>
.level LEVEL
.text
.import hpux_call_table
.import hpux_syscall_exit,code
.align PAGE_SIZE
ENTRY(hpux_gateway_page)
nop
#ifdef CONFIG_64BIT
#warning NEEDS WORK for 64-bit
#endif
ldw -64(%r30), %r29 ;! 8th argument
ldw -60(%r30), %r19 ;! 7th argument
ldw -56(%r30), %r20 ;! 6th argument
ldw -52(%r30), %r21 ;! 5th argument
gate .+8, %r0
mtsp %r0,%sr4
mtsp %r0,%sr5
mtsp %r0,%sr6
mfsp %sr7,%r1
mtsp %r1,%sr3
mtctl %r30,%cr28
mfctl %cr30,%r1
xor %r1,%r30,%r30
xor %r1,%r30,%r1
xor %r1,%r30,%r30
ldo TASK_SZ_ALGN+FRAME_SIZE(%r30),%r30
mtsp %r0,%sr7
STREG %r1,TASK_PT_GR30-TASK_SZ_ALGN-FRAME_SIZE(%r30)
ldo -TASK_SZ_ALGN-FRAME_SIZE(%r30),%r1
STREG %r0, TASK_PT_PSW(%r1)
STREG %r2, TASK_PT_GR2(%r1)
STREG %r19, TASK_PT_GR19(%r1)
STREG %r20, TASK_PT_GR20(%r1)
STREG %r21, TASK_PT_GR21(%r1)
STREG %r22, TASK_PT_GR22(%r1)
STREG %r23, TASK_PT_GR23(%r1)
STREG %r24, TASK_PT_GR24(%r1)
STREG %r25, TASK_PT_GR25(%r1)
STREG %r26, TASK_PT_GR26(%r1)
STREG %r27, TASK_PT_GR27(%r1)
STREG %r28, TASK_PT_GR28(%r1)
STREG %r0, TASK_PT_ORIG_R28(%r1)
STREG %r29, TASK_PT_GR29(%r1)
STREG %r31, TASK_PT_GR31(%r1)
ldo TASK_PT_FR0(%r1), %r27
save_fp %r27
mfctl %cr11, %r27
STREG %r27, TASK_PT_SAR(%r1)
loadgp
stw %r21, -52(%r30) ;! 5th argument
stw %r20, -56(%r30) ;! 6th argument
stw %r19, -60(%r30) ;! 7th argument
stw %r29, -64(%r30) ;! 8th argument
ldil L%hpux_call_table, %r21
ldo R%hpux_call_table(%r21), %r21
comiclr,>>= __NR_HPUX_syscalls, %r22, %r0
b,n syscall_nosys
LDREGX %r22(%r21), %r21
ldil L%hpux_syscall_exit,%r2
be 0(%sr7,%r21)
ldo R%hpux_syscall_exit(%r2),%r2
syscall_nosys:
ldil L%hpux_syscall_exit,%r1
be R%hpux_syscall_exit(%sr7,%r1)
ldo -ENOSYS(%r0),%r28
ENDPROC(hpux_gateway_page)
.align PAGE_SIZE
ENTRY(end_hpux_gateway_page)
|