From a2adcd40df96acd1218cc60dc1810e83dbc124d8 Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Mon, 3 Jun 2019 21:35:03 +1200 Subject: Add note about `STACK_GROW_DIR_DETECTION`. --- gc.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gc.h') diff --git a/gc.h b/gc.h index f3b433f0c4..07c08577e8 100644 --- a/gc.h +++ b/gc.h @@ -81,6 +81,14 @@ int ruby_get_stack_grow_direction(volatile VALUE *addr); # define STACK_UPPER(x, a, b) (stack_growup_p(x) ? (a) : (b)) #endif +/* + STACK_GROW_DIR_DETECTION is used with STACK_DIR_UPPER. + + On most normal systems, stacks grow from high address to lower address. In + this case, STACK_DIR_UPPER(a, b) will return (b), but on exotic systems where + the stack grows UP (from low address to high address), it will return (a). +*/ + #if STACK_GROW_DIRECTION #define STACK_GROW_DIR_DETECTION #define STACK_DIR_UPPER(a,b) STACK_UPPER(0, (a), (b)) -- cgit v1.2.3