Squashed 'externals/oaknut/' changes from d0488d932..9d091109d

9d091109d oaknut: 2.0.1
7f3e9f600 oaknut: Support single argument constructor for CodeGenerator again

git-subtree-dir: externals/oaknut
git-subtree-split: 9d091109deb445bc6e9289c6195a282b7c993d49
This commit is contained in:
Merry
2024-01-28 17:02:37 +00:00
parent 99c0a73f91
commit a37f3673f8
7 changed files with 58 additions and 43 deletions

View File

@@ -18,13 +18,14 @@ using namespace oaknut::util;
TEST_CASE("Basic Test (VectorCodeGenerator)")
{
CodeBlock mem{4096};
std::vector<std::uint32_t> vec;
VectorCodeGenerator code{vec, mem.ptr()};
VectorCodeGenerator code{vec};
code.MOV(W0, 42);
code.RET();
CodeBlock mem{4096};
mem.unprotect();
std::memcpy(mem.ptr(), vec.data(), vec.size() * sizeof(std::uint32_t));
mem.protect();
@@ -36,9 +37,8 @@ TEST_CASE("Basic Test (VectorCodeGenerator)")
TEST_CASE("Fibonacci (VectorCodeGenerator)")
{
CodeBlock mem{4096};
std::vector<std::uint32_t> vec;
VectorCodeGenerator code{vec, mem.ptr()};
VectorCodeGenerator code{vec};
Label start, end, zero, recurse;
@@ -69,6 +69,8 @@ TEST_CASE("Fibonacci (VectorCodeGenerator)")
code.LDP(X29, X30, SP, POST_INDEXED, 32);
code.RET();
CodeBlock mem{4096};
mem.unprotect();
std::memcpy(mem.ptr(), vec.data(), vec.size() * sizeof(std::uint32_t));
mem.protect();