@@ -23,21 +23,31 @@ namespace wasm {
2323
2424namespace LiteralUtils {
2525
26- inline Expression* makeZero (WasmType type, Module& wasm) {
27- Literal value;
26+ inline Literal makeLiteralFromInt32 (int32_t x, WasmType type) {
2827 switch (type) {
29- case i32 : value = Literal (int32_t (0 )); break ;
30- case i64 : value = Literal (int64_t (0 )); break ;
31- case f32 : value = Literal (float (0 )); break ;
32- case f64 : value = Literal (double (0 )); break ;
28+ case i32 : return Literal (int32_t (x )); break ;
29+ case i64 : return Literal (int64_t (x )); break ;
30+ case f32 : return Literal (float (x )); break ;
31+ case f64 : return Literal (double (x )); break ;
3332 default : WASM_UNREACHABLE ();
3433 }
34+ }
35+
36+ inline Literal makeLiteralZero (WasmType type) {
37+ return makeLiteralFromInt32 (0 , type);
38+ }
39+
40+ inline Expression* makeFromInt32 (int32_t x, WasmType type, Module& wasm) {
3541 auto * ret = wasm.allocator .alloc <Const>();
36- ret->value = value ;
37- ret->type = value. type ;
42+ ret->value = makeLiteralFromInt32 (x, type) ;
43+ ret->type = type;
3844 return ret;
3945}
4046
47+ inline Expression* makeZero (WasmType type, Module& wasm) {
48+ return makeFromInt32 (0 , type, wasm);
49+ }
50+
4151} // namespace LiteralUtils
4252
4353} // namespace wasm
0 commit comments