Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/cranelift/codegen/meta/src/isa/arm64.rs
1693 views
1
use crate::cdsl::isa::TargetIsa;
2
use crate::cdsl::settings::SettingGroupBuilder;
3
4
pub(crate) fn define() -> TargetIsa {
5
let mut settings = SettingGroupBuilder::new("arm64");
6
7
settings.add_bool(
8
"has_lse",
9
"Has Large System Extensions (FEAT_LSE) support.",
10
"",
11
false,
12
);
13
settings.add_bool(
14
"has_pauth",
15
"Has Pointer authentication (FEAT_PAuth) support; enables the use of \
16
non-HINT instructions, but does not have an effect on code generation \
17
by itself.",
18
"",
19
false,
20
);
21
settings.add_bool(
22
"has_fp16",
23
"Use half-precision floating point (FEAT_FP16) instructions.",
24
"",
25
false,
26
);
27
settings.add_bool(
28
"sign_return_address_all",
29
"If function return address signing is enabled, then apply it to all \
30
functions; does not have an effect on code generation by itself.",
31
"",
32
false,
33
);
34
settings.add_bool(
35
"sign_return_address",
36
"Use pointer authentication instructions to sign function return \
37
addresses; HINT-space instructions using the A key are generated \
38
and simple functions that do not use the stack are not affected \
39
unless overridden by other settings.",
40
"",
41
false,
42
);
43
settings.add_bool(
44
"sign_return_address_with_bkey",
45
"Use the B key with pointer authentication instructions instead of \
46
the default A key; does not have an effect on code generation by \
47
itself. Some platform ABIs may require this, for example.",
48
"",
49
false,
50
);
51
settings.add_bool(
52
"use_bti",
53
"Use Branch Target Identification (FEAT_BTI) instructions.",
54
"",
55
false,
56
);
57
58
TargetIsa::new("arm64", settings.build())
59
}
60
61