Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Musl
提交
3fae236e
T
Third Party Musl
项目概览
OpenHarmony
/
Third Party Musl
1 年多 前同步成功
通知
37
Star
125
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Musl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
3fae236e
编写于
11月 19, 2012
作者:
R
rofl0r
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
powerpc: handle syscall error in clone.
sigsetjmp: store temporaries in jmp_buf rather than on stack.
上级
6c0cba81
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
24 addition
and
39 deletion
+24
-39
src/signal/powerpc/sigsetjmp.s
src/signal/powerpc/sigsetjmp.s
+15
-14
src/thread/powerpc/clone.s
src/thread/powerpc/clone.s
+9
-25
未找到文件。
src/signal/powerpc/sigsetjmp.s
浏览文件 @
3fae236e
...
...
@@ -10,25 +10,26 @@ sigsetjmp:
#2)
if
its
0
,
goto
setjmp
code
beq
-
cr7
,
1
f
#3)
else
:
we
must
call
pthread_sigmask
(
SIG_SETMASK
,
0
,
(
sigset_t
*)
buf
->
__ss
)
;
#
increase
stack
frame
by
16
s
ubi
1
,
1
,
16
#
thus
store
r3
on
the
stack
,
to
restore
it
later
stw
3
,
12
(
1
)
#
store
old
link
reg
mflr
0
stw
0
,
8
(
1
)
#
store
non
-
volatile
regs
30
,
31
into
the
setjmp
buf
s
tw
30
,
0
(
3
)
stw
31
,
4
(
3
)
#
use
them
to
store
the
pointer
to
the
jmpbuf
and
the
link
reg
mr
30
,
3
mflr
31
#
put
pointer
to
ss
buf
into
r5
(
3
rd
arg
)
addi
5
,
3
,
260
#
put
"2"
i
.
e
.
SIG_SETMASK
in
r3
li
3
,
2
li
4
,
0
bl
pthread_sigmask
#
restore
r3
lwz
3
,
12
(
1
)
#
restore
link
reg
lwz
0
,
8
(
1
)
mtlr
0
#
restore
sp
addi
1
,
1
,
16
#
restore
jmpbuf
pointer
and
link
reg
mr
3
,
30
mtlr
31
#
resore
non
-
volatile
regs
lwz
30
,
0
(
3
)
lwz
31
,
4
(
3
)
1
:
b
setjmp
src/thread/powerpc/clone.s
浏览文件 @
3fae236e
...
...
@@ -13,12 +13,10 @@ __clone:
#
SYS_clone
=
120
#
SYS_exit
=
1
#
in
order
that
the
child
can
find
the
start
func
and
its
arg
,
we
need
to
store
it
into
#
non
-
volative
regs
.
to
do
so
,
we
have
to
store
those
2
regs
into
our
stackframe
,
so
#
we
can
restore
them
later
.
subi
1,
1
,
16
stw
30,
12
(
1
)
stw
31,
8
(
1
)
#
store
non
-
volatile
regs
r30
,
r31
on
stack
in
order
to
put
our
#
start
func
and
its
arg
there
stwu
30,
-
16
(
1
)
stw
31,
4
(
1
)
#
save
r3
(
func
)
into
r30
,
and
r6
(
arg
)
into
r31
mr
30,
3
...
...
@@ -37,19 +35,9 @@ li 0, 120
sc
#
check
for
syscall
error
#
this
code
should
be
more
efficient
,
but
it
borks
#
bns
+
1
f
#
jump
to
label
1
if
no
summary
overflow
.
bns
+
1
f
#
jump
to
label
1
if
no
summary
overflow
.
#else
#
neg
3,
3
#
negate
the
result
(
errno
)
#
b
2
f
#
jump
to
epilogue
#
this
error
check
code
at
least
does
not
spoil
the
clone
call
.
#
mfcr
0
#
Check
for
an
error
#
rlwinm
4,
0
,
0
,
3
,
3
#
by
checking
for
bit
28
.
#
cmplwi
0,
4
,
0
#
It
is
an
error
if
non
-
zero
.
#
beq
0,
1
f
#
Jump
if
not
an
error
.
#
neg
3,
3
#
Negate
the
error
number
.
#
b
2
f
#
jump
to
epilogue
neg
3,
3
#
negate
the
result
(
errno
)
1
:
#
compare
sc
result
with
0
cmpwi
cr7
,
3
,
0
...
...
@@ -58,8 +46,7 @@ cmpwi cr7, 3, 0
bne
cr7
,
2
f
#
else
:
we
'
re
the
child
#
call
funcptr
#
move
arg
(
d
)
into
r3
#
call
funcptr
:
move
arg
(
d
)
into
r3
mr
3,
31
#
move
r30
(
funcptr
)
into
CTR
reg
mtctr
30
...
...
@@ -72,12 +59,9 @@ sc
2
:
#
restore
stack
lwz
30,
12
(
1
)
lwz
31,
8
(
1
)
lwz
30,
0
(
1
)
lwz
31,
4
(
1
)
addi
1,
1
,
16
blr
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录