summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/asm2wasm.h2
-rw-r--r--src/emscripten-optimizer/optimizer-shared.cpp4
-rw-r--r--src/emscripten-optimizer/optimizer.h2
3 files changed, 4 insertions, 4 deletions
diff --git a/src/asm2wasm.h b/src/asm2wasm.h
index ff378fee6..474a36121 100644
--- a/src/asm2wasm.h
+++ b/src/asm2wasm.h
@@ -252,7 +252,7 @@ private:
return view->second.type;
}
}
- return detectType(ast, data);
+ return detectType(ast, data, false, Math_fround);
}
WasmType detectWasmType(Ref ast, AsmData *data) {
diff --git a/src/emscripten-optimizer/optimizer-shared.cpp b/src/emscripten-optimizer/optimizer-shared.cpp
index e37408b19..c67b8332a 100644
--- a/src/emscripten-optimizer/optimizer-shared.cpp
+++ b/src/emscripten-optimizer/optimizer-shared.cpp
@@ -42,7 +42,7 @@ HeapInfo parseHeap(const char *name) {
return ret;
}
-AsmType detectType(Ref node, AsmData *asmData, bool inVarDef) {
+AsmType detectType(Ref node, AsmData *asmData, bool inVarDef, IString minifiedFround) {
switch (node[0]->getCString()[0]) {
case 'n': {
if (node[0] == NUM) {
@@ -80,7 +80,7 @@ AsmType detectType(Ref node, AsmData *asmData, bool inVarDef) {
if (node[0] == CALL) {
if (node[1][0] == NAME) {
IString name = node[1][1]->getIString();
- if (name == MATH_FROUND) return ASM_FLOAT;
+ if (name == MATH_FROUND || name == minifiedFround) return ASM_FLOAT;
else if (name == SIMD_FLOAT32X4 || name == SIMD_FLOAT32X4_CHECK) return ASM_FLOAT32X4;
else if (name == SIMD_FLOAT64X2 || name == SIMD_FLOAT64X2_CHECK) return ASM_FLOAT64X2;
else if (name == SIMD_INT8X16 || name == SIMD_INT8X16_CHECK) return ASM_INT8X16;
diff --git a/src/emscripten-optimizer/optimizer.h b/src/emscripten-optimizer/optimizer.h
index 4720909a5..629963595 100644
--- a/src/emscripten-optimizer/optimizer.h
+++ b/src/emscripten-optimizer/optimizer.h
@@ -39,7 +39,7 @@ enum AsmType {
struct AsmData;
-AsmType detectType(cashew::Ref node, AsmData *asmData=nullptr, bool inVarDef=false);
+AsmType detectType(cashew::Ref node, AsmData *asmData=nullptr, bool inVarDef=false, cashew::IString minifiedFround=cashew::IString());
struct AsmData {
struct Local {