Skip to content

Commit 20f6953

Browse files
committed
csky: Coding convention in entry.S
There is no fixup or feature in the patch, we only cleanup with: - Remove unnecessary reg used (r11, r12), just use r9 & r10 & syscallid regs as temp useage. - Add _TIF_SYSCALL_WORK and _TIF_WORK_MASK to gather macros. Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
1 parent e0bbb53 commit 20f6953

File tree

4 files changed

+42
-40
lines changed

4 files changed

+42
-40
lines changed

arch/csky/abiv1/inc/abi/entry.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,4 @@
174174
movi r6, 0
175175
cpwcr r6, cpcr31
176176
.endm
177-
178-
.macro ANDI_R3 rx, imm
179-
lsri \rx, 3
180-
andi \rx, (\imm >> 3)
181-
.endm
182177
#endif /* __ASM_CSKY_ENTRY_H */

arch/csky/abiv2/inc/abi/entry.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -302,9 +302,4 @@
302302
jmpi 3f /* jump to va */
303303
3:
304304
.endm
305-
306-
.macro ANDI_R3 rx, imm
307-
lsri \rx, 3
308-
andi \rx, (\imm >> 3)
309-
.endm
310305
#endif /* __ASM_CSKY_ENTRY_H */

arch/csky/include/asm/thread_info.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,10 @@ static inline struct thread_info *current_thread_info(void)
8181
#define _TIF_RESTORE_SIGMASK (1 << TIF_RESTORE_SIGMASK)
8282
#define _TIF_SECCOMP (1 << TIF_SECCOMP)
8383

84+
#define _TIF_WORK_MASK (_TIF_NEED_RESCHED | _TIF_SIGPENDING | \
85+
_TIF_NOTIFY_RESUME | _TIF_UPROBE)
86+
87+
#define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
88+
_TIF_SYSCALL_TRACEPOINT)
89+
8490
#endif /* _ASM_CSKY_THREAD_INFO_H */

arch/csky/kernel/entry.S

Lines changed: 36 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -134,31 +134,32 @@ ENTRY(csky_systemcall)
134134
#endif
135135
psrset ee, ie
136136

137-
lrw r11, __NR_syscalls
138-
cmphs syscallid, r11 /* Check nr of syscall */
137+
lrw r9, __NR_syscalls
138+
cmphs syscallid, r9 /* Check nr of syscall */
139139
bt ret_from_exception
140140

141-
lrw r13, sys_call_table
142-
ixw r13, syscallid
143-
ldw r11, (r13)
144-
cmpnei r11, 0
141+
lrw r9, sys_call_table
142+
ixw r9, syscallid
143+
ldw syscallid, (r9)
144+
cmpnei syscallid, 0
145145
bf ret_from_exception
146146

147147
mov r9, sp
148148
bmaski r10, THREAD_SHIFT
149149
andn r9, r10
150-
ldw r12, (r9, TINFO_FLAGS)
151-
ANDI_R3 r12, (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT)
152-
cmpnei r12, 0
150+
ldw r10, (r9, TINFO_FLAGS)
151+
lrw r9, _TIF_SYSCALL_WORK
152+
and r10, r9
153+
cmpnei r10, 0
153154
bt csky_syscall_trace
154155
#if defined(__CSKYABIV2__)
155156
subi sp, 8
156157
stw r5, (sp, 0x4)
157158
stw r4, (sp, 0x0)
158-
jsr r11 /* Do system call */
159+
jsr syscallid /* Do system call */
159160
addi sp, 8
160161
#else
161-
jsr r11
162+
jsr syscallid
162163
#endif
163164
stw a0, (sp, LSAVE_A0) /* Save return value */
164165
jmpi ret_from_exception
@@ -177,13 +178,12 @@ csky_syscall_trace:
177178
stw r9, (sp, 0x0)
178179
ldw r9, (sp, LSAVE_A5)
179180
stw r9, (sp, 0x4)
181+
jsr syscallid /* Do system call */
182+
addi sp, 8
180183
#else
181184
ldw r6, (sp, LSAVE_A4)
182185
ldw r7, (sp, LSAVE_A5)
183-
#endif
184-
jsr r11 /* Do system call */
185-
#if defined(__CSKYABIV2__)
186-
addi sp, 8
186+
jsr syscallid /* Do system call */
187187
#endif
188188
stw a0, (sp, LSAVE_A0) /* Save return value */
189189

@@ -202,18 +202,20 @@ ENTRY(ret_from_fork)
202202
mov r9, sp
203203
bmaski r10, THREAD_SHIFT
204204
andn r9, r10
205-
ldw r12, (r9, TINFO_FLAGS)
206-
ANDI_R3 r12, (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT)
207-
cmpnei r12, 0
205+
ldw r10, (r9, TINFO_FLAGS)
206+
lrw r9, _TIF_SYSCALL_WORK
207+
and r10, r9
208+
cmpnei r10, 0
208209
bf ret_from_exception
209210
mov a0, sp /* sp = pt_regs pointer */
210211
jbsr syscall_trace_exit
211212

212213
ret_from_exception:
213214
psrclr ie
214-
ld syscallid, (sp, LSAVE_PSR)
215-
btsti syscallid, 31
215+
ld r9, (sp, LSAVE_PSR)
216+
btsti r9, 31
216217

218+
bt 1f
217219
/*
218220
* Load address of current->thread_info, Then get address of task_struct
219221
* Get task_needreshed in task_struct
@@ -222,15 +224,19 @@ ret_from_exception:
222224
bmaski r10, THREAD_SHIFT
223225
andn r9, r10
224226

225-
bt 1f
226-
ldw r12, (r9, TINFO_FLAGS)
227-
andi r12, (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_NEED_RESCHED | _TIF_UPROBE)
228-
cmpnei r12, 0
227+
ldw r10, (r9, TINFO_FLAGS)
228+
lrw r9, _TIF_WORK_MASK
229+
and r10, r9
230+
cmpnei r10, 0
229231
bt exit_work
230232
1:
231233
#ifdef CONFIG_PREEMPTION
232-
ldw r12, (r9, TINFO_PREEMPT)
233-
cmpnei r12, 0
234+
mov r9, sp
235+
bmaski r10, THREAD_SHIFT
236+
andn r9, r10
237+
238+
ldw r10, (r9, TINFO_PREEMPT)
239+
cmpnei r10, 0
234240
bt 2f
235241
jbsr preempt_schedule_irq /* irq en/disable is done inside */
236242
2:
@@ -246,15 +252,15 @@ ret_from_exception:
246252
RESTORE_ALL
247253

248254
exit_work:
249-
lrw syscallid, ret_from_exception
250-
mov lr, syscallid
255+
lrw r9, ret_from_exception
256+
mov lr, r9
251257

252-
btsti r12, TIF_NEED_RESCHED
258+
btsti r10, TIF_NEED_RESCHED
253259
bt work_resched
254260

255261
psrset ie
256262
mov a0, sp
257-
mov a1, r12
263+
mov a1, r10
258264
jmpi do_notify_resume
259265

260266
work_resched:

0 commit comments

Comments
 (0)