diff options
-rw-r--r-- | Assembly.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Assembly.cpp b/Assembly.cpp index 1d9cb4bc..c0dc6fd5 100644 --- a/Assembly.cpp +++ b/Assembly.cpp @@ -213,7 +213,10 @@ void Assembly::optimise() std::vector<pair<AssemblyItems, function<AssemblyItems(AssemblyItemsConstRef)>>> rules = { { { Push, Instruction::POP }, [](AssemblyItemsConstRef) -> AssemblyItems { return {}; } }, + { { PushTag, Instruction::POP }, [](AssemblyItemsConstRef) -> AssemblyItems { return {}; } }, + { { PushString, Instruction::POP }, [](AssemblyItemsConstRef) -> AssemblyItems { return {}; } }, { { Push, PushTag, Instruction::JUMPI }, [](AssemblyItemsConstRef m) -> AssemblyItems { if (m[0].data()) return { m[1], Instruction::JUMP }; else return {}; } }, + { { Instruction::NOT, Instruction::NOT }, [](AssemblyItemsConstRef) -> AssemblyItems { return {}; } }, }; for (auto const& i: c_simple) |