(dest, src, num)
| 397750 | return (((x&0xff)<<24) | (((x>>8)&0xff)<<16) | (((x>>16)&0xff)<<8) | (x>>>24))|0; |
| 397751 | } |
| 397752 | function _memcpy(dest, src, num) { |
| 397753 | dest = dest|0; src = src|0; num = num|0; |
| 397754 | var ret = 0; |
| 397755 | var aligned_dest_end = 0; |
| 397756 | var block_aligned_dest_end = 0; |
| 397757 | var dest_end = 0; |
| 397758 | // Test against a benchmarked cutoff limit for when HEAPU8.set() becomes faster to use. |
| 397759 | if ((num|0) >= |
| 397760 | 8192 |
| 397761 | ) { |
| 397762 | return _emscripten_memcpy_big(dest|0, src|0, num|0)|0; |
| 397763 | } |
| 397764 | |
| 397765 | ret = dest|0; |
| 397766 | dest_end = (dest + num)|0; |
| 397767 | if ((dest&3) == (src&3)) { |
| 397768 | // The initial unaligned < 4-byte front. |
| 397769 | while (dest & 3) { |
| 397770 | if ((num|0) == 0) return ret|0; |
| 397771 | HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); |
| 397772 | dest = (dest+1)|0; |
| 397773 | src = (src+1)|0; |
| 397774 | num = (num-1)|0; |
| 397775 | } |
| 397776 | aligned_dest_end = (dest_end & -4)|0; |
| 397777 | block_aligned_dest_end = (aligned_dest_end - 64)|0; |
| 397778 | while ((dest|0) <= (block_aligned_dest_end|0) ) { |
| 397779 | HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); |
| 397780 | HEAP32[(((dest)+(4))>>2)]=((HEAP32[(((src)+(4))>>2)])|0); |
| 397781 | HEAP32[(((dest)+(8))>>2)]=((HEAP32[(((src)+(8))>>2)])|0); |
| 397782 | HEAP32[(((dest)+(12))>>2)]=((HEAP32[(((src)+(12))>>2)])|0); |
| 397783 | HEAP32[(((dest)+(16))>>2)]=((HEAP32[(((src)+(16))>>2)])|0); |
| 397784 | HEAP32[(((dest)+(20))>>2)]=((HEAP32[(((src)+(20))>>2)])|0); |
| 397785 | HEAP32[(((dest)+(24))>>2)]=((HEAP32[(((src)+(24))>>2)])|0); |
| 397786 | HEAP32[(((dest)+(28))>>2)]=((HEAP32[(((src)+(28))>>2)])|0); |
| 397787 | HEAP32[(((dest)+(32))>>2)]=((HEAP32[(((src)+(32))>>2)])|0); |
| 397788 | HEAP32[(((dest)+(36))>>2)]=((HEAP32[(((src)+(36))>>2)])|0); |
| 397789 | HEAP32[(((dest)+(40))>>2)]=((HEAP32[(((src)+(40))>>2)])|0); |
| 397790 | HEAP32[(((dest)+(44))>>2)]=((HEAP32[(((src)+(44))>>2)])|0); |
| 397791 | HEAP32[(((dest)+(48))>>2)]=((HEAP32[(((src)+(48))>>2)])|0); |
| 397792 | HEAP32[(((dest)+(52))>>2)]=((HEAP32[(((src)+(52))>>2)])|0); |
| 397793 | HEAP32[(((dest)+(56))>>2)]=((HEAP32[(((src)+(56))>>2)])|0); |
| 397794 | HEAP32[(((dest)+(60))>>2)]=((HEAP32[(((src)+(60))>>2)])|0); |
| 397795 | dest = (dest+64)|0; |
| 397796 | src = (src+64)|0; |
| 397797 | } |
| 397798 | while ((dest|0) < (aligned_dest_end|0) ) { |
| 397799 | HEAP32[((dest)>>2)]=((HEAP32[((src)>>2)])|0); |
| 397800 | dest = (dest+4)|0; |
| 397801 | src = (src+4)|0; |
| 397802 | } |
| 397803 | } else { |
| 397804 | // In the unaligned copy case, unroll a bit as well. |
| 397805 | aligned_dest_end = (dest_end - 4)|0; |
| 397806 | while ((dest|0) < (aligned_dest_end|0) ) { |
| 397807 | HEAP8[((dest)>>0)]=((HEAP8[((src)>>0)])|0); |
| 397808 | HEAP8[(((dest)+(1))>>0)]=((HEAP8[(((src)+(1))>>0)])|0); |
| 397809 | HEAP8[(((dest)+(2))>>0)]=((HEAP8[(((src)+(2))>>0)])|0); |
no test coverage detected
searching dependent graphs…