Home | History | Annotate | Download | only in asm
      1 // Copyright 2014 the V8 project authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 function Module(stdlib, foreign, heap) {
      6   "use asm";
      7   var MEM32 = new stdlib.Int32Array(heap);
      8   function loadm4194304() {
      9     return MEM32[-4194304];
     10   }
     11   function loadm0() {
     12     return MEM32[-0];
     13   }
     14   function load0() {
     15     return MEM32[0];
     16   }
     17   function load4() {
     18     return MEM32[4];
     19   }
     20   function storem4194304(v) {
     21     MEM32[-4194304] = v;
     22   }
     23   function storem0(v) {
     24     MEM32[-0] = v;
     25   }
     26   function store0(v) {
     27     MEM32[0] = v;
     28   }
     29   function store4(v) {
     30     MEM32[4] = v;
     31   }
     32   return { loadm4194304: loadm4194304, storem4194304: storem4194304,
     33            loadm0: loadm0, storem0: storem0, load0: load0, store0: store0,
     34            load4: load4, store4: store4 };
     35 }
     36 
     37 var m = Module(this, {}, new ArrayBuffer(4));
     38 
     39 assertEquals(undefined, m.loadm4194304());
     40 assertEquals(0, m.loadm0());
     41 assertEquals(0, m.load0());
     42 assertEquals(undefined, m.load4());
     43 m.storem4194304(123456789);
     44 assertEquals(undefined, m.loadm4194304());
     45 assertEquals(0, m.loadm0());
     46 assertEquals(0, m.load0());
     47 assertEquals(undefined, m.load4());
     48 m.storem0(987654321);
     49 assertEquals(undefined, m.loadm4194304());
     50 assertEquals(987654321, m.loadm0());
     51 assertEquals(987654321, m.load0());
     52 assertEquals(undefined, m.load4());
     53 m.store0(0x12345678);
     54 assertEquals(undefined, m.loadm4194304());
     55 assertEquals(0x12345678, m.loadm0());
     56 assertEquals(0x12345678, m.load0());
     57 assertEquals(undefined, m.load4());
     58 m.store4(43);
     59 assertEquals(undefined, m.loadm4194304());
     60 assertEquals(0x12345678, m.loadm0());
     61 assertEquals(0x12345678, m.load0());
     62 assertEquals(undefined, m.load4());
     63