aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <azakai@mozilla.com>2011-02-12 19:36:23 -0800
committerAlon Zakai <azakai@mozilla.com>2011-02-12 19:36:23 -0800
commit96c8d27ce66e07dac8ce9835d2ff00a7d7e8b9ee (patch)
tree67302d1eec660748dc26c7250e7d485435a12e00 /src
parentbace573eb4e44e43227d4134e34158969d914efa (diff)
fix for compiling with spidermonkey
Diffstat (limited to 'src')
-rw-r--r--src/analyzer.js12
-rw-r--r--src/library.js11
-rw-r--r--src/preamble.js2
-rw-r--r--src/runtime.js10
4 files changed, 22 insertions, 13 deletions
diff --git a/src/analyzer.js b/src/analyzer.js
index f79217bd..54001af2 100644
--- a/src/analyzer.js
+++ b/src/analyzer.js
@@ -14,6 +14,7 @@ function cleanFunc(func) {
}
function analyzer(data, givenTypes) {
+ // Substrate
substrate = new Substrate('Analyzer');
// Sorter
@@ -917,10 +918,19 @@ function analyzer(data, givenTypes) {
}
});
+ // Data
substrate.addItem({
items: data
}, 'Sorter');
- return substrate.solve();
+ // Solve it
+ var ret = substrate.solve();
+
+ // Add additional necessary items
+ ret.functionStubs.push({
+ intertype: 'functionStub',
+ ident: '@memset' // we need memset as a fundamental runtime tool, so always include that from the library
+ });
+ return ret;
}
diff --git a/src/library.js b/src/library.js
index f79de6c8..e41ca866 100644
--- a/src/library.js
+++ b/src/library.js
@@ -567,9 +567,14 @@ var Library = {
llvm_memmove_p0i8_p0i8_i32: 'memmove',
llvm_memmove_p0i8_p0i8_i64: 'memmove',
- llvm_memset_i32: 'Runtime.memset',
- llvm_memset_p0i8_i32: 'Runtime.memset',
- llvm_memset_p0i8_i64: 'Runtime.memset',
+ memset: function(ptr, value, num) {
+ for (var i = 0; i < num; i++) {
+ {{{ makeSetValue('ptr', 'i', 'value', 'null') }}}
+ }
+ },
+ llvm_memset_i32: 'memset',
+ llvm_memset_p0i8_i32: 'memset',
+ llvm_memset_p0i8_i64: 'memset',
strlen: function(ptr) {
return String_len(ptr);
diff --git a/src/preamble.js b/src/preamble.js
index fa64d916..c2941902 100644
--- a/src/preamble.js
+++ b/src/preamble.js
@@ -231,7 +231,7 @@ function __initializeRuntime__() {
Module['_malloc'] = _malloc = __Znwj = __Znaj = __Znam = __Znwm = Module['_malloc'] ? Module['_malloc'] : Runtime.staticAlloc;
Module['_calloc'] = _calloc = Module['_calloc'] ? Module['_calloc'] : function(n, s) {
var ret = _malloc(n*s);
- Runtime.memset(ret, 0, n*s);
+ _memset(ret, 0, n*s);
return ret;
};
Module['_free'] = _free = __ZdlPv = __ZdaPv = Module['_free'] ? Module['_free'] : function() { };
diff --git a/src/runtime.js b/src/runtime.js
index 4de337f7..1a617ae5 100644
--- a/src/runtime.js
+++ b/src/runtime.js
@@ -11,7 +11,7 @@ RuntimeGenerator = {
ret += '; assert(' + size + ' > 0, "Trying to allocate 0")';
}
if (init) {
- ret += '; Runtime.memset(' + type + 'TOP, 0, ' + size + ')';
+ ret += '; _memset(' + type + 'TOP, 0, ' + size + ')';
}
ret += '; ' + type + 'TOP += ' + size;
if (QUANTUM_SIZE > 1) {
@@ -39,7 +39,7 @@ RuntimeGenerator = {
ret += '; assert(STACKTOP < STACK_MAX)';
}
if (INIT_STACK) {
- ret += '; Runtime.memset(__stackBase__, 0, ' + initial + ')';
+ ret += '; _memset(__stackBase__, 0, ' + initial + ')';
}
return ret;
},
@@ -77,12 +77,6 @@ Runtime = {
staticAlloc: unInline('staticAlloc', ['size']),
alignMemory: unInline('alignMemory', ['size', 'quantum']),
- memset: function(ptr, value, num) {
- for (var i = 0; i < num; i++) {
- {{{ makeSetValue('ptr', 'i', 'value', 'null') }}}
- }
- },
-
getFunctionIndex: function getFunctionIndex(func, ident) {
var key = FUNCTION_TABLE.length;
FUNCTION_TABLE[key] = func;