aboutsummaryrefslogtreecommitdiff
path: root/docs/devel
diff options
context:
space:
mode:
authorEmanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com>2020-10-15 11:51:47 +0200
committerPeter Maydell <peter.maydell@linaro.org>2020-10-20 16:12:00 +0100
commita0c0c9f8b4093bf1564d705d8977b6ba46cd2f5a (patch)
treea7e5cbea2f94a3bc042c77a09816509f4a5093cf /docs/devel
parent19d50149c857e50ccb1ee35dd4277f9d4954877f (diff)
downloadqemu-a0c0c9f8b4093bf1564d705d8977b6ba46cd2f5a.zip
qemu-a0c0c9f8b4093bf1564d705d8977b6ba46cd2f5a.tar.gz
qemu-a0c0c9f8b4093bf1564d705d8977b6ba46cd2f5a.tar.bz2
loads-stores.rst: add footnote that clarifies GETPC usage
Current documentation is not too clear on the GETPC usage. In particular, when used outside the top level helper function it causes unexpected behavior. Signed-off-by: Emanuele Giuseppe Esposito <e.emanuelegiuseppe@gmail.com> Message-id: 20201015095147.1691-1-e.emanuelegiuseppe@gmail.com Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'docs/devel')
-rw-r--r--docs/devel/loads-stores.rst8
1 files changed, 7 insertions, 1 deletions
diff --git a/docs/devel/loads-stores.rst b/docs/devel/loads-stores.rst
index 9a944ef..59c1225 100644
--- a/docs/devel/loads-stores.rst
+++ b/docs/devel/loads-stores.rst
@@ -93,7 +93,13 @@ guest CPU state in case of a guest CPU exception. This is passed
to ``cpu_restore_state()``. Therefore the value should either be 0,
to indicate that the guest CPU state is already synchronized, or
the result of ``GETPC()`` from the top level ``HELPER(foo)``
-function, which is a return address into the generated code.
+function, which is a return address into the generated code [#gpc]_.
+
+.. [#gpc] Note that ``GETPC()`` should be used with great care: calling
+ it in other functions that are *not* the top level
+ ``HELPER(foo)`` will cause unexpected behavior. Instead, the
+ value of ``GETPC()`` should be read from the helper and passed
+ if needed to the functions that the helper calls.
Function names follow the pattern: