Inline assembler

Intrinsic functions for special instructions are provided by most compilers and C-function wrappers for arbitrary system calls are available on every Unix platform.

The MSVC form of an embedded domain-specific language provides ease of writing, but it requires the compiler itself to know about opcode names and their clobbering properties, demanding extra attention in maintenance and porting.

[9][10] The D programming language uses a DSL similar to the MSVC extension officially for x86_64,[11] but the LLVM-based LDC also provides the GCC-style syntax on every architecture.

[5] The Rust language has since migrated to a syntax abstracting away inline assembly options further than the LLVM (GCC-style) version.

This is rarely a feature in a higher-level language, and so wrapper functions for system calls are written using inline assembler.

[4] This example of inline assembly from the D programming language shows code that computes the tangent of x using the x86's FPU (x87) instructions.