diff options
| author | 2026-10-14 15:54:04 +0330 | |
|---|---|---|
| committer | 2026-10-14 15:54:04 +0330 | |
| commit | 0879d0a42d137054057cd2a1e37437e6be78ed0b (patch) | |
| tree | fcb16d3185c1f80fae8d54cd9062bd68d6c0c88d /src/micro/micro.c | |
| parent | merge spec conformance suite (diff) | |
| parent | merge main into work/line-tables (diff) | |
merge line tables
Diffstat (limited to 'src/micro/micro.c')
| -rw-r--r-- | src/micro/micro.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/micro/micro.c b/src/micro/micro.c index f598c80..23994dd 100644 --- a/src/micro/micro.c +++ b/src/micro/micro.c @@ -530,6 +530,9 @@ static int run_from(int p, int s, int r) Cell dst = m[a + 2], cap = m[a + 3]; if (dst < 0 || cap <= n || (UCell)dst > mw || (UCell)cap > mw - (UCell)dst) result = -1; else { for (i = 0; i < n; i++) m[dst + i] = (unsigned char)text[i]; m[dst + n] = 0; result = n; } + } else if (b == 56) { + /* the return stack pointer: the word after the top return address */ + result = r; } else if (b == 42) { /* poll: a streaming port suspends once, so its host can deliver input that is waiting */ result = micro_syscall(m, b, 0, 0, 0); |
