Skip to content

Latest commit

 

History

History
73 lines (58 loc) · 2.47 KB

File metadata and controls

73 lines (58 loc) · 2.47 KB

Introduction

This specification provides the processor-specific application binary interface document for RISC-V.

This specification consists of the following three parts:

  • Calling convention

  • ELF specification

  • DWARF specification

A future revision of this ABI will include a canonical set of mappings for memory model synchronization primitives.

Terms and Abbreviations

This specification uses the following terms and abbreviations:

Term Meaning

ABI

Application Binary Interface

gABI

Generic System V Application Binary Interface

ELF

Executable and Linking Format

psABI

Processor-Specific ABI

DWARF

Debugging With Arbitrary Record Formats

GOT

Global Offset Table

PLT

Procedure Linkage Table

PC

Program Counter

TLS

Thread-Local Storage

NTBS

Null-Terminated Byte String

XLEN

The width of an integer register in bits

FLEN

The width of a floating-point register in bits

PTRSZ

The width of a pointer type in bits (8*sizeof(void *))

Linker relaxation

A mechanism for optimizing programs at link-time, see [Linker Relaxation] for more detail.

RVWMO

RISC-V Weak Memory Order, as defined in the RISC-V specification.

Status of ABI

ABI Name Status

ILP32

Ratified

ILP32F

Ratified

ILP32D

Ratified

ILP32E

Draft

LP64

Ratified

LP64F

Ratified

LP64D

Ratified

LP64Q

Ratified

RV64ILP32

Draft

RV64ILP32F

Draft

RV64ILP32D

Draft

RV64ILP32Q

Draft

Note
ABI for big-endian is NOT included in this specification, we intend to define that in future version of this specification.

Any encodings that are marked as reserved for a specific extension (ISA or purely ABI addition) should be treated by standard tools identically to any other encodings reserved for future standard extensions. Such reservations are solely declarations of intent to reduce conflicts between in-flight standard extensions, and may be reclaimed for future reassignment at any point for any reason. Any encodings marked as reserved have draft, not ratified, status, regardless of whether they are reserved for a ratified ISA extension.