From acea5cb6e0eb9379434e1db266f97415f3bc0616 Mon Sep 17 00:00:00 2001 From: Dennis Ranke Date: Sun, 2 Jan 2022 16:06:01 +0100 Subject: [PATCH] enable nontrapping fptoint feature in c and zig example --- examples/c/build.sh | 2 +- examples/c/cart.c | 6 +----- examples/zig/build.zig | 6 +++++- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/c/build.sh b/examples/c/build.sh index c23d192..93d1d22 100755 --- a/examples/c/build.sh +++ b/examples/c/build.sh @@ -1,6 +1,6 @@ #!/bin/bash -clang -O2 -Wno-incompatible-library-redeclaration --no-standard-libraries -ffast-math -Wl,--no-entry -Wl,--export-all -Wl,--import-memory -Wl,--initial-memory=262144 -Wl,-zstack-size=90000 -o cart.wasm cart.c --target=wasm32 && \ +clang -O2 -Wno-incompatible-library-redeclaration --no-standard-libraries -ffast-math -Xclang -target-feature -Xclang +nontrapping-fptoint -Wl,--no-entry -Wl,--export-all -Wl,--import-memory -Wl,--initial-memory=262144 -Wl,-zstack-size=90000 -o cart.wasm cart.c --target=wasm32 && \ uw8 filter-exports cart.wasm cart.wasm && \ wasm-opt -Oz --fast-math --strip-producers -o cart.wasm cart.wasm && \ uw8 pack -l 9 cart.wasm cart.uw8 \ No newline at end of file diff --git a/examples/c/cart.c b/examples/c/cart.c index 1f065fe..3b652ae 100644 --- a/examples/c/cart.c +++ b/examples/c/cart.c @@ -3,10 +3,6 @@ IMPORT("env", "atan2") extern float atan2(float, float); IMPORT("env", "time") extern float time(); -int ftoi(float v) { - return __builtin_wasm_trunc_s_i32_f32(v); -} - float sqrt(float v) { return __builtin_sqrt(v); } @@ -22,7 +18,7 @@ void upd() { float y = (float)(i / 320 - 120); float d = 40000.0f / sqrt(x * x + y * y + 1.0f); float u = atan2(x, y) * 512.0f / 3.141f; - unsigned char c = (unsigned char)(ftoi(d + t * 2.0f) ^ ftoi(u + t)) >> 4; + unsigned char c = (unsigned char)((int)(d + t * 2.0f) ^ (int)(u + t)) >> 4; FRAMEBUFFER[i] = c; i += 1; diff --git a/examples/zig/build.zig b/examples/zig/build.zig index 8deb34c..5852a88 100644 --- a/examples/zig/build.zig +++ b/examples/zig/build.zig @@ -5,7 +5,11 @@ pub fn build(b: *std.build.Builder) void { const lib = b.addSharedLibrary("cart", "main.zig", .unversioned); lib.setBuildMode(mode); - lib.setTarget(.{ .cpu_arch = .wasm32, .os_tag = .freestanding }); + lib.setTarget(.{ + .cpu_arch = .wasm32, + .os_tag = .freestanding, + .cpu_features_add = std.Target.wasm.featureSet(&.{ .nontrapping_fptoint }) + }); lib.import_memory = true; lib.initial_memory = 262144; lib.max_memory = 262144;