#### 15.8.1 Code Organisation

The various `mpn` subdirectories contain machine-dependent code, written in C or assembly. The `mpn/generic` subdirectory contains default code, used when there’s no machine-specific version of a particular file.

Each `mpn` subdirectory is for an ISA family. Generally 32-bit and 64-bit variants in a family cannot share code and have separate directories. Within a family further subdirectories may exist for CPU variants.

In each directory a `nails` subdirectory may exist, holding code with nails support for that CPU variant. A `NAILS_SUPPORT` directive in each file indicates the nails values the code handles. Nails code only exists where it’s faster, or promises to be faster, than plain code. There’s no effort put into nails if they’re not going to enhance a given CPU.