// Copyright 2021 Bradley D. Nelson // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #define TIER2_OPCODE_LIST \ X(">flags", TOFLAGS, tos = *TOFLAGS(tos)) \ X(">params", TOPARAMS, tos = *TOPARAMS(tos)) \ X(">size", TOSIZE, tos = TOSIZE(tos)) \ X(">link&", TOLINKAT, tos = (cell_t) TOLINK(tos)) \ X(">link", TOLINK, tos = *TOLINK(tos)) \ X(">name", TONAME, DUP; *sp = (cell_t) TONAME(tos); tos = *TONAMELEN(tos)) \ X(">body", TOBODY, tos = (cell_t) TOBODY(tos)) \ Y(aligned, tos = CELL_ALIGNED(tos)) \ Y(align, g_sys->heap = (cell_t *) CELL_ALIGNED(g_sys->heap)) \ YV(internals, fill32, cell_t c = tos; DROP; cell_t n = tos; DROP; \ uint32_t *a = (uint32_t *) tos; DROP; \ for (;n;--n) *a++ = c)