diff options
Diffstat (limited to 'src/c-writer.cc')
-rw-r--r-- | src/c-writer.cc | 34 |
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: |