diff options
-rw-r--r-- | native_client_sdk/doc_generated/reference/sandbox_internals/arm-32-bit-sandbox.html | 7 | ||||
-rw-r--r-- | native_client_sdk/src/doc/reference/sandbox_internals/arm-32-bit-sandbox.rst | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/native_client_sdk/doc_generated/reference/sandbox_internals/arm-32-bit-sandbox.html b/native_client_sdk/doc_generated/reference/sandbox_internals/arm-32-bit-sandbox.html index 618e8b54..32f8a84 100644 --- a/native_client_sdk/doc_generated/reference/sandbox_internals/arm-32-bit-sandbox.html +++ b/native_client_sdk/doc_generated/reference/sandbox_internals/arm-32-bit-sandbox.html @@ -411,9 +411,9 @@ the possible places that any <em>indirect branch</em> can land. On Native Client for ARM, <em>indirect branch</em> can target any address that has its bottom four bits clear—any address that’s <code>0 mod 16</code>. We call these 16-byte chunks of code “bundles”. The validator makes sure that no -pseudo-instruction straddles a bundle boundary. Compilers must pad with` -<cite>nop`</cite>s to ensure that every pseudo-instruction fits entirely inside -one bundle.</p> +pseudo-instruction straddles a bundle boundary. Compilers must pad with +<code>nop</code> to ensure that every pseudo-instruction fits entirely inside one +bundle.</p> <p>Here is the <em>indirect branch</em> pseudo-instruction. As you can see, it clears the top two and bottom four bits of the address:</p> <pre> @@ -580,6 +580,7 @@ way, if an <em>indirect branch</em> tries to enter the data bundle, the process will take a fault and the trusted runtime will intervene (by terminating the program). For example:</p> <pre> +.p2align 4 bkpt #0x5BE0 ; Must be aligned 0 mod 16! .word 0xDEADBEEF ; Arbitrary constants are A-OK. svc #30 ; Trying to make a syscall? OK! diff --git a/native_client_sdk/src/doc/reference/sandbox_internals/arm-32-bit-sandbox.rst b/native_client_sdk/src/doc/reference/sandbox_internals/arm-32-bit-sandbox.rst index 0de3f1c..919c3fd 100644 --- a/native_client_sdk/src/doc/reference/sandbox_internals/arm-32-bit-sandbox.rst +++ b/native_client_sdk/src/doc/reference/sandbox_internals/arm-32-bit-sandbox.rst @@ -464,9 +464,9 @@ the possible places that any *indirect branch* can land. On Native Client for ARM, *indirect branch* can target any address that has its bottom four bits clear---any address that's ``0 mod 16``. We call these 16-byte chunks of code "bundles". The validator makes sure that no -pseudo-instruction straddles a bundle boundary. Compilers must pad with` -`nop``\ s to ensure that every pseudo-instruction fits entirely inside -one bundle. +pseudo-instruction straddles a bundle boundary. Compilers must pad with +``nop`` to ensure that every pseudo-instruction fits entirely inside one +bundle. Here is the *indirect branch* pseudo-instruction. As you can see, it clears the top two and bottom four bits of the address: @@ -669,6 +669,7 @@ the program). For example: .. naclcode:: :prettyprint: 0 + .p2align 4 bkpt #0x5BE0 ; Must be aligned 0 mod 16! .word 0xDEADBEEF ; Arbitrary constants are A-OK. svc #30 ; Trying to make a syscall? OK! |