asm.js使用实例代码
发布时间:2023-08-05 14:30:41 所属栏目:教程 来源:
导读:代码如下:
function mymodule(global, foreign, buffer) {
"use asm";
// -------------------------------------------------------------------------
// SECTION 1: imports
function mymodule(global, foreign, buffer) {
"use asm";
// -------------------------------------------------------------------------
// SECTION 1: imports
代码如下: function mymodule(global, foreign, buffer) { "use asm"; // ------------------------------------------------------------------------- // SECTION 1: imports var H32 = new global.Int32Array(buffer); var HU32 = new global.Uint32Array(buffer); var log = foreign.consoleDotLog; // ------------------------------------------------------------------------- // SECTION 2: functions function f(x, y, z, w) { // SECTION A: parameter type declarations x = x|0; // int parameter y = +y; // double parameter // SECTION B: function body log(x|0); // call into FFI -- must force the sign log(y); // call into FFI -- already know it's a double x = (x+3)|0; // signed addition // SECTION C: unconditional return return ((((x+1)|0)>>>0)/(x|0))>>>0; // compound expression } function g() { g_f = +g_i; // read/write globals return; } function g2() { return; } function h(i, x) { i = i|0; x = x|0; H32[(i&0xffffffff)>>4] = x; // masked by 2^k-1, shifted by byte count ftable_2[(x-2)&2](); // dynamic call of functions in table 2 } // ------------------------------------------------------------------------- // SECTION 3: function tables var ftable_1 = [f]; var ftable_2 = [g, g2]; // all of the same type // ------------------------------------------------------------------------- // SECTION 4: globals var g_i = 0; // int global var g_f = 0.0; // double global // ------------------------------------------------------------------------- // SECTION 5: exports return { f_export: f, goop: g }; (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐