@@ -1239,6 +1239,50 @@ $(H3 $(LNAME2 simd, SIMD))
1239
1239
1240
1240
$(P SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2 and AVX are supported.)
1241
1241
1242
+ $(H2 $(LNAME2 gcc, GCC syntax))
1243
+
1244
+ $(P The $(LINK2 https://gdcproject.org/, GNU D Compiler) uses an alternative, GCC-based syntax for inline assembler:)
1245
+
1246
+ $(GRAMMAR
1247
+ $(GNAME GccAsmStatement):
1248
+ $(D asm) $(GLINK2 function, FunctionAttributes)$(OPT) $(D {) $(GLINK GccAsmInstructionList) $(D })
1249
+
1250
+ $(GNAME GccAsmInstructionList):
1251
+ $(GLINK GccAsmInstruction) $(D ;)
1252
+ $(GLINK GccAsmInstruction) $(D ;) $(GSELF GccAsmInstructionList)
1253
+
1254
+ $(GNAME GccAsmInstruction):
1255
+ $(GLINK GccBasicAsmInstruction)
1256
+ $(GLINK GccExtAsmInstruction)
1257
+ $(GLINK GccGotoAsmInstruction)
1258
+
1259
+ $(GNAME GccBasicAsmInstruction):
1260
+ $(GLINK2 expression, AssignExpression)
1261
+
1262
+ $(GNAME GccExtAsmInstruction):
1263
+ $(GLINK2 expression, AssignExpression) $(D :) $(GLINK GccAsmOperands)$(OPT)
1264
+ $(GLINK2 expression, AssignExpression) $(D :) $(GLINK GccAsmOperands)$(OPT) $(D :) $(GLINK GccAsmOperands)$(OPT)
1265
+ $(GLINK2 expression, AssignExpression) $(D :) $(GLINK GccAsmOperands)$(OPT) $(D :) $(GLINK GccAsmOperands)$(OPT) $(D :) $(GLINK GccAsmClobbers)$(OPT)
1266
+
1267
+ $(GNAME GccGotoAsmInstruction):
1268
+ $(GLINK2 expression, AssignExpression) $(D :) $(D :) $(GLINK GccAsmOperands)$(OPT) $(D :) $(GLINK GccAsmClobbers)$(OPT) $(D :) $(GLINK GccAsmGotoLabels)$(OPT)
1269
+
1270
+ $(GNAME GccAsmOperands):
1271
+ $(GLINK GccSymbolicName)$(OPT) $(GLINK_LEX StringLiteral) $(D $(LPAREN)) $(GLINK2 expression, AssignExpression) $(D $(RPAREN))
1272
+ $(GLINK GccSymbolicName)$(OPT) $(GLINK_LEX StringLiteral) $(D $(LPAREN)) $(GLINK2 expression, AssignExpression) $(D $(RPAREN)) $(D ,) $(GSELF GccAsmOperands)
1273
+
1274
+ $(GNAME GccSymbolicName):
1275
+ $(D [) $(GLINK_LEX Identifier) $(D ])
1276
+
1277
+ $(GNAME GccAsmClobbers):
1278
+ $(GLINK_LEX StringLiteral)
1279
+ $(GLINK_LEX StringLiteral) $(D ,) $(GSELF GccAsmClobbers)
1280
+
1281
+ $(GNAME GccAsmGotoLabels):
1282
+ $(GLINK_LEX Identifier)
1283
+ $(GLINK_LEX Identifier) $(D ,) $(GSELF GccAsmGotoLabels)
1284
+ )
1285
+
1242
1286
$(COMMENT
1243
1287
$(H3 $(LNAME2 other, Other))
1244
1288
$(P AES, CMUL, FSGSBASE, RDRAND, FP16C and FMA are supported.)
0 commit comments