@@ -248,7 +248,7 @@ \subsection{Capability Mode}
248248mode and operand size of individual instructions. We define a new
249249\textbf {capability mode }. As with CHERI-RISC-V, this mode is enabled
250250by setting the low bit of the \cflags {} field in \CIP {}. This mode is
251- only valid in 64-bit mode. A far call or jump which uses a 32-bit
251+ valid only in 64-bit mode. A far call or jump which uses a 32-bit
252252code segment along with a target code capability with this flag set
253253will raise a General Protection Fault with the error code set to the
254254target segment selector.
@@ -502,8 +502,8 @@ \subsubsection{Extending Existing Instructions to Support Capability Operands}
502502
503503 The existing \texttt {89 } and \texttt {8B } opcodes would be extended
504504 to support capability operands via the capability operand prefix.
505- Note that these instructions would only permit a general-purpose
506- register as the source (\texttt {89 }) or destination (\texttt {8B }).
505+ Note that these instructions would permit a general-purpose
506+ register only as the source (\texttt {89 }) or destination (\texttt {8B }).
507507
508508 The \texttt {A1 } and \texttt {A3 } opcodes would not be extended to
509509 support capabilities.
@@ -513,7 +513,7 @@ \subsubsection{Extending Existing Instructions to Support Capability Operands}
513513 new opcodes (\texttt {0F 24 } and \texttt {0F 25 }) would be
514514 used. These opcodes would permit access to \CFS {}, \CGS {}, and
515515 \DDC {} in all privilege levels. Access to other additional
516- capability registers would only be permitted in privilege level 0.
516+ capability registers would be permitted only in privilege level 0.
517517
518518 To support efficiently storing NULL pointers to memory, the \texttt {C7 /0 }
519519 opcode would be extended to support capability operands via
@@ -531,7 +531,7 @@ \subsubsection{Extending Existing Instructions to Support Capability Operands}
531531
532532 The existing \texttt {0F C3 } opcode would be extended to support
533533 capability operands via the capability operand prefix. Note that
534- this would only support stores of general-purpose capability
534+ this would support only stores of general-purpose capability
535535 registers.
536536
537537 \insnnoref {MOVNTI } should default to integer operands in
@@ -556,7 +556,7 @@ \subsubsection{Extending Existing Instructions to Support Capability Operands}
556556 \item \insnnoref {CMOVC } would handle conditional loads and stores of
557557 capabilities. Existing opcodes for \insnnoref {CMOV } would be
558558 extended to support capability operands via the capability operand
559- prefix. Note that this would only support moves to and from
559+ prefix. Note that this would support only moves to and from
560560 general-purpose capability registers.
561561
562562 \insnnoref {CMOV } should default to integer operands in
@@ -721,7 +721,7 @@ \subsection{Control-Flow Instructions}
721721Absolute near branches would be extended to support capability operands.
722722In 64-bit long mode, a capability operand prefix would select a
723723capability operand size. In capability mode, absolute near branches would
724- only support capability operands.
724+ support only capability operands.
725725Absolute near branches which use an integer operand would set the offset of the
726726\CIP {} capability while absolute near branches using a capability operand would
727727load a new capability into \CIP {}.
@@ -1194,8 +1194,8 @@ \subsection{Capability Violation Faults}
11941194 offset adjustments from immediates or scaled indices. If the result
11951195 of offset adjustments made the capability unrepresentable, the
11961196 faulting capability would have its tag cleared.
1197- \item Similar to the above, but ignore offset adjustments and only
1198- provide the base capability value.
1197+ \item Similar to the above, but ignore offset adjustments and provide
1198+ only the base capability value.
11991199\item Provide the virtual address from the faulting capability in
12001200 \CRTWO {} similar to PF\# . A debugger could examine the faulting
12011201 instruction's operands to determine which capability triggered the fault.
@@ -1204,7 +1204,7 @@ \subsection{Capability Violation Faults}
12041204\end {enumerate }
12051205
12061206Like Morello and CHERI-RISC-V, we recommend that CHERI-x86-64
1207- only raise capability violation faults when a invalid memory access is
1207+ raise capability violation faults only when a invalid memory access is
12081208performed such as an out-of-bounds access or access via an untagged
12091209capability. Specifically, we recommend that instructions which modify
12101210capabilities should not raise capability violation faults (for
@@ -1382,7 +1382,7 @@ \subsection{Page Tables}
13821382addition, the virtual address of the memory access should be provided
13831383in the \CRTWO {} register similar to other page-fault exceptions.
13841384
1385- Note that the \texttt {CR } and \texttt {CW } bits only fault if the
1385+ Note that the \texttt {CR } and \texttt {CW } bits fault only if the
13861386capability being read or written is tagged. Untagged capability
13871387values can be read from or written to memory regardless of the
13881388\texttt {CR } and \texttt {CW } permissions. In addition, if the
@@ -1422,7 +1422,7 @@ \subsection{Capability Mode}
14221422by sealing. For example, a sentry capability could be used in either
14231423plain 64-bit mode or capability mode. By storing the mode in
14241424capability metadata protected by sealing, sealed code capabilities can
1425- only be used in the intended mode. Also, while it may be less
1425+ be used only in the intended mode. Also, while it may be less
14261426flexible to permit the stack alignment to be chosen orthogonally to the
14271427default instruction encoding mode, it does not seem useful in
14281428practice. Instead, capability mode is designed as a single knob to
@@ -1432,7 +1432,7 @@ \subsection{Additional Capability Registers as Operands}
14321432
14331433We considered various options for using additional capability
14341434registers such as \CGS {} as explicit operands in instructions rather
1435- than as a separate bank of registers only accessed via
1435+ than as a separate bank of registers accessed only via
14361436\insnnoref {MOV }. All of these approaches add complexity to
14371437instruction decoding, but we do not anticipate frequent direct access
14381438to additional capability registers beyond the use of the existing
@@ -1474,7 +1474,7 @@ \subsection{Access to Additional Capability Registers}
14741474
14751475The \CFS {}, \CGS {}, and \DDC {} capability registers must be accessible
14761476in all privilege levels. However, other additional capability
1477- registers such as \KGS {} are only suitable for privilege level 0.
1477+ registers such as \KGS {} are suitable only for privilege level 0.
14781478Currently the \textbf {0F 24 } and \textbf {0F 25 } instructions permit
14791479access to a subset of registers in privilege levels other than 0.
14801480
@@ -1504,7 +1504,7 @@ \subsection{Far Branches and Capabilities}
15041504
15051505Supporting far branches with capability operands would add additional
15061506complexity. For example, far branches need to ensure that code
1507- capability pointers which enable capability mode are only used with
1507+ capability pointers which enable capability mode are used only with
1508150864-bit code segments. In-memory far capability pointers would also
15091509have odd alignment requirements due to the 16-bit code selector being
15101510adjacent to an aligned capability. Far branches are also little used
0 commit comments