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
5227
5227
instructions to emit), a list of operand constraints (stored as a string), a
5228
5228
flag that indicates whether or not the inline asm expression has side effects,
5229
5229
and 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.
5234
5239
5235
5240
The template string supports argument substitution of the operands using "``$``"
5236
5241
followed by a number, to indicate substitution of the given register/memory
You can’t perform that action at this time.
0 commit comments