From 8b16df34f8c5f69fe5702135077ad1ee16385012 Mon Sep 17 00:00:00 2001 From: Rerumu Date: Mon, 4 Jul 2022 04:21:34 -0400 Subject: [PATCH] Merge #10 commit f4b3013c9327aa00ee703848fe8e528fdbedb20a Author: Hexcede <8394472+Hexcede@users.noreply.github.com> Date: Mon Jun 20 06:45:46 2022 -0400 Add newlines between i64_nXX variants commit 4e86ad1ca1b09573d83530237cc4586923daa7e3 Author: Hexcede <8394472+Hexcede@users.noreply.github.com> Date: Mon Jun 20 06:36:52 2022 -0400 Rename unused numeric components commit bc658b8bca03f65b4b3602914f4d841bbb8cb140 Author: Hexcede <8394472+Hexcede@users.noreply.github.com> Date: Sun Jun 19 13:19:58 2022 -0400 Add i64_nX variants commit 4a7ab80e92f18b733854cb38e42455f73c869d44 Author: Hexcede <8394472+Hexcede@users.noreply.github.com> Date: Sun Jun 19 13:19:35 2022 -0400 Add f32 & f64 storage --- codegen-luau/runtime/runtime.lua | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/codegen-luau/runtime/runtime.lua b/codegen-luau/runtime/runtime.lua index 8ee8103..a6c1034 100644 --- a/codegen-luau/runtime/runtime.lua +++ b/codegen-luau/runtime/runtime.lua @@ -440,6 +440,8 @@ do local reinterpret_f32_i32 = module.reinterpret.f32_i32 local reinterpret_f64_i64 = module.reinterpret.f64_i64 + local reinterpret_i32_f32 = module.reinterpret.i32_f32 + local reinterpret_i64_f64 = module.reinterpret.i64_f64 local function load_byte(data, addr) local value = data[math_floor(addr / 4)] or 0 @@ -554,6 +556,26 @@ do end local store_i32 = store.i32 + local store_i32_n8 = store.i32_n8 + local store_i32_n16 = store.i32_n16 + + function store.i64_n8(memory, addr, value) + local data_1, _ = num_into_u32(value) + + store_i32_n8(memory, addr, data_1) + end + + function store.i64_n16(memory, addr, value) + local data_1, _ = num_into_u32(value) + + store_i32_n16(memory, addr, data_1) + end + + function store.i64_n32(memory, addr, value) + local data_1, _ = num_into_u32(value) + + store_i32(memory, addr, data_1) + end function store.i64(memory, addr, value) local data_1, data_2 = num_into_u32(value) @@ -562,6 +584,16 @@ do store_i32(memory, addr + 4, data_2) end + local store_i64 = store.i64 + + function store.f32(memory, addr, value) + store_i32(memory, addr, reinterpret_i32_f32(value)) + end + + function store.f64(memory, addr, value) + store_i64(memory, addr, reinterpret_i64_f64(value)) + end + function store.string(memory, offset, data, len) len = len or #data