/xbmc/visualizations/Vortex/angelscript/docs/manual/doc_adv_jit_1.html
http://github.com/xbmc/xbmc · HTML · 272 lines · 271 code · 0 blank · 1 comment · 0 complexity · 308c78a566907c2c2332bbe3f0dfc5f8 MD5 · raw file
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
- <title>AngelScript: Byte code instructions</title>
- <link href="tabs.css" rel="stylesheet" type="text/css">
- <link href="doxygen.css" rel="stylesheet" type="text/css">
- </head><body>
- <!-- Generated by Doxygen 1.5.9 -->
- <div class="contents">
- <h1><a class="anchor" name="doc_adv_jit_1">Byte code instructions </a></h1>This page gives a brief description of each of the byte code instructions that the virtual machine has.<p>
- <ul>
- <li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_1">Object management</a></li><li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_2">Math instructions</a></li><li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_3">Bitwise instructions</a></li><li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_4">Comparisons</a></li><li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_5">Type conversions</a></li><li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_6">Increment and decrement</a></li><li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_7">Flow control</a></li><li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_8">Stack and data management</a></li><li><a class="el" href="doc_adv_jit_1.html#doc_adv_jit_1_9">Global variables</a></li></ul>
- <h2><a class="anchor" name="doc_adv_jit_1_1">
- Object management</a></h2>
- Perform a bitwise copy of a memory buffer to another<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0a06ef833e37285449bfc72e0c93479a9">asBC_COPY</a></li></ul>
- <p>
- Push the address and length of a string on the stack<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0a9541dbcbb58f820d5d8e81414367d5e">asBC_STR</a></li></ul>
- <p>
- Allocate the memory for an object and setup the VM to execute the constructor<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0c215e24151dbbf8ca218ee90b77953d2">asBC_ALLOC</a></li></ul>
- <p>
- Release the memory of an object<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef01d13cb9820edf1d65e09e3c70f67d3b9">asBC_FREE</a></li></ul>
- <p>
- Move the address in an object variable to the object register. The address in the variable is then cleared.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef005fa84bd9f65d7e99871d9b78da54e16">asBC_LOADOBJ</a></li></ul>
- <p>
- Move the address from the object register to an object variable. The address in the object register is then cleared.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0aa9dd5f07ce2b4b9d72750daa4b64294">asBC_STOREOBJ</a></li></ul>
- <p>
- Copy the object handle from one address to another. The reference count of the object is updated to reflect the copy.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef00509f97130860b6fe3477f66e9fb712d">asBC_REFCPY</a></li></ul>
- <p>
- Push the pointer of an object type on the stack<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef00dcad2ccee9332253501c3cef2200fad">asBC_OBJTYPE</a></li></ul>
- <p>
- Push the type id on the stack<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef08f1ffc19b950ebc7b6a4b9ac97f8dc4d">asBC_TYPEID</a></li></ul>
- <p>
- Pop an address to a script object from the stack. If the desired cast can be made store the address in the object register.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef04ef6c5e255ffe285bff104bacaed2ba9">asBC_Cast</a></li></ul>
- <h2><a class="anchor" name="doc_adv_jit_1_2">
- Math instructions</a></h2>
- Negate the value in the variable. The original value is overwritten.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef001fe11f3f95464cb3e409c3181a02c1a">asBC_NEGi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef07de6d0118307feca68660e67c79ca7dc">asBC_NEGf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0928187662dfd857cf8edb10a632651d4">asBC_NEGd</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef03cf16372d571ec566ae93fd80e05b1ad">asBC_NEGi64</a></li></ul>
- <p>
- Perform the operation with the value of two variables and store the result in a third variable.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef042520944f391260636e0eed5c9ab76a9">asBC_ADDi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f04edb64674c1c46b1769b4f31828441">asBC_SUBi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef093c630d303bb6e91e044d6afea71b798">asBC_MULi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef027123834824beb61355869faf5e23cf4">asBC_DIVi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0e8e569143d23f682b3aecfa100bdfd4e">asBC_MODi</a></li></ul>
- <p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0b1bffd05b8b41e4a9dd09618b82bba9d">asBC_ADDf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0ca247b39114dc45ae993dd1cf80226aa">asBC_SUBf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0b32f923ffcabab481a2e46f702b17f7a">asBC_MULf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0cf3448b40f2fc34b4007f27c4f8488a2">asBC_DIVf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0e54338068d6b6e965c497c6b1d68c64e">asBC_MODf</a></li></ul>
- <p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0d2ff7a206ad788bd2b37b8ee92be7940">asBC_ADDd</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef040632786e202cc6a617bbe63a8d4cc0f">asBC_SUBd</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0411e71202157cfece504379e6171a464">asBC_MULd</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0016b86c3e0706775fc653d6f94048765">asBC_DIVd</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0c2137a8a8fe7af5070f37e796d863af2">asBC_MODd</a></li></ul>
- <p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0b1afb9b4dbebb726108b46887175c57e">asBC_ADDi64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef014984f047b26178d73ea024e97b3718c">asBC_SUBi64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef038931ac737104c4ccca730705bd7ec48">asBC_MULi64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef09f31be749c98afaa86f5b3a83218752b">asBC_DIVi64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef03bd852f5aa7c1a12da37a7ac91b1c83f">asBC_MODi64</a></li></ul>
- <p>
- Perform the operation with a constant value and the value of the variable. The original value is overwritten.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef01194db3e433a943156d548b2bb34ef13">asBC_ADDIi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0b77b30af827c52ee62a5ccab94d96003">asBC_SUBIi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f29eb13449c228f4dead9ba6da590147">asBC_MULIi</a></li></ul>
- <p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef015032e422f3346940aa37ec6dc6305d7">asBC_ADDIf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef083fc6f0a163316a6be6c280df57fcd13">asBC_SUBIf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef029cb2ee51427268cf549f90e110b1e38">asBC_MULIf</a></li></ul>
- <h2><a class="anchor" name="doc_adv_jit_1_3">
- Bitwise instructions</a></h2>
- Perform a boolean not operation on the value in the variable. The original value is overwritten.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef013a6093971474018818db5a76f012f26">asBC_NOT</a></li></ul>
- <p>
- Perform a bitwise complement on the value in the variable. The original value is overwritten.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0c9e8418aad908e23c4e2e9cbbc71f8fe">asBC_BNOT</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0263c5cfa90baf8f63c5b4d110c3d9daa">asBC_BNOT64</a></li></ul>
- <p>
- Perform the operation with the value of two variables and store the result in a third variable.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0051857d502a904223293d1604765c0f5">asBC_BAND</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef04265bc99ed27ff3e3cd55e7de3f6ee57">asBC_BOR</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0099bdbc768c58ad62d2662dd9727806a">asBC_BXOR</a></li></ul>
- <p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f1dff3cce666a689e8b1d5ceb91f1b42">asBC_BAND64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef05d6d553690fa38dc7f2b6a7b9ee14345">asBC_BOR64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0e4d7a6a1af23b2f14d5af7b6dfaa3f28">asBC_BXOR64</a></li></ul>
- <p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0671220a8df608a65acb7c5be7d950134">asBC_BSLL</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0427239dea36c73be86be67963dbc1935">asBC_BSRL</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0e7f2672c3c3a6859f17ebc25df4d95a1">asBC_BSRA</a></li></ul>
- <p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f18e856f167de0796acb84d3f5df09b2">asBC_BSLL64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0bb511dcd15fb9875ba270d5b95fed24d">asBC_BSRL64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef04203e09b3bf5f15810f0e2076c0088a5">asBC_BSRA64</a></li></ul>
- <h2><a class="anchor" name="doc_adv_jit_1_4">
- Comparisons</a></h2>
- Compare the value of two variables and store the result in the value register.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f81b0602117dd9ef104dea7d2d526cfa">asBC_CMPi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef02d473195aba3ddcc8d6419c047d0c741">asBC_CMPu</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0158d7962cea577c9a18f639976c6c0ab">asBC_CMPf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0d72b54941de6dccfbea9c6ccb5d915df">asBC_CMPd</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0a2c75f0562b433b18406a939bcd62e95">asBC_CMPi64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f521b982839cdc97e9b2413ac085b09f">asBC_CMPu64</a></li></ul>
- <p>
- Compare the value of a variable with a constant and store the result in the value register.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef033a798d1fe04ec8e1794ddb0838039d9">asBC_CMPIi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0d7195755387f9159b4a2c5de9e60a068">asBC_CMPIu</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef02f5efa47419aa3a053f1e8916b46e303">asBC_CMPIf</a></li></ul>
- <p>
- Test the value in the value register. Update the value register according to the result.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0fa0764106ecce859b73b84119cdbbb19">asBC_TZ</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0c63ed68678f4e7490d67727fd3dc6a80">asBC_TNZ</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef00136c50e72d9f3e09f053768373f8fd2">asBC_TS</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef06283325ca6354974eec243ce918e6902">asBC_TNS</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef06dc225b22eecb133457b82700081cbcf">asBC_TP</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0a57f16a2b46be5e2ce7740389c8eb479">asBC_TNP</a></li></ul>
- <h2><a class="anchor" name="doc_adv_jit_1_5">
- Type conversions</a></h2>
- Convert the value in the variable. The original value is overwritten.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0ea965df01399592f1e8c3950a35e837f">asBC_iTOb</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0cdf698af6bd4a5e427922e9462244319">asBC_iTOw</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0fbfb6f5aaf4d6599e16b4bfe458ce01e">asBC_sbTOi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0ad0cc8bb8012f257fa99f01b8b7035bd">asBC_swTOi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef09c20fcde56da1d0386a10490fb13a7d6">asBC_ubTOi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef01d90e73c2b31b0e15282d092b46cf742">asBC_uwTOi</a></li></ul>
- <p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef092116eabda2e6b20e1ea2a13a316decd">asBC_iTOf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0505d5d669a5d046b5fe5edbde407d12a">asBC_fTOi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef06f445f24f6501cf4c3711929a1d5e111">asBC_uTOf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef09e9e1d16d150ca95e5f8abee59aaed51">asBC_fTOu</a></li></ul>
- <p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0043e40662a884a7c39bbd982d3e2266f">asBC_dTOi64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0062cb021be1b64d913527c22c7dba896">asBC_dTOu64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef07e110775dee3e08f9ef7e2215fb48b26">asBC_i64TOd</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef061a9abe7f4b17874cc1f2eff761bc3b2">asBC_u64TOd</a></li></ul>
- <p>
- Convert the value of a variable and store the result in another variable.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0fb5dbe4edea3e5cfa521fd3a5738ccf6">asBC_dTOi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0b316237649a76cf10a1b9bc68c2792c4">asBC_dTOu</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0854599de98fcbd9334c9223e8e9058db">asBC_dTOf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0d9a5f8875c44b01fa6e1501bb70bae00">asBC_iTOd</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0bb2e2f37012d6cb75b446fc992dba6c4">asBC_uTOd</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef08d1a589383ae9187b58a3f774cbe77cd">asBC_fTOd</a></li></ul>
- <p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0e66d679b16934aeb2c7047ea1b1fae85">asBC_i64TOi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef022f2099b91cb1bde2df44760ea2efed7">asBC_i64TOf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0d293bf12c4a8de3c50794a9eaeac636d">asBC_u64TOf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f5f7cad82e5cd2dc4a3d690a2ab46bce">asBC_uTOi64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0a48a1b118c32dc9d5667b9039aa06bff">asBC_iTOi64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0cd75aec128802694c2674b122204e704">asBC_fTOi64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0e5bd9d9c6b756c2898f2776b0b08e793">asBC_fTOu64</a></li></ul>
- <h2><a class="anchor" name="doc_adv_jit_1_6">
- Increment and decrement</a></h2>
- Increment or decrement the value pointed to by the address in the value register.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0152dde2647cf17bf01f255cab7d7a398">asBC_INCi8</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0eb53c8898d91276563cf360539b2c4ce">asBC_DECi8</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef04669b8c92a8b8d9c6e84d0ed1db14d33">asBC_INCi16</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef09ea8e03a8da22997477fca4f79d55830">asBC_DECi16</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0630408d0f3892bfa8ba01da409ca30e3">asBC_INCi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0d78d2aec3e51a9aaf3fb5f3c12afc420">asBC_DECi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef06216ec910e53970e52e518da4786a37b">asBC_INCi64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef027cdd04643b9331e2aedfb6c1af1c021">asBC_DECi64</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0ef2f50c2ed4d67c3da6630616ad00a7b">asBC_INCf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef00fedf5312b600d2cd8e991139ff237f1">asBC_DECf</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef046b7c1d75685f454688e361e4da99994">asBC_INCd</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef046ccee51c06462cd452c6a97a2854a22">asBC_DECd</a></li></ul>
- <p>
- Increment or decrement the value in the variable.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f9579b13bff9bcc81710fe7dba9c0957">asBC_IncVi</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef00f57e25fb34f2d086f35f60cfe51782e">asBC_DecVi</a></li></ul>
- <h2><a class="anchor" name="doc_adv_jit_1_7">
- Flow control</a></h2>
- Setup the VM to begin execution of the other script function<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef04055fd59f44ce3f31eac60377b0967c8">asBC_CALL</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0edb4e479a4988aac48f1facb6a0048d6">asBC_CALLINTF</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef022f812924fa0048de540e0cca53a2718">asBC_CALLBND</a></li></ul>
- <p>
- Setup the VM to return to the calling function<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0df0df27f972bc4edb9b2213fe6448f68">asBC_RET</a></li></ul>
- <p>
- Make an unconditional jump to a relative position<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef06742a11dd679468b98df9c45aabfb32b">asBC_JMP</a></li></ul>
- <p>
- Make a jump to a relative position depending on the value in the value register<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0497ae321f5a5889c9bee415b7cc38e9c">asBC_JZ</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0262d3c0a50f45e6b6de3f1b77f4b4bf0">asBC_JNZ</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef02357fddab027985d9af0398e304b0ec1">asBC_JS</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0736796cbac759ad4fc43bb09267f36ca">asBC_JNS</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0c2792270f8022801384ccd0ae3b00604">asBC_JP</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0e4f95a73cfe667f1928e7766ea09511e">asBC_JNP</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef031eae477a85a0b1ee618df42deb0519c">asBC_JMPP</a></li></ul>
- <p>
- Call an application registered function<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0c21b3ff5a3ecb6d834bfe2bf7ff36669">asBC_CALLSYS</a></li></ul>
- <p>
- Save the state and suspend execution, then return control to the application<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0175714567c483ff439c1d2c125ca9608">asBC_SUSPEND</a></li></ul>
- <p>
- Give control of execution to the JIT compiled function<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef06705ee9692b45f118cfe0ea24581fae5">asBC_JitEntry</a></li></ul>
- <h2><a class="anchor" name="doc_adv_jit_1_8">
- Stack and data management</a></h2>
- Update the stack pointer.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0a41f70f690348045c1ee90dae68a9c42">asBC_POP</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef06a74cc67208599b6a18f9ab85d03d023">asBC_PUSH</a></li></ul>
- <p>
- Push a constant value on the stack.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef053fa213a7d3fed6add6d37dfe073e1cb">asBC_PshC4</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0c987a5f48ff66860142d01ed51670d91">asBC_PshC8</a></li></ul>
- <p>
- Push the stack frame pointer on the stack.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef01c42ff5ba726e656b989e3408fe9648f">asBC_PSF</a></li></ul>
- <p>
- Swap the top values on the stack.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0934eb600b6d7e1408472565abc5f63b3">asBC_SWAP4</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef068c16f2ab48ee32f175c199a36ae8bf3">asBC_SWAP8</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef017ae2f60d9b127d1d2e65d8d8f36ce98">asBC_SWAP48</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef06a4f95f43427917280f0bfd0320e9804">asBC_SWAP84</a></li></ul>
- <p>
- Pop an address from the stack, read a value from the address and push it on the stack.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0d23eb2717fe22c63f233cc7ef1fd2a00">asBC_RDS4</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef077a4cb5d483841448126985703c6a6a4">asBC_RDS8</a></li></ul>
- <p>
- Add an offset to the top address on the stack.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef00219f343e6e7248e72d209ea22b63f4d">asBC_ADDSi</a></li></ul>
- <p>
- Push the value of a variable on the stack.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0b858dd8ba0b9fed72638c549f40f60ba">asBC_PshV4</a></li></ul>
- <p>
- Initialize the value of a variable with a constant.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f3909e9889d0994c0d0190a147eac3cb">asBC_SetV1</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0709cec30c38c5dc89dfcd92341dafd61">asBC_SetV2</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef095d9223bb76b2abcbc590318007aed93">asBC_SetV4</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0de5e3b21c7d1b9348ac12fc4cd1cbf8a">asBC_SetV8</a></li></ul>
- <p>
- Copy the value of one variable to another.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0c8e1a29718cf8958201d578d56cf74b4">asBC_CpyVtoV4</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f0a7f6b4a1c14352e7cd02e03c1e7595">asBC_CpyVtoV8</a></li></ul>
- <p>
- Validate that an expected pointer is not null.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef00ae4b5ff463c26aad9fbd975a144f2fa">asBC_CHKREF</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0d0c18f6eab27072771563d4464d06a4a">asBC_ChkRefS</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef081142673f63ffd177e20b6296718d3aa">asBC_ChkNullV</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f859e97239e00dd003a8f75fbf963ded">asBC_ChkNullS</a></li></ul>
- <p>
- Push the variable index with the size of a pointer on the stack.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0db056673fe9802b5d8351835d0c4cea9">asBC_VAR</a></li></ul>
- <p>
- Replace a variable index on the stack with an address.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef06ad13f895f055f69384efb4a67941369">asBC_GETREF</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0aef456de01ad209271078728d304b803">asBC_GETOBJ</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef06b9d0ef0c8e981a591c384792acf2c6d">asBC_GETOBJREF</a></li></ul>
- <p>
- Pop or push an address to or from the value register.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0567f07266bd50926c205460b31d579f6">asBC_PopRPtr</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef03ecef93739a85d45002cd073b00da52c">asBC_PshRPtr</a></li></ul>
- <p>
- Copy a value between value register and a variable.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f77782bde1062e849fc6c02c8c4e0106">asBC_CpyVtoR4</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef025f9b87968cb0fea646d003a90bbd0a6">asBC_CpyVtoR8</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef027458705bfaa7f4e5b27f848c0e59c7c">asBC_CpyRtoV4</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0399ae190caa78f468883f9736e8f9d40">asBC_CpyRtoV8</a></li></ul>
- <p>
- Copy a value from a variable to the address held in the value register<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef094dbdd03bb807ceb48c3ced7b08cbaf3">asBC_WRTV1</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0f50492589b9b48fb6cce810ea12b2313">asBC_WRTV2</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0ecc937d822668f3d443c2cf7c2c9a91b">asBC_WRTV4</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0c912670273a5cc5857967d6c4ee9fb71">asBC_WRTV8</a></li></ul>
- <p>
- Copy a value from the address held in the value register to a variable<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef00375f41153eeaa6d250a6ee262ffa0ba">asBC_RDR1</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0a470ed962fa3e1a86296998914cbcc12">asBC_RDR2</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0c66bc5d2959ef22b6c967313aa791b54">asBC_RDR4</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef036dc7a09798a7055d8faece1321e241a">asBC_RDR8</a></li></ul>
- <p>
- Load the address of the variable into the value register<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0506cf72989aae9c3f0613b3fdd788a96">asBC_LDV</a></li></ul>
- <p>
- Clear the upper bytes of the value register<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef01293f6086ce51f270a7d756413cabb9c">asBC_ClrHi</a></li></ul>
- <h2><a class="anchor" name="doc_adv_jit_1_9">
- Global variables</a></h2>
- Push the value of a global variable on the stack<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef071be4bc7beb5407aac980f73cce33bd6">asBC_PshG4</a></li></ul>
- <p>
- Load the address of a global variable into the value register<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef07eecc42f41efaa2a9e52a38b5b2e0761">asBC_LDG</a></li></ul>
- <p>
- Load the address of a global variable into the value register and copy the value of the global variable to local variable<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef02d39346b29e025ea48c3d1f9ad5be43e">asBC_LdGRdR4</a></li></ul>
- <p>
- Copy a value between local variable and global variable.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef04e7398002dfd57870657a8df142259a1">asBC_CpyVtoG4</a></li><li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef04ed62e4b84509466aef25d638026b883">asBC_CpyGtoV4</a></li></ul>
- <p>
- Push the address of the global variable on the stack.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0dc83ae72a402eb4c8d8248ef2ef75d9c">asBC_PGA</a></li></ul>
- <p>
- Initialize the variable of a global variable with a constant.<p>
- <ul>
- <li><a class="el" href="angelscript_8h.html#b3692c4e5d47fc93f8c9646d1783aef0880a2be05a247612df28ea4569a7a99b">asBC_SetG4</a> </li></ul>
- </div>
- <hr size="1"><address style="text-align: right;"><small>Generated on Wed Dec 16 19:34:50 2009 for AngelScript by
- <a href="http://www.doxygen.org/index.html">
- <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
- </body>
- </html>