Skip to content

Commit 6c2cf0b

Browse files
authored
Rollup merge of rust-lang#125690 - Lokathor:arm-maintainer-reorg, r=ehuss
ARM Target Docs Update Updates the ARM target docs, drawing more attention to the `arm-none-eabi` target group by placing all targets *within* that group as a sub-list in the Table of Contents. Also updates the `armv4t-none-eabi` page (maintainer signoff: I'm that target's maintainer) to clarify that the page covers the arm version and the thumb version of the target, but that the target group page has the full info because there's nothing really specific to say for those targets.
2 parents 0dc6550 + 94d4040 commit 6c2cf0b

File tree

3 files changed

+35
-32
lines changed

3 files changed

+35
-32
lines changed

src/doc/rustc/src/SUMMARY.md

+9-9
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,15 @@
3030
- [aarch64-nintendo-switch-freestanding](platform-support/aarch64-nintendo-switch-freestanding.md)
3131
- [armeb-unknown-linux-gnueabi](platform-support/armeb-unknown-linux-gnueabi.md)
3232
- [arm-none-eabi](platform-support/arm-none-eabi.md)
33-
- [armv4t-none-eabi](platform-support/armv4t-none-eabi.md)
34-
- [armv5te-none-eabi](platform-support/armv5te-none-eabi.md)
35-
- [armv7r-none-eabi](platform-support/armv7r-none-eabi.md)
36-
- [armv8r-none-eabihf](platform-support/armv8r-none-eabihf.md)
33+
- [armv4t-none-eabi](platform-support/armv4t-none-eabi.md)
34+
- [armv5te-none-eabi](platform-support/armv5te-none-eabi.md)
35+
- [armv7r-none-eabi](platform-support/armv7r-none-eabi.md)
36+
- [armv8r-none-eabihf](platform-support/armv8r-none-eabihf.md)
37+
- [thumbv6m-none-eabi](./platform-support/thumbv6m-none-eabi.md)
38+
- [thumbv7em-none-eabi\*](./platform-support/thumbv7em-none-eabi.md)
39+
- [thumbv7m-none-eabi](./platform-support/thumbv7m-none-eabi.md)
40+
- [thumbv8m.base-none-eabi](./platform-support/thumbv8m.base-none-eabi.md)
41+
- [thumbv8m.main-none-eabi\*](./platform-support/thumbv8m.main-none-eabi.md)
3742
- [armv6k-nintendo-3ds](platform-support/armv6k-nintendo-3ds.md)
3843
- [armv7-sony-vita-newlibeabihf](platform-support/armv7-sony-vita-newlibeabihf.md)
3944
- [armv7-unknown-linux-uclibceabi](platform-support/armv7-unknown-linux-uclibceabi.md)
@@ -60,11 +65,6 @@
6065
- [riscv32imac-unknown-xous-elf](platform-support/riscv32imac-unknown-xous-elf.md)
6166
- [riscv32*-unknown-none-elf](platform-support/riscv32-unknown-none-elf.md)
6267
- [sparc-unknown-none-elf](./platform-support/sparc-unknown-none-elf.md)
63-
- [thumbv6m-none-eabi](./platform-support/thumbv6m-none-eabi.md)
64-
- [thumbv7m-none-eabi](./platform-support/thumbv7m-none-eabi.md)
65-
- [thumbv7em-none-eabi\*](./platform-support/thumbv7em-none-eabi.md)
66-
- [thumbv8m.base-none-eabi](./platform-support/thumbv8m.base-none-eabi.md)
67-
- [thumbv8m.main-none-eabi\*](./platform-support/thumbv8m.main-none-eabi.md)
6868
- [*-pc-windows-gnullvm](platform-support/pc-windows-gnullvm.md)
6969
- [\*-nto-qnx-\*](platform-support/nto-qnx.md)
7070
- [*-unikraft-linux-musl](platform-support/unikraft-linux-musl.md)

src/doc/rustc/src/platform-support/arm-none-eabi.md

+17-11
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
# `{arm,thumb}*-none-eabi(hf)?`
22

3-
## Tier 2 Target List
3+
## Common Target Details
4+
5+
This documentation covers details that apply to a range of bare-metal targets
6+
for 32-bit Arm CPUs. The `arm-none-eabi` flavor of the GNU compiler toolchain is
7+
often used to assist compilation to these targets.
8+
9+
Details that apply only to only a specific target in this group are covered in
10+
their own document.
11+
12+
### Tier 2 Target List
413

514
- Arm A-Profile Architectures
615
- `armv7a-none-eabi`
@@ -16,7 +25,7 @@
1625
- *Legacy* Arm Architectures
1726
- None
1827

19-
## Tier 3 Target List
28+
### Tier 3 Target List
2029

2130
- Arm A-Profile Architectures
2231
- `armv7a-none-eabihf`
@@ -28,24 +37,21 @@
2837
- [`armv4t-none-eabi` and `thumbv4t-none-eabi`](armv4t-none-eabi.md)
2938
- [`armv5te-none-eabi` and `thumbv5te-none-eabi`](armv5te-none-eabi.md)
3039

31-
## Common Target Details
32-
33-
This documentation covers details that apply to a range of bare-metal targets
34-
for 32-bit Arm CPUs. In addition, target specific details may be covered in
35-
their own document.
40+
## Instruction Sets
3641

3742
There are two 32-bit instruction set architectures (ISAs) defined by Arm:
3843

3944
- The [*A32 ISA*][a32-isa], with fixed-width 32-bit instructions. Previously
40-
known as the *Arm* ISA, this originated with the original ARM1 of 1985 and has
45+
known as the *Arm* ISA, this originated with the original Arm1 of 1985 and has
4146
been updated by various revisions to the architecture specifications ever
4247
since.
4348
- The [*T32 ISA*][t32-isa], with a mix of 16-bit and 32-bit width instructions.
4449
Note that this term includes both the original 16-bit width *Thumb* ISA
4550
introduced with the Armv4T architecture in 1994, and the later 16/32-bit sized
46-
*Thumb-2* ISA introduced with the Armv6T2 architecture in 2003. Again, these
47-
ISAs have been revised by subsequent revisions to the relevant Arm
48-
architecture specifications.
51+
*Thumb-2* ISA introduced with the Armv6T2 architecture in 2003.
52+
53+
Again, these ISAs have been revised by subsequent revisions to the relevant Arm
54+
architecture specifications.
4955

5056
There is also a 64-bit ISA with fixed-width 32-bit instructions called the *A64
5157
ISA*, but targets which implement that instruction set generally start with
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
1-
# armv4t-none-eabi
1+
# armv4t-none-eabi / thumbv4t-none-eabi
22

33
Tier 3
44

5-
Bare-metal target for any cpu in the Armv4T architecture family, supporting
6-
ARM/Thumb code interworking (aka `A32`/`T32`), with ARM code as the default code
7-
generation.
5+
These two targets are part of the [`arm-none-eabi`](arm-none-eabi.md) target
6+
group, and all the information there applies.
87

9-
In particular this supports the Game Boy Advance (GBA), but there's nothing
10-
GBA-specific with this target, so any Armv4T device should work fine.
11-
12-
See [`arm-none-eabi`](arm-none-eabi.md) for information applicable to all
13-
`arm-none-eabi` targets.
8+
Both of these targets can be used on the Game Boy Advance (GBA), among other
9+
things. On the GBA, one should usually use the `thumb` target to get the best
10+
overall performance.
1411

1512
## Target Maintainers
1613

@@ -23,6 +20,6 @@ This is a cross-compiled target that you will need to emulate during testing.
2320
Because this is a device-agnostic target, and the exact emulator that you'll
2421
need depends on the specific device you want to run your code on.
2522

26-
For example, when programming for the Gameboy Advance, the
27-
[mgba-test-runner](https://github.com/agbrs/agb) program could be used to make a
28-
normal set of rust tests be run within the `mgba` emulator.
23+
* When building for the GBA, [mgba-test-runner](https://github.com/agbrs/agb)
24+
can be used to make a normal set of rust tests be run within the `mgba`
25+
emulator.

0 commit comments

Comments
 (0)