aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/core.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/core/core.c b/src/core/core.c
index 73be049..e3895ae 100644
--- a/src/core/core.c
+++ b/src/core/core.c
@@ -3,8 +3,9 @@
is translated to native code the first time it is reached, straight from live
memory. stores that land on translated words throw those translations away,
so code that rewrites itself, including the resident compiler, just gets
- retranslated on the next visit. the arm64 jit also compiles o3 regions; on
- x86-64 they run on the region interpreter; enhancements are inlined on both
+ retranslated on the next visit. both jits compile o3 regions (on x86-64 a
+ region that does not fit six value registers, or makes native calls, runs on
+ the region interpreter, as every region does under ZYO3INTERP=1); enhancements are inlined on both
(on x86-64 those with float, byte or native-call ops are still called). on other hosts (or with -DZYINTERP) a plain interpreter with the same
semantics runs instead. ZYTRACE=1 logs translations on stderr. */
#include <stdio.h>
@@ -6622,7 +6623,7 @@ static int vm_until(int pc, int stop_eq, int stop_ge, Rg *re, Cell *ps, Cell *pr
if (stop_eq >= 0 && pc == stop_eq && S[2] - (stack_control ? stack_get(SC_RETURN_LOW) : RS0) == return_depth) break;
if (stop_ge >= 0 && pc >= stop_ge) break;
if (re && pc >= re->lo && pc < re->hi && o3ent[pc] == re->idx + 1) break;
- if (o3ent[pc] && !x64_noo3) { /* an o3 region: the region interpreter runs it */
+ if (o3ent[pc] && !x64_noo3) { /* an o3 region: its x86-64 code if it has some, else the region interpreter */
Rg *R = rat(pc);
if (R) {
int s = (int)S[1], r = (int)S[2];