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 @@
...
@@ -331,14 +331,14 @@
* Look at EV_ProtV to see how this is actually used
* Look at EV_ProtV to see how this is actually used
*-------------------------------------------------------------*/
*-------------------------------------------------------------*/
.
macro
FAKE_RET_FROM_EXCPN
reg
.
macro
FAKE_RET_FROM_EXCPN
ld
\
reg
,
[
sp
,
PT_status32
]
ld
r9
,
[
sp
,
PT_status32
]
bic
\
reg
,
\
reg
,
(
STATUS_U_MASK
|
STATUS_DE_MASK
)
bic
r9
,
r9
,
(
STATUS_U_MASK
|
STATUS_DE_MASK
)
bset
\
reg
,
\
reg
,
STATUS_L_BIT
bset
r9
,
r9
,
STATUS_L_BIT
sr
\
reg
,
[
erstatus
]
sr
r9
,
[
erstatus
]
mov
\
reg
,
55
f
mov
r9
,
55
f
sr
\
reg
,
[
eret
]
sr
r9
,
[
eret
]
rtie
rtie
55
:
55
:
...
...
arch/arc/kernel/entry.S
View file @
9b8c7d1e
...
@@ -261,7 +261,7 @@ ENTRY(instr_service)
...
@@ -261,7 +261,7 @@ ENTRY(instr_service)
lr
r0
,
[
efa
]
lr
r0
,
[
efa
]
mov
r1
,
sp
mov
r1
,
sp
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
bl
do_insterror_or_kprobe
bl
do_insterror_or_kprobe
b
ret_from_exception
b
ret_from_exception
...
@@ -278,7 +278,7 @@ ENTRY(mem_service)
...
@@ -278,7 +278,7 @@ ENTRY(mem_service)
lr
r0
,
[
efa
]
lr
r0
,
[
efa
]
mov
r1
,
sp
mov
r1
,
sp
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
bl
do_memory_error
bl
do_memory_error
b
ret_from_exception
b
ret_from_exception
...
@@ -330,12 +330,11 @@ ENTRY(EV_TLBProtV)
...
@@ -330,12 +330,11 @@ ENTRY(EV_TLBProtV)
lr
r2
,
[
ecr
]
lr
r2
,
[
ecr
]
lr
r0
,
[
efa
]
; Faulting Data address
lr
r0
,
[
efa
]
; Faulting Data address
; --------(4) Return from CPU Exception Mode ---------
; Exception auto-disables further Intr/exceptions.
; Fake a rtie, but rtie to next label
; Re-enable them by pretending to return from exception
; That way, subsequently, do_page_fault ( ) executes in pure kernel
; (so rest of handler executes in pure K mode)
; mode with further Exceptions enabled
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
mov
r1
,
sp
mov
r1
,
sp
...
@@ -377,7 +376,7 @@ ENTRY(call_do_page_fault)
...
@@ -377,7 +376,7 @@ ENTRY(call_do_page_fault)
EXCEPTION_PROLOGUE
EXCEPTION_PROLOGUE
lr
r0
,
[
efa
]
; Faulting Data address
lr
r0
,
[
efa
]
; Faulting Data address
mov
r1
,
sp
mov
r1
,
sp
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
mov
blink
,
ret_from_exception
mov
blink
,
ret_from_exception
b
do_page_fault
b
do_page_fault
...
@@ -394,7 +393,7 @@ ENTRY(EV_PrivilegeV)
...
@@ -394,7 +393,7 @@ ENTRY(EV_PrivilegeV)
lr
r0
,
[
efa
]
lr
r0
,
[
efa
]
mov
r1
,
sp
mov
r1
,
sp
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
bl
do_privilege_fault
bl
do_privilege_fault
b
ret_from_exception
b
ret_from_exception
...
@@ -410,7 +409,7 @@ ENTRY(EV_Extension)
...
@@ -410,7 +409,7 @@ ENTRY(EV_Extension)
lr
r0
,
[
efa
]
lr
r0
,
[
efa
]
mov
r1
,
sp
mov
r1
,
sp
FAKE_RET_FROM_EXCPN
r9
FAKE_RET_FROM_EXCPN
bl
do_extension_fault
bl
do_extension_fault
b
ret_from_exception
b
ret_from_exception
...
@@ -472,7 +471,7 @@ trap_with_param:
...
@@ -472,7 +471,7 @@ trap_with_param:
; Now that we have read EFA, it is safe to do "fake" rtie
; Now that we have read EFA, it is safe to do "fake" rtie
; and get out of CPU exception mode
; 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
; Save callee regs in case gdb wants to have a look
; SP will grow up by size of CALLEE Reg-File
; SP will grow up by size of CALLEE Reg-File
...
@@ -512,8 +511,7 @@ ENTRY(EV_Trap)
...
@@ -512,8 +511,7 @@ ENTRY(EV_Trap)
; ======= (5a) Trap is due to System Call ========
; ======= (5a) Trap is due to System Call ========
; Before doing anything, return from CPU Exception Mode
FAKE_RET_FROM_EXCPN
FAKE_RET_FROM_EXCPN
r11
; If syscall tracing ongoing, invoke pre-pos-hooks
; If syscall tracing ongoing, invoke pre-pos-hooks
GET_CURR_THR_INFO_FLAGS
r10
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