]> code.bitgloo.com Git - clyne/sforth.git/commitdiff
fix at-words for optimization main
authorClyne Sullivan <clyne@bitgloo.com>
Mon, 30 Dec 2024 21:41:32 +0000 (16:41 -0500)
committerClyne Sullivan <clyne@bitgloo.com>
Mon, 30 Dec 2024 21:41:32 +0000 (16:41 -0500)
sforth/forth.hpp

index 857e27f5805ee3271b7d992ba796259d90e16dfd..78ced3da43fc3868dd5f33021e745ff29a34fb43 100644 (file)
@@ -292,9 +292,9 @@ constexpr auto initialize()
             } else {
                 lit_impl(x);
             } }, word_base::immediate
-        , S{"@"    }, [](auto) { fthp->push(*std::bit_cast<cell *>(fthp->pop())); }, 0
+        , S{"@"    }, [](auto) { fthp->top() = *std::bit_cast<cell *>(fthp->top()); }, 0
         , S{"!"    }, [](auto) { auto p = fthp->pop(); *std::bit_cast<cell *>(p) = fthp->pop(); }, 0
-        , S{"C@"   }, [](auto) { fthp->push(*std::bit_cast<char *>(fthp->pop())); }, 0
+        , S{"C@"   }, [](auto) { fthp->top() = *std::bit_cast<char *>(fthp->top()); }, 0
         , S{"C!"   }, [](auto) { auto p = fthp->pop(); *std::bit_cast<char *>(p) = fthp->pop(); }, 0
         , S{"="    }, [](auto) { auto v = fthp->pop(); fthp->top() = -(fthp->top() == v); }, 0
         , S{"<"    }, [](auto) { auto v = fthp->pop(); fthp->top() = -(fthp->top() < v); }, 0