File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed
Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -5227,10 +5227,15 @@ represents the inline assembler as a template string (containing the
52275227instructions to emit), a list of operand constraints (stored as a string), a
52285228flag that indicates whether or not the inline asm expression has side effects,
52295229and a flag indicating whether the function containing the asm needs to align its
5230- stack conservatively. The compiler's understanding of the semantics of the
5231- expression comes only from the list of operand constraints and the flags -- not
5232- the contents of the template string. In particular, no optimizations or analyses
5233- will be performed based on the contents of that string.
5230+ stack conservatively.
5231+
5232+ The compiler's understanding of the semantics of the expression comes only from
5233+ the list of operand constraints and the flags -- not the contents of the
5234+ template string. In particular, no optimizations or analyses will be performed
5235+ based on the contents of that string. This ensures correct behavior if the
5236+ assembly code emitted by this expression is altered later, e.g. via
5237+ self-modifying code, as long as the code keeps upholding the requirements of the
5238+ operand constraints and the flags.
52345239
52355240The template string supports argument substitution of the operands using "``$``"
52365241followed by a number, to indicate substitution of the given register/memory
You can’t perform that action at this time.
0 commit comments