1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/bug830943.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,268 @@ 1.4 +// |jit-test| error: Assertion failed: bad label: 2 1.5 +try { 1.6 + this['Module'] = Module; 1.7 +} catch (e) { 1.8 + this['Module'] = Module = {}; 1.9 +} 1.10 +var ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function'; 1.11 +var ENVIRONMENT_IS_WEB = typeof window === 'object'; 1.12 +var ENVIRONMENT_IS_WORKER = typeof importScripts === 'function'; 1.13 +var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER; 1.14 +if (ENVIRONMENT_IS_SHELL) { 1.15 + Module['print'] = print; 1.16 + Module['arguments'] = []; 1.17 +} 1.18 +var Runtime = { 1.19 + alignMemory: function alignMemory(size, quantum) {}, 1.20 +} 1.21 + function SAFE_HEAP_CLEAR(dest) { 1.22 + } 1.23 + function SAFE_HEAP_STORE(dest, value, type, ignore) { 1.24 + setValue(dest, value, type, 1); 1.25 + } 1.26 + function SAFE_HEAP_LOAD(dest, type, unsigned, ignore) { 1.27 + try { } catch(e) {}; 1.28 + var ret = getValue(dest, type, 1); 1.29 + return ret; 1.30 + }; 1.31 + function SAFE_HEAP_LOAD1(dest, type) { 1.32 + return getValue(dest, type, 1); 1.33 + }; 1.34 +function abort(text) { 1.35 + Module.print(text + ':\n' + (new Error).stack); 1.36 + throw "Assertion: " + text; 1.37 +} 1.38 +function assert(condition, text) { 1.39 + if (!condition) { 1.40 + abort('Assertion failed: ' + text); 1.41 + } 1.42 +} 1.43 +function setValue(ptr, value, type, noSafe) { 1.44 + if (type.charAt(type.length - 1) === '*') type = 'i32'; // pointers are 32-bit 1.45 + if (noSafe) { 1.46 + switch (type) { 1.47 + case 'i32': 1.48 + HEAP32[((ptr) >> 2)] = value; 1.49 + } 1.50 + } 1.51 +} 1.52 +function getValue(ptr, type, noSafe) { 1.53 + if (type.charAt(type.length - 1) === '*') type = 'i32'; // pointers are 32-bit 1.54 + if (noSafe) { 1.55 + switch (type) { 1.56 + case 'i32': 1.57 + return HEAP32[((ptr) >> 2)]; 1.58 + } 1.59 + } 1.60 +} 1.61 +var ALLOC_STATIC = 2; // Cannot be freed 1.62 +function allocate(slab, types, allocator, ptr) {} 1.63 +var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216; 1.64 +var buffer = new ArrayBuffer(TOTAL_MEMORY); 1.65 +HEAP32 = new Int32Array(buffer); 1.66 +STACK_ROOT = STACKTOP = Runtime.alignMemory(1); 1.67 +function intArrayFromString(stringy, dontAddNull, length /* optional */ ) {} 1.68 +function __ZN11btRigidBody14getMotionStateEv($this_0_20_val) { 1.69 +} 1.70 +function __ZN16btCollisionWorld23getCollisionObjectArrayEv($this) {} 1.71 +function __ZN20btAlignedObjectArrayIP17btCollisionObjectEixEi($this_0_3_val, $n) {} 1.72 +function _main($argc, $argv) { 1.73 + label = 2; 1.74 + while (1) switch (label) { 1.75 + case 2: 1.76 + var $31 = __Znwj(268); 1.77 + var $32 = $31; 1.78 + var $67 = __ZN17btCollisionObjectnwEj(); 1.79 + var $68 = $67; 1.80 + __ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody($32, $68); 1.81 + var $99 = $31; 1.82 + var $104 = __ZN23btDiscreteDynamicsWorld14stepSimulationEfif($32, .01666666753590107, 10, .01666666753590107); 1.83 + var $106 = __ZNK16btCollisionWorld22getNumCollisionObjectsEv($99); 1.84 + var $108 = __ZN16btCollisionWorld23getCollisionObjectArrayEv($99); 1.85 + var $_idx6 = $108 + 12 | 0; 1.86 + var $j_049_in = $106; 1.87 + var $j_049 = $j_049_in - 1 | 0; 1.88 + var $_idx6_val = SAFE_HEAP_LOAD($_idx6, "%class.btCollisionObject**", 0, 0); 1.89 + var $109 = __ZN20btAlignedObjectArrayIP17btCollisionObjectEixEi($_idx6_val, $j_049); 1.90 + var $110 = SAFE_HEAP_LOAD($109, "%class.btCollisionObject*", 0, 0); 1.91 + var $111 = __ZN11btRigidBody6upcastEP17btCollisionObject($110); 1.92 + var $_idx9 = $111 + 472 | 0; 1.93 + var $_idx9_val = SAFE_HEAP_LOAD($_idx9, "%class.btMotionState*", 0, 0); 1.94 + var $114 = __ZN11btRigidBody14getMotionStateEv($_idx9_val); 1.95 + var $138 = $i_057 + 1 | 0; 1.96 + var $139 = ($138 | 0) < 135; 1.97 + if ($139) { 1.98 + var $i_057 = $138; 1.99 + break; 1.100 + } 1.101 + assert(0, "bad label: " + label); 1.102 + } 1.103 +} 1.104 +Module["_main"] = _main; 1.105 +function __ZN17btCollisionObjectnwEj() { 1.106 + return __Z22btAlignedAllocInternalji(608); 1.107 +} 1.108 +function __ZNK16btCollisionWorld22getNumCollisionObjectsEv($this) {} 1.109 +function __ZN11btRigidBody6upcastEP17btCollisionObject($colObj) { 1.110 + label = 2; 1.111 + while (1) switch (label) { 1.112 + case 2: 1.113 + var $_0; 1.114 + return $_0; 1.115 + } 1.116 +} 1.117 +function __ZNK9btVector33dotERKS_($this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val, $v_0_0_0_val, $v_0_0_1_val, $v_0_0_2_val) { 1.118 +} 1.119 +function __ZN20btAlignedObjectArrayIP11btRigidBodyEixEi($this_0_3_val, $n) {} 1.120 +function __ZNK17btCollisionObject14getHitFractionEv($this_0_21_val) {} 1.121 +function __ZN17btCollisionObject30getInterpolationWorldTransformEv($this) {} 1.122 +function __ZNK17btCollisionObject30getInterpolationLinearVelocityEv($this) {} 1.123 +function __ZNK17btCollisionObject31getInterpolationAngularVelocityEv($this) {} 1.124 +function __ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody($this, $body) { 1.125 + assertEq($body, 16); 1.126 + var __stackBase__ = STACKTOP; 1.127 + while (1) switch (label) { 1.128 + case 2: 1.129 + var $interpolatedTransform = __stackBase__; 1.130 + var $4 = $body | 0; 1.131 + var $7 = __ZN17btCollisionObject30getInterpolationWorldTransformEv($4); 1.132 + var $8 = __ZNK17btCollisionObject30getInterpolationLinearVelocityEv($4); 1.133 + var $9 = __ZNK17btCollisionObject31getInterpolationAngularVelocityEv($4); 1.134 + var $10 = $this + 236 | 0; 1.135 + var $11 = SAFE_HEAP_LOAD($10, "float", 0, 0); 1.136 + var $_idx2 = $body + 240 | 0; 1.137 + var $_idx2_val = SAFE_HEAP_LOAD($_idx2, "float", 0, 0); 1.138 + var $12 = __ZNK17btCollisionObject14getHitFractionEv($_idx2_val); 1.139 + var $13 = $11 * $12; 1.140 + var $_idx3 = $8 | 0; 1.141 + var $_idx3_val = SAFE_HEAP_LOAD($_idx3, "float", 0, 0); 1.142 + var $_idx4 = $8 + 4 | 0; 1.143 + var $_idx4_val = SAFE_HEAP_LOAD($_idx4, "float", 0, 0); 1.144 + var $_idx5 = $8 + 8 | 0; 1.145 + var $_idx5_val = SAFE_HEAP_LOAD($_idx5, "float", 0, 0); 1.146 + __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_($7, $_idx3_val, $_idx4_val, $_idx5_val, $9, $13, $interpolatedTransform); 1.147 + return; 1.148 + } 1.149 +} 1.150 +function __ZN15btTransformUtil18integrateTransformERK11btTransformRK9btVector3S5_fRS0_($curTrans, $linvel_0_0_0_val, $linvel_0_0_1_val, $linvel_0_0_2_val, $angvel, $timeStep, $predictedTransform) { 1.151 + var __stackBase__ = STACKTOP; 1.152 + STACKTOP = STACKTOP + 132 | 0; 1.153 + while (1) { 1.154 + switch (label) { 1.155 + case 2: 1.156 + var $axis = __stackBase__ + 32; 1.157 + var $3 = __stackBase__ + 48; 1.158 + var $angvel_idx10 = $angvel | 0; 1.159 + var $angvel_idx10_val = SAFE_HEAP_LOAD($angvel_idx10, "float", 0, 0); 1.160 + var $angvel_idx11 = $angvel + 4 | 0; 1.161 + var $angvel_idx11_val = SAFE_HEAP_LOAD($angvel_idx11, "float", 0, 0); 1.162 + var $angvel_idx12 = $angvel + 8 | 0; 1.163 + var $angvel_idx12_val = SAFE_HEAP_LOAD($angvel_idx12, "float", 0, 0); 1.164 + var $7 = __ZNK9btVector36lengthEv($angvel_idx10_val, $angvel_idx11_val, $angvel_idx12_val); 1.165 + var $8 = $7 * $timeStep; 1.166 + if ($8 > .7853981852531433) {} else { 1.167 + var $fAngle_0 = $7; 1.168 + label = 5; 1.169 + } 1.170 + break; 1.171 + case 5: 1.172 + var $22 = $axis; 1.173 + var $23 = $3; 1.174 + SAFE_HEAP_STORE($22 + 12, SAFE_HEAP_LOAD1($23 + 12, "i32"), "i32", 0); 1.175 + assertEq(SAFE_HEAP_LOAD1(0, "%class.btRigidBody*"), 16); 1.176 + label = 7; 1.177 + break; 1.178 + case 6: 1.179 + SAFE_HEAP_STORE($29 + 12, SAFE_HEAP_LOAD1($30 + 12, "i32"), "i32", 0); 1.180 + case 7: 1.181 + for (var i = __stackBase__; i < STACKTOP; i++) SAFE_HEAP_CLEAR(i); 1.182 + return; 1.183 + } 1.184 + } 1.185 +} 1.186 +function __ZN23btDiscreteDynamicsWorld12addRigidBodyEP11btRigidBody($this, $body) { 1.187 + SAFE_HEAP_STORE(STACKTOP, $body, "%class.btRigidBody*", 0); 1.188 + assertEq(SAFE_HEAP_LOAD(0, "%class.btRigidBody*", 0, 0), 16); 1.189 +} 1.190 +function __ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv($this) { 1.191 + var $20 = SAFE_HEAP_LOAD(0, "%class.btRigidBody*", 0, 0); 1.192 + assertEq($20, 16); 1.193 + __ZN23btDiscreteDynamicsWorld28synchronizeSingleMotionStateEP11btRigidBody($this, $20); 1.194 +} 1.195 +function __ZN23btDiscreteDynamicsWorld14stepSimulationEfif($this, $timeStep, $maxSubSteps, $fixedTimeStep) { 1.196 + label = 2; 1.197 + while (1) switch (label) { 1.198 + case 2: 1.199 + var $numSimulationSubSteps_0; 1.200 + __ZN23btDiscreteDynamicsWorld23synchronizeMotionStatesEv($this); 1.201 + return $numSimulationSubSteps_0; 1.202 + } 1.203 +} 1.204 +function __ZNK9btVector37length2Ev($this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val) { 1.205 + return __ZNK9btVector33dotERKS_($this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val, $this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val); 1.206 +} 1.207 +function __Z6btSqrtf($y) { 1.208 + return Math.sqrt($y); 1.209 +} 1.210 +function __ZNK9btVector36lengthEv($this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val) { 1.211 + return __Z6btSqrtf(__ZNK9btVector37length2Ev($this_0_0_0_val, $this_0_0_1_val, $this_0_0_2_val)); 1.212 +} 1.213 +function __ZL21btAlignedAllocDefaultji($size, $alignment) { 1.214 + while (1) switch (label) { 1.215 + case 2: 1.216 + var $1 = $size + 4 | 0; 1.217 + var $2 = $alignment - 1 | 0; 1.218 + var $3 = $1 + $2 | 0; 1.219 + var $4 = __ZL14btAllocDefaultj($3); 1.220 + var $7 = $4 + 4 | 0; 1.221 + var $8 = $7; 1.222 + var $9 = $alignment - $8 | 0; 1.223 + var $10 = $9 & $2; 1.224 + var $_sum = $10 + 4 | 0; 1.225 + var $11 = $4 + $_sum | 0; 1.226 + var $ret_0 = $11; 1.227 + return $ret_0; 1.228 + } 1.229 +} 1.230 +function __ZL14btAllocDefaultj($size) { 1.231 + return _malloc($size); 1.232 +} 1.233 +function __Z22btAlignedAllocInternalji($size) { 1.234 + return __ZL21btAlignedAllocDefaultji($size, 16); 1.235 +} 1.236 +function _malloc($bytes) { 1.237 + while (1) switch (label) { 1.238 + case 2: 1.239 + var $189 = SAFE_HEAP_LOAD(5244020, "%struct.malloc_chunk*", 0, 0); 1.240 + var $198 = $189 + 8 | 0; 1.241 + var $199 = $198; 1.242 + var $mem_0 = $199; 1.243 + return $mem_0; 1.244 + } 1.245 +} 1.246 +function __Znwj($size) { 1.247 + while (1) switch (label) { 1.248 + case 2: 1.249 + var $1 = ($size | 0) == 0; 1.250 + var $_size = $1 ? 1 : $size; 1.251 + var $3 = _malloc($_size); 1.252 + return $3; 1.253 + } 1.254 +} 1.255 +Module.callMain = function callMain(args) { 1.256 + var argc = args.length + 1; 1.257 + var argv = [allocate(intArrayFromString("/bin/this.program"), 'i8', ALLOC_STATIC)]; 1.258 + return Module['_main'](argc, argv, 0); 1.259 +} 1.260 +function run(args) { 1.261 + args = args || Module['arguments']; 1.262 + function doRun() { 1.263 + if (Module['_main']) { 1.264 + ret = Module.callMain(args); 1.265 + } 1.266 + } 1.267 + if (Module['setStatus']) {} else { 1.268 + return doRun(); 1.269 + } 1.270 +} 1.271 +run();