@@ -4,7 +4,7 @@ ifeval::["{docname}" == "riscv-elf"]
44include::prelude.adoc[]
55endif::[]
66
7- == Code models
7+ == Code Models
88
99The RISC-V architecture constrains the addressing of positions in the
1010address space. There is no single instruction that can refer to an arbitrary
@@ -18,7 +18,7 @@ However, some code models can't access the whole address space. The linker may
1818raise an error if it cannot adjust the instructions to access the target address
1919in the current code model.
2020
21- === Medium low code model
21+ === Medium Low Code Model
2222
2323The medium low code model, or `medlow`, allows the code to address the whole RV32
2424address space or the lower 2 GiB and highest 2 GiB of the RV64 address space
@@ -59,7 +59,7 @@ lui a0, 0x80000 # a0 = 0xffffffff80000000
5959addi a0, a0, -0x800 # a0 = a0 + -2048 = 0xFFFFFFFF7FFFF800
6060----
6161
62- === Medium any code model
62+ === Medium Any Code Model
6363
6464The medium any code model, or `medany`, allows the code to address the range
6565between -2 GiB and +2 GiB from its position. By using `auipc`
@@ -103,7 +103,7 @@ for that, please use the medium position independent code model below.
103103
104104NOTE: The address space of RV64ILP32* ABIs is not continuous in the middle.
105105
106- === Medium position independent code model
106+ === Medium Position Independent Code Model
107107
108108This model is similar to the medium any code model, but uses the
109109<<Global Offset Table,global offset table>> (GOT) for non-local symbol addresses.
@@ -127,7 +127,7 @@ This model is similar to the medium any code model, but uses the
127127 l[w|d] a0, %pcrel_lo(.Ltmp3)(a0)
128128----
129129
130- === Large code model
130+ === Large Code Model
131131
132132The `large` code model allows the code to address the whole RV64 address space.
133133Thus, this model is only available for RV64. By putting object addresses
@@ -207,7 +207,7 @@ same way as `std::bfloat16_t`.
207207=== Name Mangling for Vector Data Types, Vector Mask Types and Vector Tuple Types.
208208
209209The vector data types and vector mask types, as defined in the section
210- <<Vector type sizes and alignments >>, are treated as vendor-extended types in
210+ <<Vector Type Sizes and Alignments >>, are treated as vendor-extended types in
211211the _Itanium {Cpp} ABI_ <<itanium-cxx-abi>>. These mangled name for
212212these types is `"u"<len>"__rvv_"<type-name>`. Specifically,
213213prefixing the type name with `__rvv_`, which is prefixed by
@@ -339,7 +339,7 @@ and the operating system, and the ABI differences are so significant they
339339cannot be done with a .RISCV.attributes tag nor an ELF note, such as using a
340340different syscall ABI.
341341
342- ==== Policy for Merge Objects With Different File Headers
342+ ==== Policy for Merge Objects with Different File Headers
343343
344344This section describe the behavior when the inputs files come with different
345345file headers.
@@ -1241,7 +1241,7 @@ In order to improve the compatibility of the tool, the attribute follows below r
12411241- The tag is optional; If the tool does not recognize this attribute and the tag number
12421242 modulo 128 is greater than or equal to 64 (`(N % 128) >= 64`), the tag can be ignored.
12431243
1244- ==== Layout of .riscv.attributes section
1244+ ==== Layout of .riscv.attributes Section
12451245
12461246The attributes section start with a format-version (uint8 = 'A') followed by
12471247vendor specific sub-section(s). A sub-section starts with sub-section length
@@ -1256,7 +1256,7 @@ A sub-section with name "riscv\0" is mandatory. Vendor specific sub-sections
12561256are allowed in future. Vendor names starting with "[Aa]non" are reserved for
12571257non-standard ABI extensions.
12581258
1259- ==== List of attributes
1259+ ==== List of Attributes
12601260
12611261.RISC-V attributes
12621262[cols="4,>2,2,5"]
@@ -1275,7 +1275,7 @@ non-standard ABI extensions.
12751275| Reserved for non-standard attribute | >= 32768 | - | -
12761276|===
12771277
1278- ==== Detailed attribute description
1278+ ==== Detailed Attribute Description
12791279
12801280===== How does this specification describe public attributes?
12811281
@@ -1647,7 +1647,7 @@ Relaxation result:
16471647--
16481648
16491649[[gp-relax]]
1650- ==== Global-pointer Relaxation
1650+ ==== Global-Pointer Relaxation
16511651
16521652 Target Relocation:: R_RISCV_HI20, R_RISCV_LO12_I, R_RISCV_LO12_S,
16531653 R_RISCV_PCREL_HI20, R_RISCV_PCREL_LO12_I, R_RISCV_PCREL_LO12_S
@@ -1737,7 +1737,7 @@ optimize code size and performance of the symbol accessing.
17371737
17381738NOTE: Tag_RISCV_x3_reg_usage is treated as 0 if it is not present.
17391739
1740- ==== GOT load relaxation
1740+ ==== GOT Load Relaxation
17411741
17421742 Target Relocation:: R_RISCV_GOT_HI20, R_RISCV_PCREL_LO12_I
17431743
@@ -1811,7 +1811,7 @@ Relaxation result (relative symbol):
18111811----
18121812--
18131813
1814- ==== Zero-page Relaxation
1814+ ==== Zero-Page Relaxation
18151815
18161816 Target Relocation:: R_RISCV_HI20, R_RISCV_LO12_I, R_RISCV_LO12_S
18171817
@@ -1880,7 +1880,7 @@ Relaxation result:
18801880----
18811881--
18821882
1883- ==== Thread-pointer Relaxation
1883+ ==== Thread-Pointer Relaxation
18841884
18851885 Target Relocation:: R_RISCV_TPREL_HI20, R_RISCV_TPREL_ADD,
18861886 R_RISCV_TPREL_LO12_I, R_RISCV_TPREL_LO12_S.
0 commit comments