diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/library.js | 7 | ||||
-rw-r--r-- | src/preamble.js | 9 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/library.js b/src/library.js index f894141e..0fb73611 100644 --- a/src/library.js +++ b/src/library.js @@ -315,6 +315,13 @@ var Library = { return 0; }, + strstr: function(ptr1, ptr2) { + var str1 = Pointer_stringify(ptr1); + var str2 = Pointer_stringify(ptr2); + var ret = str1.search(str2); + return ret >= 0 ? ptr1 + ret : 0; + }, + strchr: function(ptr, chr) { ptr--; do { diff --git a/src/preamble.js b/src/preamble.js index 844c0bba..ef29bf82 100644 --- a/src/preamble.js +++ b/src/preamble.js @@ -367,6 +367,15 @@ function _llvm_memcpy_i32(dest, src, num, idunno) { } _memcpy = _llvm_memcpy_i64 = _llvm_memcpy_p0i8_p0i8_i32 = _llvm_memcpy_p0i8_p0i8_i64 = _llvm_memcpy_i32; +function _llvm_memmove_i32(dest, src, num, idunno) { + // not optimized! + var tmp = _malloc(num); + _memcpy(tmp, src, num); + _memcpy(dest, tmp, num); + _free(tmp); +} +_memmove = _llvm_memmove_i64 = _llvm_memmove_p0i8_p0i8_i32 = _llvm_memmove_p0i8_p0i8_i64 = _llvm_memmove_i32; + function llvm_memset_i32(ptr, value, num) { for (var i = 0; i < num; i++) { #if USE_TYPED_ARRAYS |