aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/library.js7
-rw-r--r--src/preamble.js9
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