Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
9b8c7d1e
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
9b8c7d1e
编写于
2月 27, 2015
作者:
V
Vineet Gupta
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ARC: entry.S: FAKE_RET_FROM_EXCPN can always use r9
Signed-off-by:
N
Vineet Gupta
<
vgupta@synopsys.com
>
上级
a615b47d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
19 addition
and
21 deletion
+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
未找到文件。
arch/arc/include/asm/entry.h
浏览文件 @
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
浏览文件 @
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
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录