entry.S (95d002e0a34cb0f238abb39987f9980f325d8332) | entry.S (2f7932b011e7fb9f98732f95a68f6017d4d8c542) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0 */ 2// Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd. 3 4#include <linux/linkage.h> 5#include <abi/entry.h> 6#include <abi/pgtable-bits.h> 7#include <asm/errno.h> 8#include <asm/setup.h> --- 122 unchanged lines hidden (view full) --- 131 ldw r11, (r13) 132 cmpnei r11, 0 133 bf ret_from_exception 134 135 mov r9, sp 136 bmaski r10, THREAD_SHIFT 137 andn r9, r10 138 ldw r8, (r9, TINFO_FLAGS) | 1/* SPDX-License-Identifier: GPL-2.0 */ 2// Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd. 3 4#include <linux/linkage.h> 5#include <abi/entry.h> 6#include <abi/pgtable-bits.h> 7#include <asm/errno.h> 8#include <asm/setup.h> --- 122 unchanged lines hidden (view full) --- 131 ldw r11, (r13) 132 cmpnei r11, 0 133 bf ret_from_exception 134 135 mov r9, sp 136 bmaski r10, THREAD_SHIFT 137 andn r9, r10 138 ldw r8, (r9, TINFO_FLAGS) |
139 btsti r8, TIF_SYSCALL_TRACE 140 bt 1f | 139 ANDI_R3 r8, (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT) 140 cmpnei r8, 0 141 bt csky_syscall_trace |
141#if defined(__CSKYABIV2__) 142 subi sp, 8 143 stw r5, (sp, 0x4) 144 stw r4, (sp, 0x0) 145 jsr r11 /* Do system call */ 146 addi sp, 8 147#else 148 jsr r11 149#endif 150 stw a0, (sp, LSAVE_A0) /* Save return value */ 151 jmpi ret_from_exception 152 | 142#if defined(__CSKYABIV2__) 143 subi sp, 8 144 stw r5, (sp, 0x4) 145 stw r4, (sp, 0x0) 146 jsr r11 /* Do system call */ 147 addi sp, 8 148#else 149 jsr r11 150#endif 151 stw a0, (sp, LSAVE_A0) /* Save return value */ 152 jmpi ret_from_exception 153 |
1531: 154 movi a0, 0 /* enter system call */ 155 mov a1, sp /* sp = pt_regs pointer */ 156 jbsr syscall_trace | 154csky_syscall_trace: 155 mov a0, sp /* sp = pt_regs pointer */ 156 jbsr syscall_trace_enter |
157 /* Prepare args before do system call */ 158 ldw a0, (sp, LSAVE_A0) 159 ldw a1, (sp, LSAVE_A1) 160 ldw a2, (sp, LSAVE_A2) 161 ldw a3, (sp, LSAVE_A3) 162#if defined(__CSKYABIV2__) 163 subi sp, 8 164 stw r5, (sp, 0x4) 165 stw r4, (sp, 0x0) 166#else 167 ldw r6, (sp, LSAVE_A4) 168 ldw r7, (sp, LSAVE_A5) 169#endif 170 jsr r11 /* Do system call */ 171#if defined(__CSKYABIV2__) 172 addi sp, 8 173#endif 174 stw a0, (sp, LSAVE_A0) /* Save return value */ 175 | 157 /* Prepare args before do system call */ 158 ldw a0, (sp, LSAVE_A0) 159 ldw a1, (sp, LSAVE_A1) 160 ldw a2, (sp, LSAVE_A2) 161 ldw a3, (sp, LSAVE_A3) 162#if defined(__CSKYABIV2__) 163 subi sp, 8 164 stw r5, (sp, 0x4) 165 stw r4, (sp, 0x0) 166#else 167 ldw r6, (sp, LSAVE_A4) 168 ldw r7, (sp, LSAVE_A5) 169#endif 170 jsr r11 /* Do system call */ 171#if defined(__CSKYABIV2__) 172 addi sp, 8 173#endif 174 stw a0, (sp, LSAVE_A0) /* Save return value */ 175 |
176 movi a0, 1 /* leave system call */ 177 mov a1, sp /* right now, sp --> pt_regs */ 178 jbsr syscall_trace | 176 mov a0, sp /* right now, sp --> pt_regs */ 177 jbsr syscall_trace_exit |
179 br ret_from_exception 180 181ENTRY(ret_from_kernel_thread) 182 jbsr schedule_tail 183 mov a0, r8 184 jsr r9 185 jbsr ret_from_exception 186 187ENTRY(ret_from_fork) 188 jbsr schedule_tail 189 mov r9, sp 190 bmaski r10, THREAD_SHIFT 191 andn r9, r10 192 ldw r8, (r9, TINFO_FLAGS) 193 movi r11_sig, 1 | 178 br ret_from_exception 179 180ENTRY(ret_from_kernel_thread) 181 jbsr schedule_tail 182 mov a0, r8 183 jsr r9 184 jbsr ret_from_exception 185 186ENTRY(ret_from_fork) 187 jbsr schedule_tail 188 mov r9, sp 189 bmaski r10, THREAD_SHIFT 190 andn r9, r10 191 ldw r8, (r9, TINFO_FLAGS) 192 movi r11_sig, 1 |
194 btsti r8, TIF_SYSCALL_TRACE | 193 ANDI_R3 r8, (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_TRACEPOINT | _TIF_SYSCALL_AUDIT) 194 cmpnei r8, 0 |
195 bf 3f | 195 bf 3f |
196 movi a0, 1 197 mov a1, sp /* sp = pt_regs pointer */ 198 jbsr syscall_trace | 196 mov a0, sp /* sp = pt_regs pointer */ 197 jbsr syscall_trace_exit |
1993: 200 jbsr ret_from_exception 201 202ret_from_exception: 203 ld syscallid, (sp, LSAVE_PSR) 204 btsti syscallid, 31 205 bt 1f 206 --- 148 unchanged lines hidden --- | 1983: 199 jbsr ret_from_exception 200 201ret_from_exception: 202 ld syscallid, (sp, LSAVE_PSR) 203 btsti syscallid, 31 204 bt 1f 205 --- 148 unchanged lines hidden --- |