diff options
Diffstat (limited to 'Documentation/arm64')
-rw-r--r-- | Documentation/arm64/legacy_instructions.txt | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Documentation/arm64/legacy_instructions.txt b/Documentation/arm64/legacy_instructions.txt new file mode 100644 index 000000000000..49d4867c0c09 --- /dev/null +++ b/Documentation/arm64/legacy_instructions.txt | |||
@@ -0,0 +1,33 @@ | |||
1 | The arm64 port of the Linux kernel provides infrastructure to support | ||
2 | emulation of instructions which have been deprecated, or obsoleted in | ||
3 | the architecture. The infrastructure code uses undefined instruction | ||
4 | hooks to support emulation. Where available it also allows turning on | ||
5 | the instruction execution in hardware. | ||
6 | |||
7 | The emulation mode can be controlled by writing to sysctl nodes | ||
8 | (/proc/sys/abi). The following explains the different execution | ||
9 | behaviours and the corresponding values of the sysctl nodes - | ||
10 | |||
11 | * Undef | ||
12 | Value: 0 | ||
13 | Generates undefined instruction abort. Default for instructions that | ||
14 | have been obsoleted in the architecture, e.g., SWP | ||
15 | |||
16 | * Emulate | ||
17 | Value: 1 | ||
18 | Uses software emulation. To aid migration of software, in this mode | ||
19 | usage of emulated instruction is traced as well as rate limited | ||
20 | warnings are issued. This is the default for deprecated | ||
21 | instructions, .e.g., CP15 barriers | ||
22 | |||
23 | * Hardware Execution | ||
24 | Value: 2 | ||
25 | Although marked as deprecated, some implementations may support the | ||
26 | enabling/disabling of hardware support for the execution of these | ||
27 | instructions. Using hardware execution generally provides better | ||
28 | performance, but at the loss of ability to gather runtime statistics | ||
29 | about the use of the deprecated instructions. | ||
30 | |||
31 | The default mode depends on the status of the instruction in the | ||
32 | architecture. Deprecated instructions should default to emulation | ||
33 | while obsolete instructions must be undefined by default. | ||