Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
9b8c7d1e
Commit
9b8c7d1e
authored
Feb 27, 2015
by
Vineet Gupta
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ARC: entry.S: FAKE_RET_FROM_EXCPN can always use r9
Signed-off-by:
Vineet Gupta
<
vgupta@synopsys.com
>
parent
a615b47d
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
21 deletions
+19
-21
arch/arc/include/asm/entry.h
arch/arc/include/asm/entry.h
+8
-8
arch/arc/kernel/entry.S
arch/arc/kernel/entry.S
+11
-13
No files found.
arch/arc/include/asm/entry.h
View file @
9b8c7d1e
...
...
@@ -331,14 +331,14 @@
* Look at EV_ProtV to see how this is actually used
*-------------------------------------------------------------*/
.
macro
FAKE_RET_FROM_EXCPN
reg
ld
\
reg
,
[
sp
,
PT_status32
]
bic
\
reg
,
\
reg
,
(
STATUS_U_MASK
|
STATUS_DE_MASK
)
bset
\
reg
,
\
reg
,
STATUS_L_BIT
sr
\
reg
,
[
erstatus
]
mov
\
reg
,
55
f
sr
\
reg
,
[
eret
]
.
macro
FAKE_RET_FROM_EXCPN
ld
r9
,
[
sp
,
PT_status32
]
bic
r9
,
r9
,
(
STATUS_U_MASK
|
STATUS_DE_MASK
)
bset
r9
,
r9
,
STATUS_L_BIT
sr
r9
,
[
erstatus
]
mov
r9
,
55
f
sr
r9
,
[
eret
]
rtie
55
:
...
...
arch/arc/kernel/entry.S
View file @
9b8c7d1e
...
...
@@ -261,7 +261,7 @@ ENTRY(instr_service)
lr
r0
,
[
efa
]
mov
r1
,
sp
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
bl
do_insterror_or_kprobe
b
ret_from_exception
...
...
@@ -278,7 +278,7 @@ ENTRY(mem_service)
lr
r0
,
[
efa
]
mov
r1
,
sp
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
bl
do_memory_error
b
ret_from_exception
...
...
@@ -330,12 +330,11 @@ ENTRY(EV_TLBProtV)
lr
r2
,
[
ecr
]
lr
r0
,
[
efa
]
; Faulting Data address
; --------(4) Return from CPU Exception Mode ---------
; Fake a rtie, but rtie to next label
; That way, subsequently, do_page_fault ( ) executes in pure kernel
; mode with further Exceptions enabled
; Exception auto-disables further Intr/exceptions.
; Re-enable them by pretending to return from exception
; (so rest of handler executes in pure K mode)
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
mov
r1
,
sp
...
...
@@ -377,7 +376,7 @@ ENTRY(call_do_page_fault)
EXCEPTION_PROLOGUE
lr
r0
,
[
efa
]
; Faulting Data address
mov
r1
,
sp
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
mov
blink
,
ret_from_exception
b
do_page_fault
...
...
@@ -394,7 +393,7 @@ ENTRY(EV_PrivilegeV)
lr
r0
,
[
efa
]
mov
r1
,
sp
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
bl
do_privilege_fault
b
ret_from_exception
...
...
@@ -410,7 +409,7 @@ ENTRY(EV_Extension)
lr
r0
,
[
efa
]
mov
r1
,
sp
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
bl
do_extension_fault
b
ret_from_exception
...
...
@@ -472,7 +471,7 @@ trap_with_param:
; Now that we have read EFA, it is safe to do "fake" rtie
; and get out of CPU exception mode
FAKE_RET_FROM_EXCPN
r11
FAKE_RET_FROM_EXCPN
; Save callee regs in case gdb wants to have a look
; SP will grow up by size of CALLEE Reg-File
...
...
@@ -512,8 +511,7 @@ ENTRY(EV_Trap)
; ======= (5a) Trap is due to System Call ========
; Before doing anything, return from CPU Exception Mode
FAKE_RET_FROM_EXCPN
r11
FAKE_RET_FROM_EXCPN
; If syscall tracing ongoing, invoke pre-pos-hooks
GET_CURR_THR_INFO_FLAGS
r10
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment