diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-08-24 15:54:41 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-08-24 15:55:07 +0200 |
commit | 873ba805c7fd365dd38b835d34e6cd9826a66fd2 (patch) | |
tree | 6f7672d739404065279a57088a82532cfcce13b6 | |
parent | c-user: Clarify user extensions (diff) | |
download | rtems-docs-873ba805c7fd365dd38b835d34e6cd9826a66fd2.tar.bz2 |
cpu-supplement: Fix PowerPC TOC limitation
Update #3082.
-rw-r--r-- | cpu-supplement/powerpc.rst | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/cpu-supplement/powerpc.rst b/cpu-supplement/powerpc.rst index c9b4539..d9dfd53 100644 --- a/cpu-supplement/powerpc.rst +++ b/cpu-supplement/powerpc.rst @@ -131,8 +131,9 @@ Thread-local storage is supported. setup. A valid stack pointer is not enough to call C functions. They may use the TOC to get addresses and constants. -* The TOC must be within the first 4GiB of the address space. This simplifies - the interrupt prologue. +* The TOC must be within the first 2GiB of the address space. This simplifies + the interrupt prologue, since the `r2` can be set to `.TOC.` via the usual + `lis` followed by `ori` combination. The `lis` is subject to sign-extension. * The `PPC_REG_LOAD`, `PPC_REG_STORE`, `PPC_REG_STORE_UPDATE`, and `PPC_REG_CMP` macros are available for assembly code to provide register size |