Bedrock is a 64-bit instruction set architecture and systems-software specification. It defines a variable-length architecture with restartable repeated execution and an optional scalable-vector extension. The project also provides ABI contracts, an executable Sail model, generated implementation inputs, an LLVM toolchain, and an emulator.
Warning
Bedrock is under active design. Instruction encodings, ABIs, and tool interfaces may change. Use the current reference documents and their owning sources when implementing against the project.
Read the reference | Browse the specification | Explore the LLVM toolchain
The published reference separates the contracts used by architecture, toolchain, and systems-software implementations.
| Document | Scope |
|---|---|
| Programmer's Reference Manual | Programmer-visible state, instruction encoding, execution semantics, memory behavior, privilege, events, debug, and architectural extensions |
| ELF ABI | Object files, relocations, linking, loading, dynamic linking, TLS, code models, and DWARF register numbering |
| C ABI | LP64 data model, calling convention, stack and register use, runtime helpers, and C memory-order lowering |
| C target interface | Compiler builtins, target headers, source signatures, lowering requirements, and compiler-visible effects |
The spec repository owns these
documents and the structured definitions and Sail sources used to produce the
public reference and implementation artifacts.
| Task | Starting point |
|---|---|
| Study or implement the architecture | Read the architecture reference, then inspect the isa sources and artifacts that apply to your implementation. |
| Add compiler, assembler, or linker support | Use the ABI documents above with the Bedrock target in llvm-project. |
| Run and inspect Bedrock software | Start with the emulator and its executable samples. |
specowns the ISA, ABI, compiler interface, executable model, generated implementation artifacts, emulator, and samples.llvm-projectowns the Bedrock target implementations for LLVM, Clang, LLD, and related tools.
Bedrock is developed in dependency order rather than against a published schedule. The current specification covers the architecture, ABI, compiler interface, executable model, toolchain support, and emulator.
Planned work extends this foundation with:
- a typed platform subsystem interface and discovery model;
- standard profiles for timers, interrupts, IOMMU, power, reset, and PCIe;
- a minimum general-purpose platform profile;
- Bedrock architecture bindings for UEFI and ACPI;
- versioned implementation snapshots and a stable 1.0 contract.
Report architecture, ABI, compiler-interface, model, and emulator problems in
the spec issue tracker. Report
LLVM target problems in the
llvm-project issue tracker.