diff options
Diffstat (limited to 'execution.e')
| -rw-r--r-- | execution.e | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/execution.e b/execution.e index 7a10e70..c6b6254 100644 --- a/execution.e +++ b/execution.e @@ -400,16 +400,17 @@ ~ pointers. It was directly jumped to from cold-start. There's nowhere to ~ return to, so it needs to never return. ~ -~ (output buffer start, output point, input string pointer +~ (output buffer start, output point, input string pointer, delimiter pointer ~ -- output buffer start, output point) : output-warm-start ~ While it's not actually a requirement that codeword pointers be ~ word-aligned, it's highly likely that it helps performance. (Whether it ~ does is up to Intel's microcode.) - 3unroll + 4 unroll 3unroll 8 packalign current-offset L!' warm-start - ~ (input string pointer, output buffer start, output point) + ~ (delimiter pointer, input string pointer, + ~ output buffer start, output point) ~ Before handing off to us, cold-start pushed a single value onto the ~ stack, a pointer to the beginning of the log. Now, we load our entire @@ -491,10 +492,11 @@ ~ we can go ahead and dispatch to the log-load transform, and do the rest of ~ the code through that. - ~ (input string pointer, output buffer start, output point) - 3roll + ~ (delimiter pointer, input string pointer, + ~ output buffer start, output point) + 3roll 4 roll log-load-transform - ~ (output point) + ~ (output buffer start, output point) ~ Now everything we need has been added to the log and we're almost ready ~ to jump into it. It's inconvenient for code under the log-load transform |