summaryrefslogtreecommitdiff
path: root/src/c-writer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/c-writer.cc')
-rw-r--r--src/c-writer.cc34
1 files changed, 20 insertions, 14 deletions
diff --git a/src/c-writer.cc b/src/c-writer.cc
index e11d5a49..92d55ac7 100644
--- a/src/c-writer.cc
+++ b/src/c-writer.cc
@@ -2067,10 +2067,13 @@ void CWriter::Write(const ConvertExpr& expr) {
break;
case Opcode::F32ConvertI32U:
- case Opcode::F32DemoteF64:
WriteSimpleUnaryExpr(expr.opcode, "(f32)");
break;
+ case Opcode::F32DemoteF64:
+ WriteSimpleUnaryExpr(expr.opcode, "(f32)wasm_quiet");
+ break;
+
case Opcode::F32ConvertI64U:
// TODO(binji): This needs to be handled specially (see
// wabt_convert_uint64_to_float).
@@ -2086,10 +2089,13 @@ void CWriter::Write(const ConvertExpr& expr) {
break;
case Opcode::F64ConvertI32U:
- case Opcode::F64PromoteF32:
WriteSimpleUnaryExpr(expr.opcode, "(f64)");
break;
+ case Opcode::F64PromoteF32:
+ WriteSimpleUnaryExpr(expr.opcode, "(f64)wasm_quietf");
+ break;
+
case Opcode::F64ConvertI64U:
// TODO(binji): This needs to be handled specially (see
// wabt_convert_uint64_to_double).
@@ -2209,51 +2215,51 @@ void CWriter::Write(const UnaryExpr& expr) {
break;
case Opcode::F32Abs:
- WriteSimpleUnaryExpr(expr.opcode, "wasm_rt_fabsf");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_fabsf");
break;
case Opcode::F64Abs:
- WriteSimpleUnaryExpr(expr.opcode, "wasm_rt_fabs");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_fabs");
break;
case Opcode::F32Sqrt:
- WriteSimpleUnaryExpr(expr.opcode, "sqrtf");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_sqrtf");
break;
case Opcode::F64Sqrt:
- WriteSimpleUnaryExpr(expr.opcode, "sqrt");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_sqrt");
break;
case Opcode::F32Ceil:
- WriteSimpleUnaryExpr(expr.opcode, "ceilf");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_ceilf");
break;
case Opcode::F64Ceil:
- WriteSimpleUnaryExpr(expr.opcode, "ceil");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_ceil");
break;
case Opcode::F32Floor:
- WriteSimpleUnaryExpr(expr.opcode, "floorf");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_floorf");
break;
case Opcode::F64Floor:
- WriteSimpleUnaryExpr(expr.opcode, "floor");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_floor");
break;
case Opcode::F32Trunc:
- WriteSimpleUnaryExpr(expr.opcode, "wasm_rt_truncf");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_truncf");
break;
case Opcode::F64Trunc:
- WriteSimpleUnaryExpr(expr.opcode, "wasm_rt_trunc");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_trunc");
break;
case Opcode::F32Nearest:
- WriteSimpleUnaryExpr(expr.opcode, "wasm_rt_nearbyintf");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_nearbyintf");
break;
case Opcode::F64Nearest:
- WriteSimpleUnaryExpr(expr.opcode, "wasm_rt_nearbyint");
+ WriteSimpleUnaryExpr(expr.opcode, "wasm_nearbyint");
break;
case Opcode::I32Extend8S: