Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
fdf48a7b
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
fdf48a7b
编写于
3月 19, 2013
作者:
J
Jyun-Yan You
提交者:
Jyun-Yan You
4月 04, 2013
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
rt: improve mips backend
上级
99b156e7
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
27 addition
and
12 deletion
+27
-12
src/libcore/rt/context.rs
src/libcore/rt/context.rs
+1
-0
src/librustc/driver/driver.rs
src/librustc/driver/driver.rs
+1
-1
src/rt/arch/mips/_context.S
src/rt/arch/mips/_context.S
+2
-1
src/rt/arch/mips/ccall.S
src/rt/arch/mips/ccall.S
+19
-10
src/rt/arch/mips/context.cpp
src/rt/arch/mips/context.cpp
+1
-0
src/rt/sync/rust_thread.cpp
src/rt/sync/rust_thread.cpp
+3
-0
未找到文件。
src/libcore/rt/context.rs
浏览文件 @
fdf48a7b
...
...
@@ -189,6 +189,7 @@ fn initialize_call_frame(regs: &mut Registers, fptr: *c_void, arg: *c_void, sp:
regs
[
4
]
=
arg
as
uint
;
regs
[
29
]
=
sp
as
uint
;
regs
[
25
]
=
fptr
as
uint
;
regs
[
31
]
=
fptr
as
uint
;
}
...
...
src/librustc/driver/driver.rs
浏览文件 @
fdf48a7b
...
...
@@ -89,7 +89,7 @@ pub fn default_configuration(sess: Session, +argv0: ~str, input: input) ->
abi
::
X86
=>
(
~
"little"
,
~
"x86"
,
~
"32"
),
abi
::
X86_64
=>
(
~
"little"
,
~
"x86_64"
,
~
"64"
),
abi
::
Arm
=>
(
~
"little"
,
~
"arm"
,
~
"32"
),
abi
::
Mips
=>
(
~
"
little"
,
~
"arm
"
,
~
"32"
)
abi
::
Mips
=>
(
~
"
big"
,
~
"mips
"
,
~
"32"
)
};
return
~
[
// Target bindings.
...
...
src/rt/arch/mips/_context.S
浏览文件 @
fdf48a7b
...
...
@@ -51,7 +51,6 @@ swap_registers:
lw
$
2
,
2
*
4
(
$
5
)
lw
$
3
,
3
*
4
(
$
5
)
lw
$
4
,
4
*
4
(
$
5
)
lw
$
5
,
5
*
4
(
$
5
)
lw
$
6
,
6
*
4
(
$
5
)
lw
$
7
,
7
*
4
(
$
5
)
...
...
@@ -82,6 +81,8 @@ swap_registers:
lw
$
30
,
30
*
4
(
$
5
)
lw
$
31
,
31
*
4
(
$
5
)
lw
$
5
,
5
*
4
(
$
5
)
jr
$
31
nop
.
end
swap_registers
src/rt/arch/mips/ccall.S
浏览文件 @
fdf48a7b
...
...
@@ -5,30 +5,39 @@
.
text
.
align
2
.
globl
__morestack
.
hidden
__morestack
.
align
2
.
cfi_sections
.
eh_frame_entry
.
cfi_startproc
.
set
nomips16
.
ent
__morestack
__morestack
:
.
set
noreorder
.
set
nomacro
move
$
7
,
$
29
move
$
29
,
$
6
sw
$
7
,
0
(
$
29
)
sw
$
31
,
-
4
(
$
29
)
addiu
$
29
,
$
29
,
-
8
sw
$
31
,
4
(
$
29
)
sw
$
30
,
0
(
$
29
)
addiu
$
29
,
$
29
,
-
24
.
cfi_def_cfa_offset
8
.
cfi_offset
31
,
-
4
.
cfi_offset
30
,
-
8
move
$
30
,
$
29
.
cfi_def_cfa_register
30
move
$
29
,
$
6
move
$
25
,
$
5
jalr
$
25
nop
addiu
$
29
,
$
29
,
24
move
$
29
,
$
30
lw
$
31
,
-
4
(
$
29
)
lw
$
7
,
0
(
$
29
)
lw
$
30
,
0
(
$
29
)
lw
$
31
,
4
(
$
29
)
addiu
$
29
,
$
29
,
8
move
$
29
,
$
7
jr
$
31
nop
.
end
__morestack
.
cfi_endproc
src/rt/arch/mips/context.cpp
浏览文件 @
fdf48a7b
...
...
@@ -40,6 +40,7 @@ void context::call(void *f, void *arg, void *stack)
regs
.
data
[
4
]
=
(
uint32_t
)
arg
;
regs
.
data
[
29
]
=
(
uint32_t
)
sp
;
regs
.
data
[
25
]
=
(
uint32_t
)
f
;
regs
.
data
[
31
]
=
(
uint32_t
)
f
;
// Last base pointer on the stack should be 0
...
...
src/rt/sync/rust_thread.cpp
浏览文件 @
fdf48a7b
...
...
@@ -41,6 +41,9 @@ rust_thread::start() {
#if defined(__WIN32__)
thread
=
CreateThread
(
NULL
,
stack_sz
,
rust_thread_start
,
this
,
0
,
NULL
);
#else
if
(
stack_sz
<
PTHREAD_STACK_MIN
)
{
stack_sz
=
PTHREAD_STACK_MIN
;
}
pthread_attr_t
attr
;
CHECKED
(
pthread_attr_init
(
&
attr
));
CHECKED
(
pthread_attr_setstacksize
(
&
attr
,
stack_sz
));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录