Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
da0742c0
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,发现更多精彩内容 >>
提交
da0742c0
编写于
3月 21, 2017
作者:
A
A.J. Gardner
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add global_asm tests
上级
4b9de4cc
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
307 addition
and
2 deletion
+307
-2
src/doc/unstable-book/src/global_asm.md
src/doc/unstable-book/src/global_asm.md
+1
-1
src/librustc_driver/test.rs
src/librustc_driver/test.rs
+1
-0
src/libsyntax/feature_gate.rs
src/libsyntax/feature_gate.rs
+1
-1
src/test/codegen/foo.s
src/test/codegen/foo.s
+3
-0
src/test/codegen/global_asm.rs
src/test/codegen/global_asm.rs
+73
-0
src/test/codegen/global_asm_include.rs
src/test/codegen/global_asm_include.rs
+68
-0
src/test/codegen/global_asm_x2.rs
src/test/codegen/global_asm_x2.rs
+90
-0
src/test/compile-fail/feature-gate-global_asm.rs
src/test/compile-fail/feature-gate-global_asm.rs
+15
-0
src/test/run-pass/empty_global_asm.rs
src/test/run-pass/empty_global_asm.rs
+28
-0
src/test/run-pass/simple_global_asm.rs
src/test/run-pass/simple_global_asm.rs
+27
-0
未找到文件。
src/doc/unstable-book/src/global_asm.md
浏览文件 @
da0742c0
...
...
@@ -27,7 +27,7 @@ A simple usage looks like this:
```
rust,ignore
# #![feature(global_asm)]
# you also need relevant target_arch cfgs
global_asm!
(
include_str
(
"something_neato.s"
));
global_asm!
(
include_str
!
(
"something_neato.s"
));
```
And a more complicated usage looks like this:
...
...
src/librustc_driver/test.rs
浏览文件 @
da0742c0
...
...
@@ -233,6 +233,7 @@ fn search(this: &Env, it: &hir::Item, idx: usize, names: &[String]) -> Option<as
hir
::
ItemStatic
(
..
)
|
hir
::
ItemFn
(
..
)
|
hir
::
ItemForeignMod
(
..
)
|
hir
::
ItemGlobalAsm
(
..
)
|
hir
::
ItemTy
(
..
)
=>
None
,
hir
::
ItemEnum
(
..
)
|
...
...
src/libsyntax/feature_gate.rs
浏览文件 @
da0742c0
...
...
@@ -986,7 +986,7 @@ pub fn feature_err<'a>(sess: &'a ParseSess, feature: &str, span: Span, issue: Ga
"inline assembly is not stable enough for use and is subject to change"
;
pub
const
EXPLAIN_GLOBAL_ASM
:
&
'static
str
=
"
module-level inline assembly is experimental and
subject to change"
;
"
`global_asm!` is not stable enough for use and is
subject to change"
;
pub
const
EXPLAIN_LOG_SYNTAX
:
&
'static
str
=
"`log_syntax!` is not stable enough for use and is subject to change"
;
...
...
src/test/codegen/foo.s
0 → 100644
浏览文件 @
da0742c0
.
global
foo
foo
:
jmp
baz
src/test/codegen/global_asm.rs
0 → 100644
浏览文件 @
da0742c0
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// ignore-aarch64
// ignore-aarch64_be
// ignore-arm
// ignore-armeb
// ignore-avr
// ignore-bpfel
// ignore-bpfeb
// ignore-hexagon
// ignore-mips
// ignore-mipsel
// ignore-mips64
// ignore-mips64el
// ignore-msp430
// ignore-powerpc64
// ignore-powerpc64le
// ignore-powerpc
// ignore-r600
// ignore-amdgcn
// ignore-sparc
// ignore-sparcv9
// ignore-sparcel
// ignore-s390x
// ignore-tce
// ignore-thumb
// ignore-thumbeb
// ignore-xcore
// ignore-nvptx
// ignore-nvptx64
// ignore-le32
// ignore-le64
// ignore-amdil
// ignore-amdil64
// ignore-hsail
// ignore-hsail64
// ignore-spir
// ignore-spir64
// ignore-kalimba
// ignore-shave
// ignore-wasm32
// ignore-wasm64
// ignore-emscripten
// compile-flags: -C no-prepopulate-passes
#![feature(global_asm)]
#![crate_type
=
"lib"
]
// CHECK-LABEL: foo
// CHECK: module asm
// this regex will capture the correct unconditional branch inst.
// CHECK: module asm "{{[[:space:]]+}}jmp baz"
global_asm!
(
r#"
.global foo
foo:
jmp baz
"#
);
extern
"C"
{
fn
foo
();
}
// CHECK-LABEL: @baz
#[no_mangle]
pub
unsafe
extern
"C"
fn
baz
()
{}
src/test/codegen/global_asm_include.rs
0 → 100644
浏览文件 @
da0742c0
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// ignore-aarch64
// ignore-aarch64_be
// ignore-arm
// ignore-armeb
// ignore-avr
// ignore-bpfel
// ignore-bpfeb
// ignore-hexagon
// ignore-mips
// ignore-mipsel
// ignore-mips64
// ignore-mips64el
// ignore-msp430
// ignore-powerpc64
// ignore-powerpc64le
// ignore-powerpc
// ignore-r600
// ignore-amdgcn
// ignore-sparc
// ignore-sparcv9
// ignore-sparcel
// ignore-s390x
// ignore-tce
// ignore-thumb
// ignore-thumbeb
// ignore-xcore
// ignore-nvptx
// ignore-nvptx64
// ignore-le32
// ignore-le64
// ignore-amdil
// ignore-amdil64
// ignore-hsail
// ignore-hsail64
// ignore-spir
// ignore-spir64
// ignore-kalimba
// ignore-shave
// ignore-wasm32
// ignore-wasm64
// ignore-emscripten
// compile-flags: -C no-prepopulate-passes
#![feature(global_asm)]
#![crate_type
=
"lib"
]
// CHECK-LABEL: foo
// CHECK: module asm
// CHECK: module asm "{{[[:space:]]+}}jmp baz"
global_asm!
(
include_str!
(
"foo.s"
));
extern
"C"
{
fn
foo
();
}
// CHECK-LABEL: @baz
#[no_mangle]
pub
unsafe
extern
"C"
fn
baz
()
{}
src/test/codegen/global_asm_x2.rs
0 → 100644
浏览文件 @
da0742c0
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// ignore-aarch64
// ignore-aarch64_be
// ignore-arm
// ignore-armeb
// ignore-avr
// ignore-bpfel
// ignore-bpfeb
// ignore-hexagon
// ignore-mips
// ignore-mipsel
// ignore-mips64
// ignore-mips64el
// ignore-msp430
// ignore-powerpc64
// ignore-powerpc64le
// ignore-powerpc
// ignore-r600
// ignore-amdgcn
// ignore-sparc
// ignore-sparcv9
// ignore-sparcel
// ignore-s390x
// ignore-tce
// ignore-thumb
// ignore-thumbeb
// ignore-xcore
// ignore-nvptx
// ignore-nvptx64
// ignore-le32
// ignore-le64
// ignore-amdil
// ignore-amdil64
// ignore-hsail
// ignore-hsail64
// ignore-spir
// ignore-spir64
// ignore-kalimba
// ignore-shave
// ignore-wasm32
// ignore-wasm64
// ignore-emscripten
// compile-flags: -C no-prepopulate-passes
#![feature(global_asm)]
#![crate_type
=
"lib"
]
#[no_std]
// CHECK-LABEL: foo
// CHECK: module asm
// CHECK: module asm "{{[[:space:]]+}}jmp baz"
// any other global_asm will be appended to this first block, so:
// CHECK-LABEL: bar
// CHECK: module asm "{{[[:space:]]+}}jmp quux"
global_asm!
(
r#"
.global foo
foo:
jmp baz
"#
);
extern
"C"
{
fn
foo
();
}
// CHECK-LABEL: @baz
#[no_mangle]
pub
unsafe
extern
"C"
fn
baz
()
{}
// no checks here; this has been appended to the first occurrence
global_asm!
(
r#"
.global bar
bar:
jmp quux
"#
);
extern
"C"
{
fn
bar
();
}
#[no_mangle]
pub
unsafe
extern
"C"
fn
quux
()
{}
src/test/compile-fail/feature-gate-global_asm.rs
0 → 100644
浏览文件 @
da0742c0
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// gate-test-global_asm
global_asm!
(
""
);
//~ ERROR `global_asm!` is not stable
fn
main
()
{}
src/test/run-pass/empty_global_asm.rs
0 → 100644
浏览文件 @
da0742c0
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(global_asm)]
#[cfg(target_arch
=
"x86"
)]
global_asm!
(
""
);
#[cfg(target_arch
=
"x86_64"
)]
global_asm!
(
""
);
#[cfg(target_arch
=
"arm"
)]
global_asm!
(
""
);
#[cfg(target_arch
=
"aarch64"
)]
global_asm!
(
""
);
#[cfg(target_arch
=
"mips"
)]
global_asm!
(
""
);
fn
main
()
{}
src/test/run-pass/simple_global_asm.rs
0 → 100644
浏览文件 @
da0742c0
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
#![feature(global_asm)]
#[cfg(any(target_arch
=
"x86_64"
,
target_arch
=
"x86"
))]
global_asm!
(
r#"
.global foo
foo:
jmp baz
"#
);
extern
{
fn
foo
();
}
#[no_mangle]
pub
extern
fn
baz
()
{}
fn
main
()
{}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录