##ldar_execute
bits(64) address;
bits(datasize) data;
constant integer dbytes = datasize / 8;

if n == 31 then
    address = SP[];
else
    address = X[n];
end

case memop of
    when MemOp_STORE
        data = X[t];
        Mem[address, dbytes, acctype] = data;
    end

    when MemOp_LOAD
        data = Mem[address, dbytes, acctype];
        X[t] = ZeroExtend(data, regsize);
    end
@@
