diff options
author | Eli Bendersky <eliben@chromium.org> | 2013-07-02 13:06:42 -0700 |
---|---|---|
committer | Eli Bendersky <eliben@chromium.org> | 2013-07-02 13:06:42 -0700 |
commit | bdad02d55969b0963ac23e05578d28def5636ebd (patch) | |
tree | 7c4e161f0100aca9422131ab3583a0057e19429b /docs | |
parent | 43102ff480a59a1661a6390422835a705f199582 (diff) |
Tweak the PNaClLangRef doc with some recent changes
BUG=None
R=mseaborn@chromium.org
Review URL: https://codereview.chromium.org/18543004
Diffstat (limited to 'docs')
-rw-r--r-- | docs/PNaClLangRef.rst | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/docs/PNaClLangRef.rst b/docs/PNaClLangRef.rst index dc144f59a2..e48bebc84d 100644 --- a/docs/PNaClLangRef.rst +++ b/docs/PNaClLangRef.rst @@ -29,6 +29,8 @@ High Level Structure A PNaCl portable executable ("pexe" in short) is a single LLVM IR module. +.. _linkagetypes: + Linkage Types ------------- @@ -36,7 +38,8 @@ Linkage Types The linkage types supported by PNaCl bitcode are ``internal`` and ``external``. A single function in the pexe, named ``_start``, has the linkage type -``external``. All the other functions have the linkage type ``internal``. +``external``. All the other functions and globals have the linkage type +``internal``. Calling Conventions ------------------- @@ -58,7 +61,10 @@ Global Variables `LLVM LangRef: Global Variables <LangRef.html#globalvars>`_ -PNaCl bitcode does not support TLS models. +Restrictions on global variables: + +* PNaCl bitcode does not support TLS models. +* Restrictions on :ref:`linkage types <linkagetypes>`. TODO: describe other restrictions on global variables @@ -67,8 +73,9 @@ Functions `LLVM LangRef: Functions <LangRef.html#functionstructure>`_ -The restrictions on linkage types, calling conventions and visibility styles -apply to functions. In addition, the following are not supported for functions: +The restrictions on :ref:`linkage types <linkagetypes>`, calling conventions +and visibility styles apply to functions. In addition, the following are +not supported for functions: * Function attributes (either for the the function itself, its parameters or its return type). @@ -321,9 +328,12 @@ TODO(jfb): atomics * ``llvm.memcpy`` * ``llvm.memmove`` * ``llvm.memset`` + + These intrinsics are only supported with an i32 ``len`` argument. + * ``llvm.bswap`` - The overloaded llvm.bswap intrinsic is only supported with the following + The overloaded ``llvm.bswap`` intrinsic is only supported with the following argument types: i16, i32, i64 (the types supported by C-style GCC builtins). * ``llvm.ctlz`` |