Luau runtime fixes

This commit is contained in:
Firebolt 2021-11-17 13:50:05 -05:00
parent 9aa0304384
commit 131a7a29bf
No known key found for this signature in database
GPG Key ID: 4219518A61A50458

View File

@ -118,7 +118,7 @@ do
local offset = addr % 4 local offset = addr % 4
local value = memory.data[(addr - offset) / 4] local value = memory.data[(addr - offset) / 4]
return bit.band(bit.rshift(value, offset * 8), 0xFF) return bit32.band(bit32.rshift(value, offset * 8), 0xFF)
end end
local function store_byte(memory, addr, value) local function store_byte(memory, addr, value)
@ -193,26 +193,24 @@ do
function memory.new(min, max) return {min = min, max = max, data = {}} end function memory.new(min, max) return {min = min, max = max, data = {}} end
function memory.init(memory, offset, data) function memory.init(memory, offset, data)
local store_i8 = module.memory.store.i32_n8 local store_i8 = module.store.i32_n8
local store_i32 = module.memory.store.i32 local store_i32 = module.store.i32
local len = #data local len = #data
local rem = len % 4 local rem = len % 4
if len >= 4 then if len >= 4 then
for i = 1, len, 4 do for i = 1, len - rem, 4 do
local v = string.unpack('<I4', data, i) local v = string.unpack('<I4', data, i)
store_i32(memory, offset + i - 1, v) store_i32(memory, offset + i - 1, v)
end end
end end
if rem ~= 0 then for i = len - rem + 1, len do
for i = len - rem + 1, len do local v = string.byte(data, i)
local v = string.byte(data, i)
store_i8(memory, offset + i - 1, v) store_i8(memory, offset + i - 1, v)
end
end end
end end