Update more references to "global variables".

This continues the transition to "global values", which aren't
implicitly dereferenced.
This commit is contained in:
Dan Gohman
2018-06-26 13:54:46 -07:00
parent 99b9b96eee
commit 8f3c49bc6c
9 changed files with 32 additions and 112 deletions

View File

@@ -575,18 +575,18 @@ Cretonne functions.
.. inst:: GV = vmctx+Offset
Declare a global value in the VM context struct.
Declare a global value of the address of a field in the VM context struct.
This declares a global value whose address is a constant offset from the
This declares a global value which is a constant offset from the
VM context pointer which is passed as a hidden argument to all functions
JIT-compiled for the VM.
Typically, the VM context is a C struct, and the declared global value
is a member of the struct.
is the address of a member of the struct.
:arg Offset: Byte offset from the VM context pointer to the global
variable.
:result GV: Global variable.
value.
:result GV: Global value.
The address of a global value can also be derived by treating another global
variable as a struct pointer. This makes it possible to chase pointers into VM
@@ -599,16 +599,15 @@ runtime data structures.
The address of GV can be computed by first loading a pointer from BaseGV
and adding Offset to it.
It is assumed the BaseGV resides in readable memory with the appropriate
It is assumed the BaseGV resides in accessible memory with the appropriate
alignment for storing a pointer.
Chains of ``deref`` global values are possible, but cycles are not
allowed. They will be caught by the IR verifier.
:arg BaseGV: Global variable containing the base pointer.
:arg Offset: Byte offset from the loaded base pointer to the global
variable.
:result GV: Global variable.
:arg BaseGV: Global value providing the base pointer.
:arg Offset: Byte offset added to the loaded value.
:result GV: Global value.
.. inst:: GV = [colocated] globalsym name
@@ -622,7 +621,7 @@ runtime data structures.
efficient addressing.
:arg name: External name.
:result GV: Global variable.
:result GV: Global value.
.. autoinst:: global_value
.. autoinst:: globalsym_addr
@@ -690,7 +689,7 @@ trap when accessed.
Declare a static heap in the preamble.
:arg Base: Global variable holding the heap's base address or
:arg Base: Global value holding the heap's base address or
``reserved_reg``.
:arg MinBytes: Guaranteed minimum heap size in bytes. Accesses below this
size will never trap.
@@ -698,9 +697,6 @@ trap when accessed.
address space reserved for the heap, not including the guard pages.
:arg GuardBytes: Size of the guard pages in bytes.
When the base is a global value, it must be :term:`accessible` and naturally
aligned for a pointer value.
The ``reserved_reg`` option is not yet implemented.
Dynamic heaps
@@ -714,16 +710,13 @@ is resized. The bound of a dynamic heap is stored in a global value.
Declare a dynamic heap in the preamble.
:arg Base: Global variable holding the heap's base address or
:arg Base: Global value holding the heap's base address or
``reserved_reg``.
:arg MinBytes: Guaranteed minimum heap size in bytes. Accesses below this
size will never trap.
:arg BoundGV: Global variable containing the current heap bound in bytes.
:arg BoundGV: Global value containing the current heap bound in bytes.
:arg GuardBytes: Size of the guard pages in bytes.
When the base is a global value, it must be :term:`accessible` and naturally
aligned for a pointer value.
The ``reserved_reg`` option is not yet implemented.
Heap examples